Markus Michalski FAQ

Klaro Cookie Consent: Configuration

Configuring Klaro Cookie Consent for Shopware 6.7 - plugin settings, cookie services in the admin, texts via snippets, Google Consent Mode v2 and real-world examples.

Deutsche Version

Back to overview

Klaro Cookie Consent: Configuration

This documentation always describes the latest published version.

Plugin Settings

Navigate to Settings > Extensions > Klaro Cookie Consent Manager. All settings can be overridden per sales channel, so you can configure different shops differently.

Settings

General Settings

Setting Default Description
Activate Cookie Consent true Enables the Klaro banner in the storefront of the sales channel
Privacy Policy URL /privacy Link to your privacy policy page, e.g. /datenschutz. The value must start with / or https://, otherwise /privacy is used
Automatically add Cookie Settings link to footer service menu true Hides the automatically inserted footer link when disabled. Useful when placing your own link (see Storefront)
Setting Default Description
Must Consent (Modal blocking) true Users must interact with the dialog before they can use the site. Recommended for GDPR compliance
Show "Accept All" button true Displays a button to accept all services at once
Hide "Decline All" button false Hides the "Decline All" button. Users can still decline individual services
Group services by purpose true Groups services by category (Analytics, Marketing, etc.) in the dialog
Hide "Learn More" links false Hides the "Learn More" links

Storage Settings

Setting Default Description
Storage Method cookie Cookie (recommended) or Local Storage
Storage Name klaro Name of the cookie or localStorage key
Cookie expires after (days) 365 Number of days until the consent cookie expires
Setting Default Description
Enable Google Consent Mode v2 false Syncs consent with Google services (GA4, Google Ads)
Wait for consent update (only if Google Consent Mode v2 is enabled) true Delays Google tags until consent is determined (500 milliseconds). Only takes effect when Google Consent Mode v2 is enabled

Styling

Setting Default Description
Accept All Button Color #1a73e8 Color for the "Accept All" button and active toggles. Hex values (#rgb or #rrggbb) are accepted, otherwise the default applies
Save Selection Button Color #2581c4 Color for the "Save Selection" button
Decline All Button Color #5c5c5c Color for the "Decline All" button
Banner Position (only if "Must Consent" is disabled) bottom Bottom (full width), Top (full width), Bottom Left or Bottom Right
Color Theme light Light or Dark

The banner position only applies when "Must Consent" is disabled. When "Must Consent" is enabled, a centered modal is shown instead.

Configuration keys

The settings are stored in the system configuration under the prefix MmdKlaroCookieConsent.config. and are read per sales channel:

Key Setting
MmdKlaroCookieConsent.config.active Activate Cookie Consent
MmdKlaroCookieConsent.config.privacyPolicyUrl Privacy Policy URL
MmdKlaroCookieConsent.config.showFooterLink Cookie Settings link in the footer service menu
MmdKlaroCookieConsent.config.mustConsent Must Consent
MmdKlaroCookieConsent.config.acceptAll Show "Accept All" button
MmdKlaroCookieConsent.config.hideDeclineAll Hide "Decline All" button
MmdKlaroCookieConsent.config.groupByPurpose Group services by purpose
MmdKlaroCookieConsent.config.hideLearnMore Hide "Learn More" links
MmdKlaroCookieConsent.config.storageMethod Storage Method
MmdKlaroCookieConsent.config.storageName Storage Name (allowed: letters, numbers, _ and -, otherwise klaro is used)
MmdKlaroCookieConsent.config.cookieExpiresAfterDays Cookie expires after (days)
MmdKlaroCookieConsent.config.googleConsentMode Enable Google Consent Mode v2
MmdKlaroCookieConsent.config.googleConsentModeWaitForUpdate Wait for consent update
MmdKlaroCookieConsent.config.primaryColor Accept All Button Color
MmdKlaroCookieConsent.config.secondaryColor Save Selection Button Color
MmdKlaroCookieConsent.config.declineColor Decline All Button Color
MmdKlaroCookieConsent.config.position Banner Position
MmdKlaroCookieConsent.config.theme Color Theme

Customizing texts via snippets

The texts of the consent categories and of the dialog are managed through Shopware snippets. This allows any number of languages, not just German and English. You find the snippet keys under Settings > Snippets with the prefix mmd-klaro.

Category texts

Snippet key Default (EN) Default (DE)
mmd-klaro.purposes.analytics.title Analytics Statistik
mmd-klaro.purposes.analytics.description These services collect anonymous data about website usage Diese Dienste sammeln anonyme Daten über die Nutzung unserer Website
mmd-klaro.purposes.marketing.title Marketing Marketing
mmd-klaro.purposes.marketing.description These services enable measurement and optimization of advertising campaigns on external platforms Diese Dienste ermöglichen die Messung und Optimierung von Werbekampagnen auf externen Plattformen
mmd-klaro.purposes.functional.title Functional Funktional
mmd-klaro.purposes.functional.description These services provide additional functionality Diese Dienste bieten zusätzliche Funktionen
mmd-klaro.purposes.security.title Security Sicherheit
mmd-klaro.purposes.security.description These services help protect the website Diese Dienste schützen die Website
mmd-klaro.purposes.other.title Other Sonstiges
mmd-klaro.purposes.other.description These services do not fit any other category Diese Dienste lassen sich keiner anderen Kategorie zuordnen

Tip: To add French, create a new snippet set for fr-FR and translate the texts. Klaro automatically displays the language of the shop in the storefront.

Dialog texts

Snippet key Description
mmd-klaro.consentModal.title Consent modal title
mmd-klaro.consentModal.description Description text in the modal
mmd-klaro.consentNotice.description Text of the notice banner (when "Must Consent" is disabled)
mmd-klaro.consentNotice.learnMore Text of the "Learn more" link in the notice banner
mmd-klaro.ok Text of the "Accept all" button
mmd-klaro.acceptAll Text for "Accept all"
mmd-klaro.decline Text of the "Decline all" button
mmd-klaro.declineAll Text for "Decline all"
mmd-klaro.save Text of the "Save" button
mmd-klaro.acceptSelected Text of the "Save selection" button
mmd-klaro.cookieSettings Label of the "Cookie Settings" footer link

The plugin includes a dedicated admin module with native Shopware UX. You find the service management under Extensions > Cookie Consent Services.

graph LR
    A["Extensions"] --> B["Cookie Consent Services"]
    B --> C["Service list"]
    C --> D["Service detail"]
    D --> E["Language switcher"]
    E --> F["Title and description per language"]

Service list

The list shows all configured services with technical name, title and category, plus the "Required" and "Active" status as icons. Sorting and pagination are available, and the language switcher in the top right shows the titles in the selected language.

Creating and editing services

Click "Create service" or an existing service. In the header of the detail page you switch the language with the language switcher to manage title and description per language. This works like Shopware products or categories.

Important: The technical name cannot be changed after creation. It serves as the unique identifier in the Klaro configuration.

Service fields

Field Description Required
Technical name Unique identifier, e.g. google-analytics (lowercase letters, numbers, hyphens) Yes
Category Functional / Technically required, Statistics / Analytics, Marketing, Security or Other Yes
Display title Name in the consent dialog, managed per language. A title in the default language is required when saving Yes
Description Explanation for the user, managed per language No
Position Sort order in the consent dialog (0 = top) No
Active Show the service in the consent dialog No
Required The user cannot decline the service, e.g. for session cookies No
Enabled by default Pre-checked in the consent dialog No
Execute callback only once Prevents duplicate tracking events No
Sales channels Sales channels in which the service is displayed No

The option "Enabled by default" is not GDPR compliant because it anticipates consent. Use it with caution.

If no sales channel is selected, the service is not shown in any sales channel.

For each service you can define cookies that are deleted automatically when consent is withdrawn:

Field Description Required
Cookie name/pattern Cookie name or pattern, e.g. _ga or ^_gid.*$ No
Path Cookie path (default: /) No
Domain Cookie domain, e.g. .example.com No

Every rule needs a pattern. Remove rows you do not fill in.

Since March 2024, Google requires Consent Mode v2 for websites that use Google Analytics or Google Ads in the European Economic Area. Enable it under Settings > Extensions > Klaro Cookie Consent Manager with the setting Enable Google Consent Mode v2.

graph TD
    A["Page load"] --> B["Google consent default: denied"]
    B --> C["Klaro initializes"]
    C --> D{"User interaction"}
    D -->|"Accepts"| E["gtag consent update: granted"]
    D -->|"Declines"| F["Consent stays denied"]
    E --> G["Google tags fire"]
    F --> H["No data collection"]

With Google Consent Mode enabled, the following happens:

  1. Default state: Before any tag fires, ad_storage, ad_user_data, ad_personalization, analytics_storage, functionality_storage and personalization_storage are set to denied, and security_storage to granted. If "Wait for consent update" is active, wait_for_update with 500 milliseconds is added.
  2. Ads data redaction: ads_data_redaction is set to true on load and switched to false as soon as marketing consent is granted.
  3. Consent update: As soon as the user saves a decision, the Google keys are updated based on the category of the services.
Category of the service Updated Google keys
Statistics / Analytics analytics_storage
Marketing ad_storage, ad_user_data, ad_personalization
Functional functionality_storage, personalization_storage
Security, Other none (no Consent Mode counterpart)

The mapping depends on the category, not on the technical name of a service. A category for which no service is configured in a sales channel is left untouched and therefore does not override signals from other scripts or from Google Tag Manager.

Real-world examples

Google Analytics 4 (GA4)

Field Value
Technical name google-analytics
Category Statistics / Analytics
Title (EN) Google Analytics
Title (DE) Google Analytics
Description (EN) Collects anonymous statistics about website usage
Description (DE) Sammelt anonyme Statistiken über die Nutzung der Website
Cookies _ga (path: /, domain: .example.com), _gid (path: /, domain: .example.com)

Include your GA4 script with the data-name attribute so Klaro can control it:

<script data-type="application/javascript"
        data-name="google-analytics"
        data-src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXX"
        type="text/plain"></script>

YouTube (embedded videos)

Field Value
Technical name youtube
Category Functional
Title YouTube
Description Enables playback of embedded YouTube videos

The Klaro flag for contextual consent cannot be set in the admin form, see Troubleshooting.

Facebook Pixel

Field Value
Technical name facebook-pixel
Category Marketing
Title Facebook Pixel
Description Enables measuring advertising campaigns on Facebook and Meta
Cookies _fbp (path: /), _fbc (path: /)

Shopware session (technically necessary)

This service is created automatically during installation:

Field Value
Technical name session
Category Functional
Title (EN) Technically necessary
Title (DE) Technisch notwendig
Description (EN) These cookies are essential for the basic functions of the shop. They store your shopping cart and enable the checkout process.
Description (DE) Diese Cookies sind für die Grundfunktionen des Shops erforderlich. Sie speichern z.B. den Warenkorb und ermöglichen den Checkout-Prozess.
Required Yes
Enabled by default Yes
Cookies session- (path: /), sw- (path: /)