GDPR Cookie Banner: real blocking, consent proof and cookie policy - Module PrestaShop

The banner that really blocks trackers before the choice, records every decision with a reference and generates your cookie policy, with no external service.

New Version 1.0.0 1.7.8 8.0+ 9.0+ 5 languages ๐Ÿ‡ซ๐Ÿ‡ท FR ๐Ÿ‡ฌ๐Ÿ‡ง EN ๐Ÿ‡ช๐Ÿ‡ธ ES ๐Ÿ‡ฎ๐Ÿ‡น IT ๐Ÿ‡ต๐Ÿ‡ฑ PL
  • Really blocks third-party scripts, iframes and pixels before consent, then loads them by accepted category
  • Records every choice in an append-only log with a reference and a chained SHA-256 fingerprint
  • Accessible, customizable banner, per-category panel and one-click withdrawal from every page
  • Google Consent Mode v2, shop tracker scan and a cookie policy generated in every language
  • Compatible with PrestaShop 1.7.8, 8.0+ and 9.0+
Not sure yet? Try it free for 24 hours โ€” no credit card required.
Features

Everything you need, nothing you don't.

Consent that is useful to the visitor and defensible for you: scripts wait for the choice, the log keeps the record and the policy follows the inventory.

Real blocking before consent

Scripts, iframes (YouTube, Vimeo, Google Maps), pixels and third-party resources are neutralized in the served HTML, then loaded again by accepted category. Without JavaScript, nothing non-essential runs; a run-time guard also catches late additions.

A library of services ready to classify

GA4, GTM, Google Ads, Meta, TikTok, LinkedIn, Hotjar, Matomo, HubSpot, YouTube, Vimeo, Google Maps and more, with their category and usual cookies. Custom services by domain or pattern, and unknown domains turned into a service.

Customizable banner and panel

Three positions, contrast-checked colors, logo, texts per language and a live preview. โ€œAccept allโ€, โ€œReject allโ€ and โ€œCustomizeโ€ buttons of equal weight, no pre-ticked box, per-category choice and one-click withdrawal.

A log and a proof for every choice

Unique reference, UTC date, action, categories, versions, country and signals: an append-only log, filterable, exportable to CSV and JSON, chained with a SHA-256 fingerprint and checked by the module. Automatic purge according to the retention period.

Consent Mode v2 and cookie policy

Google signals sent before any tag, denied by default in the EU, the EEA, the UK and Switzerland, updated on every choice and a single sender. Cookie policy generated from the inventory, CMS page in every language and a table reusable through a shortcode.

Dashboard, scan and alerts

Acceptance, rejection and customization rates, most blocked services, unknown domains, log integrity and configuration alerts. Scan of the six key pages, an employee control page, test mode and an A/B test.

description Full description expand_more

A cookie banner is not enough if trackers fire before the choice

Many PrestaShop shops show a consent banner, yet Google Analytics, Google Ads, Meta or TikTok scripts still load as soon as the page opens. The visitor's choice changes what is displayed, not what is tracked. And when someone asks what they accepted, on which date and under which version of the text, you have to search server logs with no guarantee of finding a reliable record.

GDPR Cookie Banner handles both problems in the back office: third-party scripts, iframes and pixels are neutralized in the HTML PrestaShop sends, the visitor chooses in an accessible banner, scripts of accepted categories are loaded by the browser, and every decision is written to an append-only log with a reference and a chained fingerprint. The module also generates your cookie policy and sends Google Consent Mode v2 signals. Everything runs inside your shop: no account, no API key, no external service.

It is an aid to collecting and documenting consent. The module does not certify that your shop is compliant, does not replace legal advice and does not turn your cookie policy into a lawyer-approved document: it gives you the means to block, to inform and to keep a record of your choices.

Really block, before consent

When a page is served, the module rewrites the HTML on the server. A known third-party script is neutralized: its address is kept but it does not run. A YouTube, Vimeo or Google Maps iframe is replaced by a block that names the blocked service and offers to load it by accepting the matching category. Tracking pixels and third-party resources announced in the head are handled the same way. When the visitor accepts a category, the browser recreates the allowed elements in page order, with their original attributes.

Without JavaScript, nothing non-essential loads: neutralized elements stay inert. A run-time guard also intercepts scripts and iframes added after page load by another script, and releases them when the matching category is accepted.

The module cannot stop requests that an already allowed script makes itself (fetch, sendBeacon, new Image()), server-side conversions or a script evaluated by eval. A tag manager must therefore be classified in the category of the tags it loads, or rely on Consent Mode. The documentation states this limit so your configuration stays honest.

A clear choice, category by category

The banner sits as a bottom bar, a centred card or a side panel. You set the colors, the logo, the texts in every language and the button order, with a live preview on desktop and mobile. The "Accept all", "Reject all" and "Customize" buttons carry the same visual weight, no box is pre-ticked and scrolling the page never records consent.

The preference panel details the four categories: strictly necessary (always active), audience measurement, advertising and remarketing, and functional. For each service the visitor sees its purpose, its usual cookies and their duration, the recipient and a link to the provider's privacy policy. Each category is saved separately. A floating tab, a footer link and a shortcode let visitors return to their choice from any page, as easily as they accepted. After the period you set โ€” 12 months by default โ€” the banner asks again and non-essential categories are blocked again.

Prove what was chosen

Every decision creates a row in an append-only log: a unique reference in the CC-XXXX-XXXX-XXXX format, UTC date, shop, language, page, action (accept, reject, customize, withdraw, refusal by browser signal), categories, banner, policy and consent versions, country, GPC and DNT signals. The IP address is stored as an HMAC-SHA256 keyed hash by default; you can truncate it or not store it at all. The reference is shown to the visitor after the choice.

Rows are chained by a SHA-256 fingerprint: each row contains the fingerprint of the previous one, and the module's integrity check reports a row that was changed or deleted. This is technical evidence: it shows that a row was changed without the chain being recomputed, but it is not a qualified timestamp and it does not detect someone who recomputes the whole chain with database access. The log exports to CSV and JSON, filters by period, action, country, reference or visitor, and rows older than the retention period โ€” 36 months by default โ€” are deleted automatically.

Consent Mode v2 and cookie policy

The module sends Google Consent Mode v2 signals before any tag: denied defaults in the EU, the EEA, the UK and Switzerland, an update on every choice, a wait timeout and advertising data redaction. Google requires Consent Mode v2 for advertising and measurement in these regions; it is not a legal obligation in itself. Only one signal sender is active: the module, or the Google Tracking module when installed, with a warning if both send.

The cookie policy is generated from the real inventory: categories and legal bases, third-party services and cookies with their usual durations, native PrestaShop cookies (session, cart, language, currency), the consent log and withdrawal. It is published as a CMS page in every shop language, with a version number, and a cookie table can be reused through a shortcode. It is a template to read and adapt: the module displays that warning and asks for confirmation before publication.

Scan the shop and see what happens

The scan visits six representative pages โ€” home, category, product, CMS page, contact, cart โ€” and lists the scripts, iframes, pixels and cookies they load. The report separates what loads before consent, what is blocked until consent and what the shop itself sets, with a before/after comparison. Unknown domains are listed so you can classify them, ignore them or turn them into a custom service; new domains raise an alert and, if you enable it, an e-mail after the scheduled scan.

Test mode, active after installation, changes nothing for visitors: you preview the banner on the shop, and a control page for employees shows the cookies visible to the browser, the services loaded and the category status before and after a choice. The dashboard gathers acceptance, rejection and customization rates, the trend, the most often blocked services, the last scan and configuration alerts. An A/B test compares two banner variants, and country rules can show, hide or replace the banner with a simple notice, with the appropriate warnings.

Accessible, multistore and cache-friendly

The banner and panel target WCAG 2.1 AA: semantic dialog, ARIA roles, keyboard navigation, Escape to close, visible focus, 48 px targets, stacked buttons on mobile and contrast checked on save. The module ships its texts in English, French, Spanish, Italian and Polish, and you can enter every language installed in the shop.

The HTML is identical for every visitor: the choice is applied in the browser, which keeps it compatible with PrestaShop's native cache and with Cache Pro. On the storefront there is one JavaScript file and one CSS file, no jQuery and no external call; the cache is purged whenever settings are saved. In multistore, each shop has its own settings, log, scans and policy; JSON export and import let you duplicate a configuration between shops.

What the module does not do

  • It does not certify that your shop is compliant and does not replace legal advice.
  • It does not provide IAB TCF consent strings: it is not aimed at programmatic advertising publishers.
  • It does not cover regimes outside the EU/EEA, the UK and Switzerland (CCPA/CPRA, LGPD, etc.).
  • It does not run a hosted cloud consent registry and does not sync consent across several domains.
  • It does not handle data subject access or erasure requests: PrestaShop's native GDPR module does.
  • The cookie policy is a generated template: you must read it and adapt it to your shop.

Which shops is it for?

For any PrestaShop shop receiving visitors from the European Union, the EEA, the UK or Switzerland, especially those using GA4, Google Ads, Meta, TikTok or LinkedIn without an in-house legal team. Agencies get JSON import/export and duplication between shops; shops that received a question or a letter about their cookies get the scan, the log and the references. The module works with the Classic and Hummingbird themes.

Requirements and license

PrestaShop 1.7.8, 8.0+ and 9.0+, PHP 7.4 or later. A cron task is useful for scheduled scans and maintenance; PrestaShop's native geolocation (MaxMind database) is optional and used only when you enable it. A valid license is required: without it the module disables itself, the banner is no longer shown and scripts are no longer blocked, but your settings, services, log and policy page are kept and come back with the license.

Block trackers before the choice, keep a record of every decision and publish a cookie policy that matches your shop.

Comparaison

Why choose us?

See how we compare to the most common alternatives on the market.

Feature Addons
Transparent pricing
Lifetime updates included
Direct developer support
PS 1.7, 8 & 9 compatible
Standardized clean code
Multi-store ready
No hidden renewal fees
Included Not included Partial / Not guaranteed
Preview

Discover the module in images.

Acceptance, rejection and customization rates, the daily trend and the A/B variant comparison at a glance.

Acceptance, rejection and customization rates, the daily trend and the A/B variant comparison at a glance.

Acceptance, rejection and customization rates, the daily trend and the A/B variant comparison at a glance.

Acceptance, rejection and customization rates, the daily trend and the A/B variant comparison at a glance.

The scan report separates what loads before consent, what is blocked until the choice and the unknown domains still to classify.

The scan report separates what loads before consent, what is blocked until the choice and the unknown domains still to classify.

The scan report separates what loads before consent, what is blocked until the choice and the unknown domains still to classify.

The scan report separates what loads before consent, what is blocked until the choice and the unknown domains still to classify.

The consent log: reference, date, action, categories and languages, with CSV or JSON export to keep the record.

The consent log: reference, date, action, categories and languages, with CSV or JSON export to keep the record.

The banner on the storefront: clear wording, buttons of equal weight and a direct link to the cookie policy.

The banner on the storefront: clear wording, buttons of equal weight and a direct link to the cookie policy.

Support

FAQ

Find answers to frequently asked questions about this module

No, and it does not claim to. It helps block trackers before consent, inform the visitor and document every choice; it does not certify compliance and does not replace legal advice. The cookie policy is a template to review and adapt to your shop.

The module rewrites the HTML on the server: a known third-party script keeps its address but does not run; an iframe is replaced by an explanatory block and pixels are neutralized. Without JavaScript, nothing non-essential loads. It cannot stop requests that an already allowed script makes itself, server-side conversions or a script evaluated by eval: a tag manager must be classified in the category of the tags it loads, or rely on Consent Mode.

The module sends Consent Mode v2 defaults before any tag, denied in the EU, the EEA, the UK and Switzerland, then updates them on every choice. Google requires these signals for advertising and measurement in these regions; it is not a legal obligation in itself. Only one sender is active: the module, or the Google Tracking module when installed, with a warning if both send. Google services can load before consent in consent_mode, an explicit choice that comes with a warning.

Yes: every choice gets a reference shown to the visitor and a row in an append-only log with the UTC date, categories, action, banner, policy and consent versions, country and signals. Rows are chained with a SHA-256 fingerprint, and the integrity check reports a change or deletion. This is technical evidence, not a qualified timestamp: it does not detect someone who recomputes the whole chain with database access.

Scripts of rejected categories are not loaded. On withdrawal, the module deletes the usual cookies of the category's services on the domain and its parent domains, then reloads the page, because a script that already ran cannot be unloaded. Withdrawal is logged like any choice, with the same ease as accepting. HttpOnly cookies and cookies of other domains cannot be deleted by a page: the panel and the policy say so.

The HTML is identical for every visitor: the choice is applied in the browser, which keeps the module compatible with PrestaShop's native cache and with Cache Pro. On the storefront there is one JavaScript file and one CSS file, no jQuery and no external call; the cache is purged whenever a setting that changes the shop is saved. If a server or CDN cache (Varnish, LiteSpeed, Cloudflareโ€ฆ) stores your pages, the module reminds you to purge it too.

Yes. You choose the position, colors, logo, button order and texts in every installed language, with a live preview on desktop and mobile. The module provides English, French, Spanish, Italian and Polish; a language without a translation falls back to the English defaults and the page invites you to write them. Text and button contrast is checked on save, with the measured ratio.

Yes. The module runs on PrestaShop 1.7.8, 8.0+ and 9.0+ with PHP 7.4 minimum, with the Classic and Hummingbird themes. In multistore, each shop has its own settings, texts, services, log, scans and policy; JSON export and import let you duplicate a configuration between shops without copying the log or statistics.

Without a valid license the module disables itself: no banner, no footer link, no third-party script blocking, no Consent Mode signal and no recorded choice. Your settings, services, log and its chain, scans and policy page are kept; the policy page stays published. The configuration page lets you activate or renew the license, and the module is enabled again as soon as it is valid.

No. The module does not generate IAB TCF consent strings and is not aimed at programmatic advertising publishers, who need a certification issued by IAB Europe. It does not cover regimes outside the EU/EEA, the UK and Switzerland either, nor a cloud-hosted consent registry.

5-minute installation · Full documentation included

Lifetime license
One-time payment, updates included for life.
Choose your license
No commitment · Cancel in 1 click from your account
Instead of --โ‚ฌ/year if purchased separately

You might also like

Loading...