setono/sylius-consent-management-plugin

Consent management plugin for Sylius

Maintainers

👁 loevgaard

Package info

github.com/Setono/SyliusConsentManagementPlugin

Type:sylius-plugin

pkg:composer/setono/sylius-consent-management-plugin

Fund package maintenance!

Setono

Statistics

Installs: 226

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 6

v1.0.0-alpha.2 2025-05-30 13:12 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

proprietary e7b9d1173f851a6ceef0a34bfed9455dbc3eb114

syliuscookieconsentsylius-plugin


README

👁 Build Status
👁 Code Coverage

This plugin will create a consent dialog that every user will see. The user is given the option to accept all 'services' or necessary services.

Installation

composer require setono/sylius-consent-management-plugin

Register bundle

Add the bundle to bundles.php if not done automatically. Be sure to add this line before Sylius\Bundle\GridBundle\SyliusGridBundle::class

 Setono\SyliusConsentManagementPlugin\SetonoSyliusConsentManagementPlugin::class => ['all' => true],
 Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true],

Install assets

php bin/console assets:install

Add migration

php bin/console doctrine:migration:diff
php bin/console doctrine:migration:migrate

Import the routes

Create the file config/routes/setono_sylius_consent_management.yaml and add the following:

# config/routes/setono_sylius_consent_management.yaml
setono_sylius_consent_management:
 resource: "@SetonoSyliusConsentManagementPlugin/Resources/config/routes.yaml"

If your store doesn't use locales, there's also a route file for that:

# config/routes/setono_sylius_consent_management.yaml
setono_sylius_consent_management:
 resource: "@SetonoSyliusConsentManagementPlugin/Resources/config/routes_no_locale.yaml"

Update the layout

For everything to work there are two Twig functions you need to call: sscm_resources() and sscm_widget(). The sscm_resources() should be called in your <head> section while the sscm_widget() should be called just before the </body>.

The sscm_resources() function will output the JS and CSS needed to render the widget. It will only output what's necessary, so you don't have to worry about bloating your page with unused JS or CSS.

The sscm_widget() will output the actual HTML needed to render the widget. It's also true for this function that it will only render what's necessary, so in this case if the user has already seen the widget, it will output an empty string.