This documentation always describes the latest published version.
Navigate to Settings > Extensions > Klaro Cookie Consent Manager. All settings can be overridden per sales channel, so you can configure different shops differently.
| 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 |
| 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 |
| 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.
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 |
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.
| 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-FRand translate the texts. Klaro automatically displays the language of the shop in the storefront.
| 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.
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.
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.
| 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.
With Google Consent Mode enabled, the following happens:
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.ads_data_redaction is set to true on load and switched to false as soon as marketing consent is granted.| 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.
| 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>
| 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.
| 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: /) |
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: /) |