DSGVO-konforme Cookie-Verwaltung für Shopware 6.6/6.7 mit der Open-Source Klaro-Bibliothek.
Live Demo: Teste alle Plugins für OXID eShop und Shopware von Markus Michalski live — ohne Installation, ohne Risiko. demo.markus-michalski.net
Anders als Cloud-basierte Consent-Lösungen (z.B. Cookiebot, OneTrust) läuft Klaro komplett auf deinem eigenen Server. Keine Daten werden an Drittanbieter übertragen, keine externen Requests beim Seitenaufruf — das ist nicht nur datenschutzfreundlich, sondern auch schneller.
Die Klaro-Bibliothek (v0.7.21) ist Open Source und wird direkt mit dem Plugin ausgeliefert. Du behältst die volle Kontrolle.
| Feature | Beschreibung |
|---|---|
| Klaro-Integration | Open-Source Consent-Management mit voller Kontrolle |
| Google Consent Mode v2 | Kompatibel mit Google Analytics/Ads-Anforderungen (Pflicht seit März 2024) |
| Multi-Sales-Channel | Unterschiedliche Konfigurationen pro Sales Channel |
| Eigenes Admin-Modul | Cookie-Services unter Erweiterungen > Cookie Consent Services mit Language Switcher |
| Unbegrenzt Sprachen | Titel und Beschreibungen pro Service in allen Shop-Sprachen pflegbar |
| Anpassbare Darstellung | Farben, Position, helles/dunkles Theme |
| Cookie-Löschung | Automatische Bereinigung bei Widerruf der Einwilligung |
| Kontextueller Consent | Consent pro eingebettetem Inhalt (z.B. YouTube-Videos) |
| Kategorie-Texte über Snippets | Titel und Beschreibungen der Zweck-Kategorien über Shopware-Textbausteine — unbegrenzt Sprachen |
| Service-Beschreibungen | Titel und Beschreibung pro Service übersetzbar via Language Switcher |
Die Installation über den Shopware Store wird empfohlen. Nach dem Kauf kannst du das Plugin direkt aus dem Backend installieren.
Füge das private Composer-Repository zur composer.json deines Shops hinzu:
{
"repositories": [
{
"type": "composer",
"url": "https://packeton.markus-michalski.net"
}
]
}
Hinweis: Die Repository-Zugangsdaten werden nach dem Kauf bereitgestellt. Die Credentials werden über Packeton verwaltet.
composer require mmd/sw67-klaro-cookie-consent
Bei der Abfrage der Authentifizierung die mit der Lizenz bereitgestellten Zugangsdaten eingeben.
bin/console plugin:refresh
bin/console plugin:install --activate MmdKlaroCookieConsent
bin/console cache:clear
Update auf die neueste Version:
composer update mmd/sw67-klaro-cookie-consent
bin/console cache:clear
Navigiere zu Einstellungen > Erweiterungen > Klaro Cookie Consent um folgende Optionen zu konfigurieren:
| Einstellung | Beschreibung | Standard |
|---|---|---|
| Cookie Consent aktivieren | Aktiviert den Klaro-Banner im Storefront | true |
| Datenschutzerklärung URL | Link zur Datenschutzerklärung (z.B. /datenschutz) |
/privacy |
| Einstellung | Beschreibung | Standard |
|---|---|---|
| Consent erforderlich | Nutzer muss mit dem Dialog interagieren bevor die Seite nutzbar ist. Empfohlen für DSGVO-Konformität. | true |
| "Alle akzeptieren" Button | Zeigt einen Button um alle Services auf einmal zu akzeptieren | true |
| "Alle ablehnen" verstecken | Versteckt den "Alle ablehnen" Button. Nutzer können einzelne Services trotzdem ablehnen. | false |
| Nach Zweck gruppieren | Gruppiert Services nach Kategorie (Statistik, Marketing, etc.) | true |
| "Mehr erfahren" verstecken | Versteckt die "Mehr erfahren"-Links | false |
| Einstellung | Beschreibung | Standard |
|---|---|---|
| Speichermethode | Cookie (empfohlen) oder Local Storage | cookie |
| Storage-Name | Name des Cookies oder localStorage-Schlüssels | klaro |
| Cookie läuft ab nach (Tage) | Anzahl Tage bis das Consent-Cookie abläuft | 365 |
Die Button-Farben des Consent-Banners können individuell angepasst werden:
| Einstellung | Beschreibung | Standard |
|---|---|---|
| Farbe "Alle akzeptieren" | Farbe für den "Alle akzeptieren"-Button und aktive Schalter | #1a73e8 |
| Farbe "Auswahl speichern" | Farbe für den "Auswahl speichern"-Button | #2581c4 |
| Farbe "Alle ablehnen" | Farbe für den "Alle ablehnen"-Button | #5c5c5c |
Zusätzlich stehen zur Verfügung:
| Einstellung | Optionen | Standard |
|---|---|---|
| Banner-Position | Unten (volle Breite), Oben (volle Breite), Unten Links, Unten Rechts | bottom |
| Farbschema | Hell oder Dunkel | light |
Hinweis: Die Banner-Position gilt nur wenn "Consent erforderlich" deaktiviert ist. Bei aktiviertem "Consent erforderlich" wird ein zentriertes Modal angezeigt.
Die Texte der Consent-Kategorien (Statistik, Marketing, Funktional, Sicherheit) werden seit v1.2.0 über Shopware-Textbausteine (Snippets) verwaltet. Das ermöglicht unbegrenzt viele Sprachen — nicht nur Deutsch und Englisch.
Die Snippet-Keys findest du unter Einstellungen > Textbausteine mit dem Präfix mmd-klaro.purposes:
| Snippet-Key | Standard (DE) | Standard (EN) |
|---|---|---|
mmd-klaro.purposes.analytics.title |
Statistik | Analytics |
mmd-klaro.purposes.analytics.description |
Diese Dienste sammeln anonyme Daten über die Nutzung unserer Website | These services collect anonymous data about website usage |
mmd-klaro.purposes.marketing.title |
Marketing | Marketing |
mmd-klaro.purposes.marketing.description |
Diese Dienste ermöglichen die Messung und Optimierung von Werbekampagnen | These services enable measurement and optimization of advertising campaigns |
mmd-klaro.purposes.functional.title |
Funktional | Functional |
mmd-klaro.purposes.functional.description |
Diese Dienste bieten zusätzliche Funktionen | These services provide additional functionality |
mmd-klaro.purposes.security.title |
Sicherheit | Security |
mmd-klaro.purposes.security.description |
Diese Dienste schützen die Website | These services help protect the website |
Tipp: Um z.B. Französisch hinzuzufügen, lege einfach ein neues Snippet-Set für
fr-FRan und übersetze die Texte. Klaro zeigt automatisch die richtige Sprache im Storefront.
Auch die UI-Texte des Consent-Dialogs (Button-Beschriftungen, Modal-Texte) werden über Snippets verwaltet:
| Snippet-Key | Beschreibung |
|---|---|
mmd-klaro.consentModal.title |
Titel des Consent-Modals |
mmd-klaro.consentModal.description |
Beschreibungstext im Modal |
mmd-klaro.ok |
"Alle akzeptieren" Button-Text |
mmd-klaro.decline |
"Alle ablehnen" Button-Text |
mmd-klaro.save |
"Speichern" Button-Text |
mmd-klaro.acceptSelected |
"Auswahl speichern" Button-Text |
Seit v1.2.0 verfügt das Plugin über ein eigenes Admin-Modul mit nativer Shopware-UX. Die Service-Verwaltung ist unter Erweiterungen > Cookie Consent Services erreichbar.
Die Liste zeigt alle konfigurierten Services mit:
Klicke auf "Service erstellen" oder auf einen bestehenden Service. Die Detail-Seite bietet:
Language Switcher im Header — Wechsle die Sprache um Titel und Beschreibung pro Sprache zu pflegen. Das funktioniert genau wie bei Shopware-Produkten oder Kategorien.
Wichtig: Der technische Name kann nach dem Erstellen nicht mehr geändert werden. Er dient als eindeutiger Bezeichner in der Klaro-Konfiguration.
| Feld | Beschreibung | Pflicht |
|---|---|---|
| Technischer Name | Eindeutiger Bezeichner, z.B. google-analytics (nur Kleinbuchstaben, Zahlen, Bindestriche) |
Ja |
| Kategorie | Funktional, Statistik/Analytics, Marketing oder Sicherheit | Ja |
| Anzeige-Titel | Name im Consent-Dialog — pro Sprache pflegbar | Nein |
| Beschreibung | Erklärung für den Nutzer — pro Sprache pflegbar | Nein |
| Position | Sortierreihenfolge im Consent-Dialog (0 = oben) | Nein |
| Aktiv | Service im Consent-Dialog anzeigen | Nein |
| Erforderlich | Service kann nicht deaktiviert werden (z.B. Session-Cookies) | Nein |
| Standardmäßig aktiviert | Vorab aktiviert im Consent-Dialog | Nein |
| Callback nur einmal | Verhindert doppelte Tracking-Events | Nein |
| Sales Channels | Service nur bestimmten Sales Channels zuordnen | Nein |
Für jeden Service können Cookies definiert werden, die bei Widerruf der Einwilligung automatisch gelöscht werden:
| Feld | Beschreibung | Pflicht |
|---|---|---|
Cookie-Name/Muster |
Cookie-Name oder Regex-Muster (z.B. _ga, ^_gid.*$) |
Ja |
Pfad |
Cookie-Pfad | Nein (Standard: /) |
Domain |
Cookie-Domain (z.B. .example.com) |
Nein |
| Feld | Wert |
|---|---|
| Technischer Name | google-analytics |
| Kategorie | Statistik / Analytics |
| Titel (DE) | Google Analytics |
| Titel (EN) | Google Analytics |
| Beschreibung (DE) | Sammelt anonyme Statistiken über die Nutzung der Website |
| Beschreibung (EN) | Collects anonymous statistics about website usage |
| Cookies | _ga (Pfad: /, Domain: .example.com), _gid (Pfad: /, Domain: .example.com) |
Binde dein GA4-Script mit dem data-name Attribut ein, damit Klaro es kontrollieren kann:
<script data-type="application/javascript"
data-name="google-analytics"
data-src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXX"
type="text/plain"></script>
| Feld | Wert |
|---|---|
| Technischer Name | youtube |
| Kategorie | Funktional |
| Titel | YouTube |
| Beschreibung | Ermöglicht das Abspielen eingebetteter YouTube-Videos |
| Nur kontextueller Consent | Ja |
| Feld | Wert |
|---|---|
| Technischer Name | facebook-pixel |
| Kategorie | Marketing |
| Titel | Facebook Pixel |
| Beschreibung | Ermöglicht die Messung von Werbekampagnen auf Facebook/Meta |
| Cookies | _fbp (Pfad: /), _fbc (Pfad: /) |
Dieses Service wird bei der Installation automatisch angelegt:
| Feld | Wert |
|---|---|
| Technischer Name | session |
| Kategorie | Funktional |
| Titel | Technisch notwendig |
| Beschreibung | Diese Cookies sind für die Grundfunktionen des Shops erforderlich |
| Erforderlich | Ja |
| Standardmäßig aktiviert | Ja |
| Cookies | session- (Pfad: /), sw- (Pfad: /) |
Das Plugin unterstützt Google Consent Mode v2, der seit März 2024 für Google-Werbung Pflicht ist.
Aktiviere den Google Consent Mode unter Einstellungen > Erweiterungen > Klaro Cookie Consent > Google Consent Mode v2.
| Einstellung | Beschreibung | Standard |
|---|---|---|
| Google Consent Mode v2 aktivieren | Synchronisiert Consent automatisch mit Google-Diensten | false |
| Auf Consent-Update warten | Verzögert Google-Tags bis Consent ermittelt ist | true |
Bei aktiviertem Google Consent Mode passiert Folgendes:
denied gesetztgranted aktualisiert:
google-analytics, ga4 oder gtag aktualisieren analytics_storagegoogle-ads oder google-tag-manager aktualisieren ad_storage, ad_user_data und ad_personalizationyoutube, vimeo oder maps aktualisieren functionality_storage und personalization_storageads_data_redaction auf true gesetztDas Plugin fügt automatisch einen "Cookie-Einstellungen"-Link im Footer-Service-Menü hinzu. Beim Klick öffnet sich der Klaro Consent-Dialog erneut, sodass Nutzer ihre Einstellungen jederzeit anpassen können.
Symptom: Der Consent-Dialog erscheint nicht im Storefront.
Prüfen:
bin/console cache:clear)Symptom: Titel und Beschreibung eines Services erscheinen immer auf Deutsch, auch im englischen Storefront.
Prüfen:
Symptom: Die Kategorie-Überschriften erscheinen im Storefront in der Fallback-Sprache statt Französisch/Spanisch.
Lösung:
mmd-klaro.purposesKommerzielle Lizenz — Einzelinstallation inklusive aller Sales Channels und Entwicklungs-/Staging-Umgebungen.
Erhältlich über:
Markus Michalski — support@markus-michalski.net
Bei Fragen oder Problemen kannst du: