Extension for Magento 2
TODO
Magento 2.3.*, PHP >7.1
Install with composer:
composer require snk/magento2-module-usercentrics
Go to Stores->Configuration->Snk->Usercentrics
- Enable - enable of disable module for scope.
- Settings ID - the configuration ID from your Usercentrics account.
- Enable Smart Data Protector - enable Usercentrics Smart Data Protector .
- Enable Page Reload After Consent Revoked - reload page if user revokes a consent.
- Script URL - usercentrics script URL. It should not but may change.
- Selectors - configuration which decides which parts of Magento application must be processed.
Cookie group of each selector corresponds to separate service names under Data Processing Services.
For example, here it's "Matomo":
There are three types of selectors:
- block
- template
- regex
The module iterates through the output of Magento blocks and tries to match them against the selectors.
Block selectors look for magento block name in layout.
Template selectors look for HTML from specific templates.
Regex selectors are the most flexible and the most dangerous type, they try to match every block against the configured regexp.
The module adjusts <script>
tags in selected blocks of HTML output by changing type
to text/plain
and adding data-usercentrics
attribute with the cookie group.
Some magento scripts are initialized in a declarative way, for example:
<!--- Won't work with Usercentrics -->
<script type="text/x-magento-init">
{
"*": {
"Vendor_Module/js/some-cool-script": {
"config": "value"
}
}
}
</script>
Unfortunately Usercentrics cannot set script type back to x-magento/init
so such calls must be done imperatively in order for Usercentrics to function properly.
So the above can should be rewritten like this:
<!--- Will work with Usercentrics -->
<script type="text/javascript">
require([
'jquery',
'mage/apply/main'
], function ($, mage) {
$(function () {
mage.applyFor(
'*',
{
"config": "value"
},
'Vendor_Module/js/some-cool-script',
);
});
});
</script>
Oleh Kravets [email protected]
MIT