GDPR-compliant cookie management for OXID eShop 7.x with the open-source Klaro library.
Important: This module is completely self-hosted. The Klaro JavaScript library is bundled in the module and served directly from your shop server. No data is sent to external services - neither to Klaro/KIProtect nor to any other third parties.
This means:
| Feature | Description |
|---|---|
| Self-hosted | Klaro library bundled locally - no external dependencies |
| Google Consent Mode v2 | Ready for Google's requirements since March 2024 |
| Multi-Shop | Different configurations per shop (Enterprise Edition) |
| Admin UI | Manage cookie services directly in OXID admin |
| Customizable Styling | Colors, position, light/dark theme |
| Cookie Deletion | Automatic cleanup when consent is withdrawn |
| Contextual Consent | Per-embed consent for YouTube, Vimeo etc. |
| Multilingual | German and English pre-installed |
Add the private Composer repository to your shop's composer.json:
{
"repositories": [
{
"type": "composer",
"url": "https://packeton.markus-michalski.net"
}
]
}
Note: Repository credentials will be provided after license purchase. Private repositories are managed via Packeton.
composer require mmd/klaro-consent
Enter the credentials received with your license when prompted for authentication.
vendor/bin/oe-console oe:module:install source/modules/mmd/klaro-consent
vendor/bin/oe-console oe:module:activate mmd_klaro_consent
vendor/bin/oe-console oe:cache:clear
Update to the latest version:
composer update mmd/klaro-consent
vendor/bin/oe-console oe:cache:clear
Navigate to Extensions > Modules > Klaro Cookie Consent > Settings for configuration:
| Setting | Default | Description |
|---|---|---|
| Active | Off | Enable/disable the consent dialog |
| Privacy URL | /privacy | Link to your privacy policy |
| Position | bottom | Banner position: bottom, top, bottom-left, bottom-right |
| Theme | light | Visual theme: light or dark |
| Must Consent | On | User must make a choice before closing |
| Accept All Button | On | Show "Accept All" button |
| Hide Decline All | Off | Hide "Decline All" button |
| Google Consent Mode | Off | Enable Google Consent Mode v2 integration |
Customize button colors to match your shop design:
| Setting | Default | Description |
|---|---|---|
| Primary Color | #1a73e8 | "Accept All" button |
| Secondary Color | #2581c4 | "Save Selection" button |
| Decline Color | #5c5c5c | "Decline All" button |
Navigate to Customer Info > Klaro Cookie Consent to manage your cookie services.
Each service represents a third-party script or cookie that requires user consent:
| Field | Required | Description |
|---|---|---|
| Technical Name | Yes | Unique identifier (lowercase, hyphens allowed, e.g., google-analytics) |
| Title | Yes | Display name for users |
| Description | Yes | Explain what this service does and why it's needed |
| Purpose | Yes | Category: functional, analytics, marketing, security |
| Required | No | Essential service that cannot be disabled |
| Default Enabled | No | Pre-selected (not GDPR-recommended) |
| Active | Yes | Enable/disable the service |
When a user withdraws consent, Klaro can automatically delete associated cookies. Configure cookies in JSON format:
[
{"pattern": "_ga", "path": "/", "domain": ".example.com"},
{"pattern": "_gid"},
{"pattern": "_gat"}
]
| Field | Required | Description |
|---|---|---|
| pattern | Yes | Cookie name or regex pattern |
| path | No | Cookie path (default: /) |
| domain | No | Cookie domain (default: current domain) |
Technical Name: google-analytics
Title (DE): Google Analytics
Title (EN): Google Analytics
Description (DE): Webanalyse-Dienst, der uns hilft zu verstehen, wie Besucher unsere Website nutzen. Sammelt anonyme Nutzungsdaten.
Description (EN): Web analytics service that helps us understand how visitors use our website. Collects anonymous usage data.
Purpose: analytics
Cookies:
[
{"pattern": "_ga", "path": "/", "domain": ".your-shop.com"},
{"pattern": "_ga_*"},
{"pattern": "_gid"},
{"pattern": "_gat"}
]
Technical Name: youtube
Title (DE): YouTube
Title (EN): YouTube
Description (DE): Eingebettete Videos von YouTube. YouTube kann Cookies setzen und Daten erfassen, wenn Sie Videos ansehen.
Description (EN): Embedded videos from YouTube. YouTube may set cookies and collect data when you watch videos.
Purpose: marketing
Contextual Consent Only: Yes (shows placeholder until user consents)
Cookies:
[
{"pattern": "VISITOR_INFO1_LIVE", "domain": ".youtube.com"},
{"pattern": "YSC", "domain": ".youtube.com"},
{"pattern": "GPS", "domain": ".youtube.com"}
]
Technical Name: facebook-pixel
Title (DE): Facebook Pixel
Title (EN): Facebook Pixel
Description (DE): Verfolgt Conversions und ermöglicht zielgerichtete Werbung auf Facebook und Instagram.
Description (EN): Tracks conversions and enables targeted advertising on Facebook and Instagram.
Purpose: marketing
Cookies:
[
{"pattern": "_fbp"},
{"pattern": "fr", "domain": ".facebook.com"}
]
Technical Name: google-maps
Title (DE): Google Maps
Title (EN): Google Maps
Description (DE): Ermöglicht die Einbindung von Google Maps für interaktive Standortkarten.
Description (EN): Enables Google Maps integration for interactive location maps.
Purpose: functional
Contextual Consent Only: Yes
Cookies:
[
{"pattern": "NID", "domain": ".google.com"},
{"pattern": "CONSENT", "domain": ".google.com"}
]
Technical Name: matomo
Title (DE): Matomo Analytics
Title (EN): Matomo Analytics
Description (DE): Selbst-gehostete Webanalyse. Alle Daten bleiben auf unserem Server.
Description (EN): Self-hosted web analytics. All data stays on our server.
Purpose: analytics
Cookies:
[
{"pattern": "_pk_id"},
{"pattern": "_pk_ses"},
{"pattern": "_pk_ref"}
]
When enabled, the module automatically initializes Google Consent Mode v2 with denied defaults:
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied'
});
When users grant consent for analytics/marketing services, the consent status is updated accordingly.
Since March 2024, Google requires Consent Mode v2 for:
Without proper consent signals, these features won't work in the EEA.
The module automatically adds a "Cookie Settings" link to the shop footer. Users can click it to change their consent preferences at any time.
Commercial License - Single installation license:
Development and staging environments included. 12 months free updates.
See LICENSE file for full terms.
For questions and support:
Markus Michalski
Email: support@markus-michalski.net