Directory / plugin

Shoplex – EU Compliance for WooCommerce

v1.6.2 · by WPPoland (Mariusz Szatkowski)

EU consumer law compliance for WooCommerce: Omnibus, unit price, VAT, delivery times, withdrawal, Button-Lösung, GPSR, Pfand, and LMIV food facts.

About this plugin

Selling to consumers in the European Union requires specific information across the product page, the shopping cart, the checkout flow, and post-purchase order management. Requirements differ across EU member states: German law (§ 312j Abs. 3 BGB) prescribes the order button wording under the Button-Lösung rule, French law penalizes missing payment warnings, Spanish law requires a three-year statutory warranty rather than the standard two-year period, and packaging laws require specific register numbers (LUCID in Germany, EPR in France, BDO in Poland).

Shoplex provides tools for these rules as twenty distinct, independent modules; it does not make a shop compliant. Each module can be switched on or off individually under WooCommerce > Shoplex. The administration interface explicitly references the corresponding EU directive or national statute for each requirement.

The Twenty Modules

  1. Unit Price (Price per Reference Unit)
    Directive 98/6/EC requires showing the price per standard unit (such as per kilogram, 100 grams, litre, or metre) alongside the final selling price for packaged goods sold by weight or volume. Shoplex calculates this ratio automatically from the product’s net content and chosen reference unit. Works across simple and variable products, and supports archive catalogue loops.

  2. Lowest Price in the Last 30 Days (Omnibus Directive)
    Directive 2019/2161 (the Enforcement and Modernisation Directive, commonly called Omnibus) dictates that any price reduction announcement must state the lowest price applied during a period of at least 30 days prior to the reduction. Shoplex maintains a local database log of every price update across regular, sale, and variation prices. Unscheduled sales calculate against historical records, and daily scheduled cleanup retains the window without deleting the active base price.

  3. VAT Notice (Tax Display Indication)
    Directive 2011/83/EU requires stating the total price inclusive of taxes, and in Germany PAngV § 6(1) requires stating that prices include VAT. Shoplex prints the rate applied to each product (e.g. “incl. 19% VAT” or “excl. VAT” for net display). For merchants qualifying for the small business scheme (Article 284 of Directive 2006/112/EC, such as § 19 UStG in Germany), a dedicated exemption notice replaces standard tax percentages.

  4. Shipping Costs Notice & PAngV Link
    Directive 2011/83/EU art. 6(1)(e) requires that when shipping costs cannot be calculated in advance, the fact that such costs are payable must be stated. The German Price Indication Ordinance (PAngV § 6) requires stating that VAT is included and whether, and how much, shipping is charged; a link from “plus shipping” (“zzgl. Versandkosten”) to the shipping page is common practice. Shoplex allows designating a specific shipping page or falls back cleanly to the shop’s legal terms page.

  5. From-Price for Variable Products
    When product variants carry different prices, a wide range (“€10.00 – €90.00”) is harder to read. Shoplex replaces ranges with a clean “from €10.00” label reflecting the lowest currently purchasable variation.

  6. Delivery Time Indication
    Directive 2011/83/EU art. 6(1)(g), as amended by Directive (EU) 2024/825, requires “the arrangements for payment, delivery, including environmentally friendly delivery options where available, performance, the time by which the trader undertakes to deliver the goods or to perform the services and, where applicable, the trader’s complaint handling policy”. Shoplex registers a dedicated delivery time taxonomy allowing unified terms (“2 – 4 business days”, “ready to ship in 24h”) applied per product, per variation, or shop-wide.

  7. Legal Guarantee of Conformity and Durability
    Directive (EU) 2019/771 on consumer sales of goods and Directive (EU) 2019/770 on digital content require informing consumers of their statutory conformity guarantee. For Spain, where Real Decreto-ley 7/2021 amended the LGDCU to require a 3-year statutory warranty (36 months) starting January 1, 2022, Shoplex automatically provides the 3-year warranty statement when resolving customers in Spain. Also supports displaying commercial guarantees of durability, digital software update periods, and repair information. The output is a plain-text reminder, not the harmonised notice or label of Implementing Regulation (EU) 2025/1960.

  8. Country-Specific EU Rules (Button-Lösung & Packaging Registers)
    Article 8(2) of the Consumer Rights Directive requires the order button to read “order with obligation to pay” or a corresponding unambiguous formulation. The defaults follow the art. 8(2) wording in each language or an equivalent; check national law:

– Germany & Austria (§ 312j Abs. 3 BGB / § 8 FAGG): Zahlungspflichtig bestellen
– France (Art. L. 221-14 Code de la consommation): Commande avec obligation de paiement
– Italy (Art. 51 comma 2 Codice del Consumo): Ordine con obbligo di pagare
– Spain (Art. 98.2 LGDCU): Pedido con obligación de pago
– Poland (Art. 17 ust. 3 Ustawy o prawach konsumenta): Zamówienie z obowiązkiem zapłaty
Works on both the classic checkout and the WooCommerce Block Checkout via client-side registration filters. Also displays packaging and environmental registry numbers (LUCID register number for Germany under § 6 VerpackDG, formerly § 9 VerpackG, Identifiant Unique REP / EPR for France under AGEC, and the BDO number for Poland under the Waste Act).

  1. 14-Day Right of Withdrawal (Declaration Form)
    The 14-day right of withdrawal comes from Directive 2011/83/EU art. 9; art. 6(1)(h) and Annex I(B) cover the information and the model form. This module is a withdrawal declaration form, not the art. 11a withdrawal function; for that, use the Withdraw plugin. The 14 days are counted from the date the order was completed. It provides:

– Public shortcode [shoplex_withdrawal_form] allowing guest lookups with anti-enumeration protection and rate limiting.
– Secure single-use magic links sent directly to the customer’s billing email with a 30-minute expiry.
– Authenticated declaration form listing remaining withdrawable items with clamped quantities to prevent returning more units than ordered.
– Direct High-Performance Order Storage (HPOS) metadata storage (_shoplex_withdrawals), audit trails in WooCommerce order notes, and automated confirmation emails to both customer and store administrator.

  1. General Product Safety Regulation (GPSR) & Barcode Validation
    Regulation (EU) 2023/988 (GPSR), in effect since December 13, 2024, requires online listings to publish manufacturer identity details, postal address, electronic address, the EU responsible person (for manufacturers outside the EU), and required safety warnings or instructions. Shoplex provides dedicated per-product and default fields for all required GPSR disclosures, plus real-time GS1 check-digit validation (GTIN-8, GTIN-12, GTIN-13, GTIN-14) on the native WooCommerce barcode field to prevent invalid identifiers.

  2. Checkout Consents & Consent Recording
    Directive 2011/83/EU art. 8 and GDPR art. 7 demand unambiguous, affirmative agreement for specific contractual conditions, particularly waiving withdrawal rights for immediate access to digital downloads. Shoplex renders terms, privacy policy, right of withdrawal acknowledgment, digital content waivers, newsletter consents, and carrier delivery updates. Each recorded consent captures the verbatim text displayed, the customer decision, and the exact timestamp stored in HPOS order meta. Compatible with classic and block checkouts.

  3. Trader Identity (Impressum / Legal Notice)
    Directive 2000/31/EC art. 5 and national legislation (such as § 5 DDG in Germany) require commercial websites to give easy, direct and permanent access to the name, geographic address, details for rapid electronic contact including an email address, the trade register and number, and the VAT identification number. Shoplex renders these through the [shoplex_business_info] shortcode or the native block.

  4. Dispute Resolution Notice
    Directive 2013/11/EU as amended by Directive (EU) 2025/2647, plus national rules, set when a trader has to inform consumers about alternative dispute resolution. The ODR platform regulation 524/2013 was repealed from 20 July 2025. Shoplex provides a dispute notice for store footers or legal pages.

  5. Intra-EU B2B VAT Validation (VIES REST API & Swiss UID)
    Under Directive 2006/112/EC art. 138, exempting cross-border intra-EU B2B supplies at 0% VAT requires verifying that the customer is a taxable person with a valid VAT number in another member state. Shoplex queries the European Commission’s official VIES REST endpoint in real time across all 27 member states and Northern Ireland (XI). When configured with your own VAT ID, it performs a qualified check and stores the official consultation number (requestIdentifier) directly in the order meta and order notes as audit-proof evidence for tax authorities. Also validates Swiss enterprise identification numbers (UID / CHE) for cross-border trade with Switzerland.

  6. Statutory Complaint Form Template (Formularz Reklamacyjny)
    Under Directive (EU) 2019/771, consumers are entitled to remedies (repair, replacement, price reduction, contract termination) for non-conforming goods. Shoplex provides a ready-to-print or embed complaint form via shortcode [shoplex_complaint_template] and an administrative preview with one-click standalone HTML download, automatically populated with the merchant’s company details.

  7. Cyber Resilience Act Disclosure (CRA / RFC 9116 security.txt)
    Shoplex serves an RFC 9116 security disclosure policy at /.well-known/security.txt (RFC 9116). Merchants can specify their security contact email, vulnerability disclosure policy URL, and expiration date. This is not a Cyber Resilience Act (Regulation EU 2024/2847) requirement for shops; the CRA binds manufacturers.

  8. Digital Services Act Notice & Action Mechanism (DSA Reporting)
    Article 16 of Regulation (EU) 2022/2065 (Digital Services Act) binds hosting providers, so it is relevant if your shop hosts third-party content (marketplace sellers, reviews). Shoplex provides the public notice form via [shoplex_dsa_report] with structured reason selection, validation, rate limiting, and instant email dispatch to store administrators.

  9. Packaging Deposit (German Pfand)
    Germany: § 46 VerpackDG sets a deposit of at least 0.25 EUR incl. VAT on single-use beverage containers; reusable (Mehrweg) deposits are set by the trade. Shoplex calculates the deposit per item and packaging unit count, adds it as a cart fee at checkout, taxed at the VAT rate of the product it belongs to (UStG section 10(1); UStAE 10.1(8), administrative guidance), and displays refund notices on product pages. The default reusable amounts (0.08 and 0.15 EUR) are common trade amounts, not statutory ones.

  10. Food Information & LMIV Nutrition Table (Regulation EU 1169/2011)
    For food sold online, Regulation (EU) No 1169/2011 (LMIV) art. 9 lists the mandatory particulars, available before purchase: nutrition declaration (per 100g / 100ml: energy kJ/kcal, fat, saturates, carbohydrates, sugars, protein, salt), the 14 allergens, net quantity and food business operator. Alcohol by volume is required above 1.2% vol, and origin only where art. 26 requires it. Nutri-Score is voluntary.

  11. Cookie & Consent Management (ePrivacy Directive, TDDDG & Google Consent Mode v2)
    Under Directive 2002/58/EC (ePrivacy Directive) and national laws (such as Section 25 TDDDG in Germany and GDPR Art. 7), storing or accessing non-essential data on user devices requires prior, informed consent. Shoplex provides a lightweight cookie banner with granular category opt-ins (Essential, Analytics, Marketing), Google Consent Mode v2 signals, a reopen consent badge for withdrawal at any time, and an automated content blocker for third-party media embeds (YouTube, Vimeo, Google Maps, OpenStreetMap, SoundCloud) that loads embeds only after consent is granted.

Multilingual and Translation Compatibility

Shoplex includes comprehensive multilingual support:
* WPML & Polylang: Includes an official wpml-config.xml mapping configuration keys from shoplex_* options directly into string translation tables.
* TranslatePress & Loco Translate: Built with standard gettext functions across all frontend templates, notices, and checkout buttons.
* Autonomous Resolution: Destination country rules resolve based on billing address, shipping address, or geolocation independently of the front-end language chosen by the buyer.

Technical Architecture

  • HPOS Native: Full support for WooCommerce High-Performance Order Storage (Custom Order Tables).
  • Block Checkout Compatible: Integrates with WooCommerce Cart and Checkout Blocks via Store API and Blocks JavaScript filter registries.
  • Zero External Dependencies: Runs locally on your server. No external calls except the optional VIES / Swiss UID checks, no API keys, and no monthly service fees.
  • Minimal Overhead: Built without heavy JavaScript frameworks or unnecessary database tables.

Plugin tags