Klaro Cookie Consent: Technik
Technische Details zu Klaro Cookie Consent für Shopware 6.7 - Architektur, Plugin-Struktur, Datenbank-Tabellen, überschriebene Template-Blöcke und Snippet-Namensräume.
Klaro Cookie Consent: Technik
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Architektur
graph TD
A["StorefrontRenderEvent"] --> B["StorefrontRenderSubscriber"]
B --> C["KlaroConfigService"]
C --> D["Cookie-Services aus der Datenbank laden"]
C --> E["Snippet-Texte über den Translator laden"]
C --> F["Plugin-Konfiguration über SystemConfig"]
D --> G["Klaro-JS-Konfiguration erzeugen"]
E --> G
F --> G
G --> H["Twig-Template gibt die Konfiguration aus"]
H --> I["Klaro-JS initialisiert"]
Der Subscriber lauscht auf das StorefrontRenderEvent und stellt dem Template die Parameter mmdKlaroActive, mmdKlaroConfig, mmdKlaroPrimaryColor, mmdKlaroSecondaryColor, mmdKlaroDeclineColor, mmdKlaroGoogleConsentMode, mmdKlaroGoogleConsentModeWaitForUpdate und mmdKlaroShowFooterLink bereit. Der KlaroConfigService liest alle Einstellungen mit der ID des aktuellen Sales Channels, nur Services mit Zuordnung zu diesem Sales Channel kommen in die Konfiguration.
Sämtliche Texte landen im Klaro-Fallback-Schlüssel zz. Dadurch zeigt Klaro immer die Sprache des Shops und nicht die Sprache des Browsers.
Auswahlwerte (Kategorie, Position, Theme, Speichermethode) und Freitexte (Storage-Name, Datenschutz-URL, technischer Name) werden vor der Ausgabe gegen Allowlists beziehungsweise Zeichenmuster geprüft.
Plugin-Struktur
src/
├── MmdKlaroCookieConsent.php Plugin-Klasse (Uninstall räumt Tabellen und Konfiguration auf)
├── Core/
│ ├── Content/CookieService/ Entity, Definition und Collection der Cookie-Services
│ │ └── Aggregate/ Übersetzungs- und Sales-Channel-Zuordnung
│ └── Klaro/ KlaroConfigService und KlaroConfigServiceInterface, baut die Klaro-Konfiguration
├── Storefront/Subscriber/ StorefrontRenderSubscriber
├── Migration/ Datenbank-Migrationen
└── Resources/
├── app/administration/ Admin-Modul mmd-klaro-service
├── config/ config.xml, services.xml
├── public/administration/ Vorkompilierte Admin-Assets
├── public/storefront/vendor/klaro/ klaro.js und klaro.css
├── snippet/ Storefront-Snippets (de_DE, en_GB)
└── views/storefront/ Template-Überschreibungen
Datenbank-Tabellen
| Tabelle | Inhalt |
|---|---|
mmd_klaro_cookie_service |
Cookie-Services mit technischem Namen, Kategorie, Flags, Cookie-Regeln und Position |
mmd_klaro_cookie_service_translation |
Titel und Beschreibung pro Sprache |
mmd_klaro_cookie_service_sales_channel |
Zuordnung der Services zu Sales Channels |
Das Plugin bringt vier Migrationen mit: Anlegen der Tabellen, Anlegen des Standard-Services session, Entfernen eines früheren Callback-Felds und Entfernen veralteter Konfigurationsfelder für Kategorie-Texte (ersetzt durch Snippets).
Template-Blöcke
Das Plugin erweitert drei Storefront-Templates über sw_extends. Diese Blöcke kann ein weiteres Plugin oder Theme ebenfalls erweitern:
| Template | Überschriebener Block | Zweck |
|---|---|---|
storefront/base.html.twig |
base_cookie_permission |
Unterdrückt den nativen Shopware-Cookie-Hinweis, wenn Klaro aktiv ist |
storefront/base.html.twig |
base_body_script |
Gibt die Klaro-Konfiguration, den Google-Consent-Mode-Code, den Anchor-Handler und das Klaro-Skript aus |
storefront/layout/footer/footer.html.twig |
layout_footer_service_menu_content |
Fügt den Footer-Link "Cookie-Einstellungen" an |
storefront/layout/meta.html.twig |
layout_head_stylesheet |
Bindet klaro.css und die Farb-Variablen ein |
Snippet-Namensräume
| Namensraum | Verwendung |
|---|---|
mmd-klaro |
Storefront: Dialog-Texte und Kategorie-Texte |
mmd-klaro-service |
Administration: Beschriftungen des Admin-Moduls |
Erweiterungspunkte
Das Plugin löst keine eigenen Events aus, registriert keine Routen und keine Console-Befehle. Es abonniert ausschließlich das StorefrontRenderEvent.