GDPR
v1.3.1
GDPR
- Updates and support included for 12 months
- License key delivered immediately by email
- 30-day money-back guarantee
- Full documentation included
- Compatible with Hyvä themes
- Composer-ready installation
GDPR / Cookie Consent
Stay compliant with European GDPR and the 2024 Google Consent Mode v2 requirement without bolting on a third-party SaaS banner. This module gives your Magento or Mage-OS store a fully configurable cookie consent banner, a granular per-category opt-in, a consent log for audit, and a native customer privacy area — all hosted on your own infrastructure.
The banner is built to convert: bar or modal layout, optional wall mode that blocks scrolling until consent is given, geo-targeting that only shows it to visitors who actually need to see it, and a sticky floating settings button so customers can change their mind without hunting for it.
Who it's for
- B2B and B2C merchants selling in the EEA, UK or Switzerland, where GDPR and ePrivacy enforcement is real
- Stores running Google Ads remarketing or GA4 — mandatory since March 2024 to implement Consent Mode v2
- Merchants who want a privacy stack they own (no monthly SaaS fee, no data leaving their servers)
Key benefits
- Compliant by default — four granular cookie categories (necessary, analytics, marketing, functional) with per-category opt-in, exactly as required by the CNIL, ICO and EDPB guidelines.
- Google Consent Mode v2 native —
analytics_storage,ad_storage,ad_user_dataandad_personalizationsignals managed automatically. Works with GTM container ID or GA4 measurement ID. - Conversion-friendly banner — bar (top/bottom) or modal layout, optional wall mode, configurable overlay, your own primary color, fully editable texts per store view.
- Geo-targeting — show the banner only to EEA/UK/Swiss visitors using CloudFlare
CF-IPCountry(free, recommended), a HTTP API fallback, or Magento's GeoIP. Whitelist or blacklist modes. - Consent log — every consent decision is stored with timestamp and source, viewable as an admin grid with export. Dashboard widget shows acceptance stats.
- Customer privacy area — logged-in customers get a
/gdpr/account/privacypage to review their data, request export or request account deletion. - Hyvä, Breeze and Luma — Alpine.js component for Hyvä loaded synchronously to avoid race conditions; bundled JS for Breeze; standard JS for Luma. Theme is auto-detected.
Compatibility
- Magento 2.4.x / Mage-OS equivalent
- PHP 8.1, 8.2, 8.3
- Requires
wimakeit/module-core3.0.9 or later - Works with Hyvä, Breeze and Luma frontends
- i18n bundled: English, French, Dutch
Install this module via Composer. Make sure your auth.json is configured with your Wimakeit credentials.
$ composer require wimakeit/module-gdpr:^1.3.1
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile
Installation notes
The standard composer require + setup:upgrade + setup:di:compile flow applies. The points below cover what's specific to this module.
Required dependency
This module requires wimakeit/module-core 3.0.9 or later. Composer will pull it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.
ACL permissions
After installation, three ACL resources are registered under System → Permissions → User Roles:
| Resource | Default |
|---|---|
Wimakeit_Gdpr::config (edit module configuration) | granted to Administrator role only |
Wimakeit_Gdpr::delete_request (view the deletion request grid) | granted to Administrator role only |
Wimakeit_Gdpr::delete_request_process (change a deletion request status) | granted to Administrator role only |
Configuration
The module ships with safe production defaults. Go to Stores → Configuration → Wimakeit → GDPR / Cookie Consent only if you want to change them.
General settings
| Setting | Default |
|---|---|
| Enable Cookie Consent | Yes |
| Banner Type | bar (alt: modal) |
| Banner Position | bottom (alt: top) |
| Show on First Visit | Yes |
| Consent Lifetime (days) | 365 |
| Show Floating Settings Button | Yes |
| Enable Debug Logging | No — leave off in production |
Cookie categories (default consent)
| Setting | Default |
|---|---|
| Necessary | On — always enabled, not toggleable |
| Analytics Cookies | Off (denied until consent) |
| Marketing Cookies | Off (denied until consent) |
| Functional Cookies | Off (denied until consent) |
Google Consent Mode v2
| Setting | Default |
|---|---|
| Enable Google Consent Mode v2 | Yes |
Default analytics_storage | denied |
Default ad_storage | denied |
Default ad_user_data | denied |
Default ad_personalization | denied |
| GTM Container ID | (empty) |
| GA4 Measurement ID | (empty) |
Banner texts
| Setting | Default |
|---|---|
| Banner Title | "Cookie settings" |
| Banner Description | "We use cookies to improve your experience…" |
| Accept All Button | "Accept all" |
| Reject All Button | "Reject all" |
| Save Preferences Button | "Save preferences" |
| Privacy Policy URL | privacy-policy |
Appearance
| Setting | Default |
|---|---|
| Primary Color | #ef6f14 |
| Show Background Overlay | Yes |
| Wall Mode (block scroll) | No |
Geo-Targeting
| Setting | Default |
|---|---|
| Enable Geo-Targeting | No |
| Mode | whitelist (alt: blacklist) |
| Countries | EEA + UK + NO + IS + LI + CH (pre-filled) |
| Detection Method | cloudflare (alt: HTTP API, Magento GeoIP) |
Cookie scanner
| Setting | Default |
|---|---|
| Known Cookies Definition | Pre-filled JSON for GA, GA4, Facebook Pixel, HubSpot, Hotjar, Tawk, Intercom, Crisp, Magento, PHP, WiMakeIT |
Cron jobs (registered automatically)
| Job | Schedule |
|---|---|
wimakeit_gdpr_purge_old_logs (purge consent logs past retention) | weekly, Sunday at 3 AM |
No setup needed — just make sure Magento cron is running.
Geo-targeting with CloudFlare
If you use CloudFlare in front of Magento, the recommended detection method is cloudflare. It reads the CF-IPCountry request header that CloudFlare injects on every request — free, accurate, no external call. Make sure IP Geolocation is enabled in your CloudFlare dashboard (Network → IP Geolocation).
- Version
- v1.3.1
- License
- Annual Subscription
- Support
- 12 months
- Last updated
- Sep 19, 2026
- Magento
- Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
- PHP
- PHP 8.1 PHP 8.2 PHP 8.3
- Hyvä
- Compatible
- Package
-
wimakeit/module-gdpr
Compatibility checker
Pick your stack to see if this module fits.
Compatibility 4
Pricing & licensing 4
vendor/wimakeit/ once you composer require the package, so you can read it, audit it, and patch it locally for your own Magento install. You may NOT redistribute it, sublicense it, publish it on a public package registry, or sell it on. One licence = one production domain + one staging/dev domain (see terms for the full EULA). Wimakeit modules are NOT part of Magento's open-source repository on packagist.org — they are distributed exclusively via the private Composer registry packages.wimakeit.be. Installation & updates 6
composer require wimakeit/module-gdpr:^1.1.7, then bin/magento setup:upgrade, bin/magento setup:di:compile, and finally bin/magento cache:flush. The Installation tab on this page lists every configuration step (ACLs, cron jobs, default values) so a deploy takes minutes, not hours. If you need a hand, Wimakeit offers Magento installation services from our Wallonian office (Presles, between Charleroi and Namur). auth.json: {"http-basic": {"packages.wimakeit.be": {"username": "YOUR-EMAIL", "password": "YOUR-TOKEN"}}}. Step 3: register the repo: composer config repositories.wimakeit composer https://packages.wimakeit.be. Step 4: composer require wimakeit/module-gdpr:^1.1.7. In CI/CD pipelines, inject COMPOSER_AUTH as a JSON env var instead of committing auth.json. composer require, same module code, same database schema — no fork to maintain, no licence change. composer update is safe within a major. app/design/frontend/{YourVendor}/{theme}/Wimakeit_{Module}/templates/ keeping the same relative path. Blocks, ViewModels and Helpers are overridable via DI preference in your own custom module — declare <preference for="Wimakeit\…\OriginalClass" type="YourVendor\Override\Class" /> in etc/di.xml. Layout XML is extended (preferred) or overridden the standard Magento way. Wimakeit modules never use the final keyword on classes you might reasonably want to override — overriding is a first-class scenario, not a hack. Support & security 3
contact@wimakeit.com with the module name, version, Magento/Mage-OS version and the steps to reproduce. Fixes ship in the next patch release. Wimakeit support is staffed in French, English and Dutch on business days (CET working hours). contact@wimakeit.com with a clear [SECURITY] subject prefix — please include the module name, version and the steps to reproduce. We acknowledge promptly on business days and credit reporters in the Changelog if they wish. Wimakeit is a Belgian SRL (société à responsabilité limitée) bound by Belgian and EU privacy and disclosure law. About Wimakeit 1
Found something not covered by the FAQ?
Report a bug or ask a question — the form is prefilled with this module.
Changelog
Categories: Security, Feature, Fix, Perf, Admin, Deps.
[1.3.0] - 2026-09-17
Feature
- Optional automatic account deletion: once enabled, a daily task deletes the account behind every pending GDPR deletion request older than a configurable delay (30 days by default) and closes the request. Off by default.
Admin
- New command
wimakeit:gdpr:auto-deleteto list the requests due, and process them on demand.
[1.2.18] - 2026-09-17
Fix
- "Modify my preferences" on the customer privacy page always opens the cookie settings, even before the visitor's first choice.
[1.2.17] - 2026-09-17
Fix
- The cookie banner and its settings button work again on stores that move scripts to the bottom of the page (a template comment was mistaken for a script tag).
[1.2.16] - 2026-09-08
Fix
- Fixed a fatal error that took every storefront and admin page down when Magento's HTML template minification is enabled — the default in production.
[1.2.15] - 2026-09-04
Fix
- The three privacy account pages now redirect a visitor who is not logged in to the login page, instead of answering with a 500 error.
[1.2.14] - 2026-09-03
Fix
- Consent defaults now apply on the checkout: the block carries a CSP nonce, so measurement tags no longer fire as "granted" throughout the funnel.
[1.2.13] - 2026-08-25
Fix
- Checkout no longer renders order lines and totals twice — the Alpine loader guard is now shared across Wimakeit modules, so only one instance loads.
[1.2.12] - 2026-08-25
Fix
- The cookie banner works on the checkout page again: Alpine is no longer injected from an inline script that Magento's enforced CSP blocked.
[1.2.6] - 2026-08-12
Fix
- The privacy page footer links to the configured Privacy Policy URL instead of two hard-coded French paths that returned 404 on most installs.
[1.2.5] - 2026-08-12
Fix
- The deletion request button keeps its red background, inline layout and padding instead of losing them to the Alpine style binding.
[1.2.4] - 2026-08-12
Feature
- The banner's accent colour is themeable through
--wm-gdpr-colorand--wm-gdpr-color-rgb; installations that do not redefine them look unchanged.
Fix
- The privacy page shows the customer account menu again, instead of an empty sidebar leaving the visitor no way back into their account.
[1.2.3] - 2026-08-11
Fix
- Consent banner buttons size to their content below 640px, instead of stretching and filling half the screen on a phone.
[1.2.2] - 2026-08-11
Feature
- Privacy policy page created automatically — installing the module now provisions the
privacy-policyCMS page the cookie banner links to, with a ready-to-edit GDPR template in French, Dutch or English depending on the store view locale. Existing pages are never overwritten.
Fix
- Leaving the Privacy Policy URL setting empty no longer produces a banner link pointing to the home page.
[1.2.0] - 2026-08-10
Feature
- Deletion requests sent from the customer privacy area now have their own admin grid — until now they were recorded but invisible from the back-office.
- Requests are processed directly from the grid: mark as processing, completed or rejected, one by one or in bulk, with the processing date stamped automatically. A closed request can be reopened.
Admin
- New Marketing → GDPR → Deletion Requests screen: filters on every field, CSV/XML export, and a one-click link from a request to the matching customer account.
- Two permissions under System → Permissions → User Roles: viewing the requests and changing their status are granted separately, so a role can consult without being able to close.
[1.1.10] - 2026-06-29
Deps
- PHP 8.5 certified — constraint widened to
>=8.1 <8.6for Mage-OS 3.x / Magento 2.4.9.
[1.1.9] - 2026-06-05
Deps
- Marketing documentation refreshed to list PHP 8.4 in the supported PHP range.
[1.1.8] - 2026-06-05
Deps
- PHP 8.4 certified — constraint widened to
>=8.1 <8.5. magento/frameworkpinned to^103.0.
[1.1.7] - 2026-05-12
Admin
- Admin dashboard widget code extracted to companion module
wimakeit/module-gdpr-admin-dashboard. The main module is now installable on stores that don't usewimakeit/module-admin-dashboard.
Deps
- To keep the GDPR compliance widget on the admin dashboard, install
wimakeit/module-gdpr-admin-dashboardalongside this module.
[1.1.6] - 2026-05-10
Feature
- New Enable Debug Logging toggle (Stores → Configuration → Wimakeit → GDPR → General), off by default. Delete-request controller and country resolver emit
info/debug/notice/warningonly when the toggle is on;error/criticalalways log.
Perf
- Production stores stop emitting trace lines from the consent/delete flows into
var/log/system.logonce the toggle is left off.
Deps
- Requires
wimakeit/module-core3.0.9+ for the shared debug logger virtual type.
[1.1.5] - 2026-05-08
Admin
- New Wimakeit → GDPR → Settings menu shortcut that opens directly on the
wimakeit_gdprconfiguration section. The rich GDPR menu under Marketing is preserved. - New
Wimakeit_Gdpr::configACL resource so the Settings entry can be granted independently of code edits.
[1.1.4] - 2026-04-29
Deps
- Certified PHP 8.1 → 8.3 support. Composer
phpconstraint tightened to>=8.1 <8.4.
[1.1.3] - 2026-04-21
Fix
- Banner no longer throws
Alpine Expression Error: wmGdprConsent is not definedon Luma whendeferand dynamic Alpine injection raced.cookie-consent.jsis now loaded synchronously so the global is defined before Alpine evaluatesx-data.
[1.1.2] - 2026-04-21
Feature
- Self-registering admin dashboard widget — when
wimakeit/module-admin-dashboardis installed, the GDPR module exposes a compliance-status widget without any glue code.
Admin
- Internal release pipeline standardized (validate, tag, deploy, release stages).
[1.1.1] - 2026-04-20
Fix
- Settings-button icon no longer rendered at 0×0 on Luma themes that leak global button padding — explicit inner SVG size and reset padding restore the icon.
- Banner action buttons (
Accept all/Reject all/Save preferences) now share a uniform height/border-radius andflex: 1 1 140px, so long French labels like "Enregistrer mes choix" no longer spill past the border. - Dark-mode settings-button stroke recoloured from
#888to#cccfor legible contrast on the dark banner background.
[1.1.0] - 2026-04-20
Feature
- Alpine.js is now bundled for Luma themes (Alpine v3.14.8 standalone). Hyvä and Breeze keep using their own Alpine since they already load it. The banner injects Alpine before
cookie-consent.jswhenwindow.Alpineis missing, sox-data/x-cloak/:classdirectives actually process. - Banner texts are now translated. Admin defaults (
Accept all,Reject all, banner title and description) are piped through__()so the FR/EN/NLi18n/*.csvtranslations apply. - Cookie list filters to actually-present cookies. The banner renders only cookies actually set in
document.cookie(wildcard match) instead of every cookie declared in the registry.
[1.0.1] - 2026-04-14
Admin
- Cron and config classes migrated to the shared
AbstractCron/AbstractConfigbases fromwimakeit/module-core— consistent logging and typed getters across all Wimakeit modules. - Composer/Satis distribution archives now exclude internal files (
.gitlab-ci.yml,.claude/,docs/,.gitattributes).
Deps
- Depends on
wimakeit/module-corefor shared cron and config abstractions.
[1.0.0] - 2026-04-13
Feature
- Initial release of Wimakeit GDPR — cookie consent and privacy module for Magento 2 / Mage-OS.
- Cookie consent banner powered by Alpine.js, compatible with Luma, Breeze and Hyvä.
- Admin consent log grid with CSV export — every accept/reject/save is recorded with timestamp, IP (hashed), user-agent and cookie choices.
- Customer privacy page — data export and account-deletion request flow, ready for the "right to be forgotten" and "right to data portability" obligations.
- GeoIP country detection drives consent rules (e.g. apply EU consent flow only to EU visitors).
- Cron purge of old consent log entries based on a configurable retention period.
- Built-in translations for French, English and Dutch (
fr_FR,en_US,nl_NL).
Found a bug? Tell us about it.
A short form opens in a new tab — the module name and your language are already filled in. Share what you tried, what went wrong, and we will get back to you within one business day.
Report a bug for GDPRNeed help?
Our team is available to assist with integration.