=== GPSR Safety Compliance for WooCommerce ===
Contributors: sunhourcapital
Tags: gpsr, product safety, responsible person, woocommerce, eu compliance
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

EU GPSR compliance for WooCommerce: manufacturer, EU responsible person, product identifiers, safety warnings and documents on every product page.

== Description ==

**GPSR Safety Compliance for WooCommerce** helps you meet the EU **General Product Safety Regulation (EU) 2023/988 (GPSR)**, in force since 13 December 2024. Every consumer product sold online to customers in the European Union must show the manufacturer, the **EU responsible person** (when the manufacturer is outside the EU), product identifiers and safety warnings or instructions *on the product listing*. This plugin adds all of that to WooCommerce in minutes, without editing hundreds of products one by one.

Set your **EU product safety** information once at store level, override it per **product category**, per **product** and even per **variation**. The plugin resolves the right value automatically and shows it in a clean **Product Safety** tab, a shortcode or a block.

= Free features =

* **Manufacturer details**: name, postal address, email and website/contact URL (GPSR Art. 19).
* **EU responsible person / economic operator**: name, address and email for non-EU brands, dropshippers and marketplace sellers.
* **Product identification**: product type, model number, batch / serial / lot number.
* **Safety warnings and safety instructions** text, in any language (translation-plugin friendly).
* **Safety documents**: attach PDFs (safety data sheets, declarations of conformity, manuals) from the media library.
* **Reusable profiles**: save each manufacturer and responsible person once and select it anywhere.
* **Four-level inheritance**: store defaults → category (including parent categories) → product → variation. Leave a field empty to inherit; inherited values are shown as placeholders.
* **Variation support**: different model or batch numbers per variation; the Product Safety tab switches automatically when the shopper picks a variation.
* **Product Safety tab** on single product pages (title and position configurable).
* **Shortcode** `[gpsr_product_safety]` or `[gpsr_product_safety id="123"]` for page builders and custom templates.
* **Block** "Product Safety (GPSR)" for the block editor and block themes.
* **Compliance check** on the product edit screen showing which required GPSR fields are still missing.
* Theme override: copy your own `woocommerce/gpsr-product-safety.php` into your theme.
* Developer hooks: `gpsrsc_fields`, `gpsrsc_requirements`, `gpsrsc_resolved_values`, `gpsrsc_primary_category`, `gpsrsc_after_output`, and the `gpsrsc_get_product_data()` helper.
* HPOS compatible, translation ready, no tracking, no external requests, no ads.

= Pro add-on (optional) =

Large catalog? The separate **GPSR Safety Compliance Pro** add-on adds:

* **Bulk edit** GPSR data from the WooCommerce product list (selected products, a whole category, all products, or only non-compliant ones).
* **CSV import / export** of GPSR data matched by product **SKU or ID**, including variations, with dry-run and spreadsheet-safe export.
* **Bulk assign** manufacturer and responsible person profiles.
* **Compliance dashboard** showing every product that is missing required GPSR information, filterable by missing field, plus a GPSR status column in the product list.
* WP-CLI: `wp gpsr import`, `wp gpsr export`, `wp gpsr scan`.

The free plugin is fully functional on its own; nothing in it is locked.

= Who needs GPSR compliance? =

Any WooCommerce shop selling non-food consumer products to EU consumers: toys, cosmetics, electronics, clothing, home and garden, handmade goods, print-on-demand, dropshipping, and sellers based in the UK, US, China or anywhere outside the EU who need an **EU responsible person** shown on their product pages.

*This plugin is a tool to display information. It is not legal advice; you remain responsible for the accuracy of the data you enter.*

== Installation ==

1. Install and activate WooCommerce.
2. Upload the plugin or install it from **Plugins → Add New**, then activate.
3. Go to **WooCommerce → GPSR Safety** and enter your store-wide defaults (often the EU responsible person).
4. Optional: create reusable profiles under **Products → GPSR Profiles**.
5. Optional: set category defaults under **Products → Categories → Edit**.
6. Fill product-specific data in the **GPSR Safety** tab of the product data box, and per variation under **Variations**.

== Frequently Asked Questions ==

= What is GPSR? =

The General Product Safety Regulation (EU) 2023/988 replaces the old General Product Safety Directive. Since 13 December 2024, online listings for EU consumers must show the manufacturer's name and contact details, the EU responsible person if the manufacturer is not established in the EU, information identifying the product (type, batch or serial number), and warnings or safety information.

= Do I need an EU responsible person? =

If the manufacturer is not established in the EU, a responsible economic operator in the EU (importer, authorised representative or fulfilment service provider) is required. You can switch this requirement off in the settings if your manufacturers are EU based.

= Can different variations have different batch or model numbers? =

Yes. Open the variation, expand "GPSR safety overrides" and fill only what differs. The Product Safety tab updates when the customer selects the variation.

= Where is the information shown? =

In a "Product Safety" tab on the product page by default. You can turn the tab off and use the shortcode or block instead.

= Does it work with block themes and page builders? =

Yes. Block themes show the tab through WooCommerce's product details block, and the shortcode/block works anywhere.

= Does it work with Amazon/eBay-style marketplaces? =

It covers your own WooCommerce store. The same data can be exported with the Pro add-on's CSV export.

= Will deleting the plugin delete my data? =

Only if you tick "Delete all GPSR data when the plugin is deleted" in the settings.

== Screenshots ==

1. Store-wide GPSR defaults with reusable manufacturer and EU responsible person profiles.
2. Product Safety tab on the product page showing manufacturer, EU responsible person, identifiers and warnings.
3. GPSR Safety tab in the product data box with inherited values shown as placeholders.
4. Per-variation GPSR overrides.
5. Category-level GPSR defaults.
6. Pro: compliance dashboard listing products missing required GPSR data.
7. Pro: bulk edit and bulk profile assignment.
8. Pro: CSV import/export matched by SKU or ID.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release.
