GPSR Compliance (product safety) — Complete guide
Install, configure and operate GPSR compliance: economic operators (manufacturer, EU responsible person), per-product safety warnings and pictograms, default values, storefront display and coverage dashboard for PrestaShop 8 and 9.
Overview
The GPSR Compliance module (datafireflygpsr) equips your shop for Regulation (EU) 2023/988 on general product safety, applicable since 13 December 2024. It displays on every product page the manufacturer, the responsible person established in the European Union, the safety warnings and the regulatory pictograms, in the customer’s language.
The module provides the technical tooling to collect and display the required information. Regulatory compliance also depends on the accuracy of the information you enter and the risk assessment specific to each product. It is not a substitute for legal advice.
Compatibility
- PrestaShop 8.0 to 9.x
- PHP 7.4 to 8.3
- MySQL 5.7+ or MariaDB 10.3+
- Single-store and multistore
- Classic theme, Hummingbird and custom themes
- Interface and data shipped in French, English, Spanish, German and Italian
- No dependency (neither Composer nor framework), no CDN
Installation
- In the back office, open Modules > Module Manager.
- Click Upload a module and select the
datafireflygpsr.zipfile. - Once installed, click Configure.
On installation, the module creates its tables, registers its hooks (back-office and front resources, product page tab, storefront display block), adds the Catalog > GPSR menu and seeds sample data: four pictograms (caution, age 0-3, CE marking, flammable) and two sample warnings (choking hazard, adult supervision), translated into all five languages.
Quick start
- Create your economic operators (at least a manufacturer and, if needed, an EU responsible person) in Catalog > GPSR > Operators.
- Review or complete the library of pictograms and warnings.
- In the module configuration, optionally set a default manufacturer and EU responsible person.
- Open a product page, go to the GPSR tab, fill in the information, then click Save GPSR.
- Check the storefront display on the product page.
Module configuration
- Enable GPSR display: turns the storefront display of information on or off.
- Display mode: Dedicated tab (a “Product safety” tab on the page) or Inline block (below the product information).
- Show pictograms: shows or hides the pictogram grid on the storefront.
- Show warnings: shows or hides the list of warnings on the storefront.
- Hide if empty: shows no frame when a product has no GPSR data filled in.
- Default manufacturer and default EU responsible person: operators applied automatically to products without a specific value (see “Default values”).
Managing economic operators
Economic operators are managed once and reused across your whole catalogue, from Catalog > GPSR > Operators. Four types are available:
- Manufacturer: the entity that produces the goods or has them produced under its name.
- Importer: the entity that places a product from a third country on the Union market.
- Authorised representative: the person mandated by the manufacturer to act on its behalf in the EU.
- EU responsible person: the responsible person established in the Union, required when the manufacturer is outside the EU.
Each operator carries its company name, full address, country, email, phone, website and VAT number.
Correct an address once on the operator: the change propagates instantly to every product that uses it, with no product-by-product re-entry.
Managing pictograms
From Catalog > GPSR > Pictograms, create, edit or delete safety pictograms. Each pictogram has a code, an image (SVG or PNG, uploaded into the module), a display position and, for each language, a name and a caption.
- Four pictograms ship out of the box: general caution, age range 0-3, CE marking, flammable product.
- You can create as many as needed and upload your own visuals.
You remain responsible for choosing the pictograms appropriate to each product under the applicable regulation.
Managing warnings
From Catalog > GPSR > Warnings, manage the library of safety warnings. Each warning has a code, a position and, for each language, its text.
- Two sample warnings ship out of the box: choking hazard (small parts) and use under adult supervision.
- The texts are translated into all five languages and fully customisable.
Filling in a product’s GPSR data
Open a product page in the back office: a GPSR tab is added. There you find:
- selection of the manufacturer and the EU responsible person from your operators;
- the GTIN and batch number fields;
- the applicable warnings (checkboxes);
- the grid of selectable pictograms;
- an additional safety information free-text area, multilingual.
Click Save GPSR to save.
Saving GPSR data goes through a dedicated AJAX controller, independent of the Symfony product form. This is a deliberate architectural choice: it guarantees identical, reliable behaviour on PrestaShop 8 and 9, whose product pages differ substantially. The “Save GPSR” button is therefore distinct from the product page’s “Save” button.
Default values and automatic fallback
If most of your products share the same manufacturer or the same EU responsible person, set them once in the module configuration as default values. Any product without a specific manufacturer or responsible person automatically inherits these values on the storefront. You only fill in the exceptions manually.
Storefront display
Depending on the chosen mode, GPSR information is displayed:
- in a dedicated tab on the product page, via the
displayProductExtraContenthook; - or in an inline block below the product information, via the
displayProductAdditionalInfohook.
The block shows the manufacturer, the EU responsible person, the warnings, the pictograms (with their captions), the additional information, and where applicable the GTIN and batch number. The Hide if empty option avoids any empty frame on products with no data.
Coverage dashboard
The Catalog > GPSR menu opens a dashboard showing the share of the catalogue with GPSR data filled in: number of covered products, number of operators, pictograms and warnings. It helps you spot the products still to be completed.
Multilingual
Warnings, pictogram captions and additional information can be translated into French, English, Spanish, German and Italian. The display automatically follows the customer’s active language — which the Regulation requires, mandating safety information in the language of the country of sale. Interface labels are translated via Advanced Parameters > Translations > Translations of installed modules, selecting datafireflygpsr.
PrestaShop 9 compatibility
The module is designed and tested from PrestaShop 8.0 to 9.x:
- the back-office controllers use
ModuleAdminController, compatible with 8 and 9; - product data saving goes through a dedicated AJAX controller rather than the Symfony product form;
- the AJAX controller returns JSON directly, with no incompatible signature override.
FAQ and troubleshooting
The GPSR tab does not show my operators
Check that you have created at least one operator in Catalog > GPSR > Operators and that it is active. The product page dropdowns only list active operators.
The information does not show on the storefront
Make sure GPSR display is enabled in the configuration, that the product has data filled in (or a default manufacturer/responsible person is set), then clear the PrestaShop cache. If the Hide if empty option is active, a product with no data deliberately shows nothing.
Clicking “Save GPSR” does not save
The “Save GPSR” button is distinct from the product page’s “Save” button and triggers a dedicated AJAX request. Clear the cache, reload the product page, and check in the browser console that no extension is blocking the request.
How do I add my own pictogram?
In Catalog > GPSR > Pictograms, create a pictogram, upload your image (SVG or PNG) and fill in its name and caption for each language.
Is it compatible with PrestaShop 9?
Yes. The module is designed and tested from PrestaShop 8.0 to 9.x, in single-store as well as multistore.
Uninstallation
Uninstalling removes the module’s tables and admin tabs and unregisters the hooks. Operators, pictograms, warnings and product associations are erased. If you plan to reinstall, keep a backup of your database beforehand.