setono/sylius-consent-management-plugin

Consent management plugin for Sylius

Maintainers

Package info

github.com/Setono/SyliusConsentManagementPlugin

Type:sylius-plugin

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

Fund package maintenance!

Setono

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 6

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

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.