Shoplex — EU Compliance for WooCommerce

Описание

Selling to consumers in the European Union comes with a fixed list of things that have to appear on a product page: the unit price, the lowest price of the last 30 days when something is on sale, whether VAT is included, who made the product and who is answerable for it in the EU, and what happens if it breaks.

Shoplex implements that list as eleven modules you switch on one at a time. Every module names the directive or regulation it comes from, on the screen where you enable it, so you can check the claim rather than trust it.

The modules

  • Unit price. Price per kilogram, litre or piece next to the selling price, for products where you enter the content amount. The reference amount is yours to set, so a 200 g product can be stated per kilogram or per 100 g. Directive 98/6/EC.
  • Lowest price in the last 30 days. Records every price change and shows the previous lowest price whenever a product goes on sale. Directive 2019/2161, the Omnibus directive.
  • VAT notice. States whether the price includes VAT, with a variant for sellers exempt under the small business scheme.
  • Shipping cost notice. The «plus shipping» line that belongs next to a price when delivery is charged separately.
  • From-price. Replaces a price range on variable products with the lowest price a customer can actually pay.
  • Delivery time. Per product or shop-wide, on the product page, edited as a real taxonomy so the whole catalogue says the same thing. Directive 2011/83/EU art. 6(1)(g).
  • Legal guarantee and durability. The two-year guarantee of conformity, plus durability, update period and repair information where they apply. Directives 2019/771 and 2019/770.
  • Product safety information. Manufacturer, EU responsible person, importer, warnings and safety instructions on the product page. Regulation (EU) 2023/988, the GPSR.
  • Checkout consent. Terms, privacy, digital content waiver, newsletter and carrier checkboxes, each one optional. The order records what was agreed, in the wording that was shown, and when. Works on the classic and the block checkout.
  • Trader identity. The seller details a distance contract has to state, available as a shortcode and a block.
  • Dispute resolution notice. How a consumer takes a dispute further.

Who it is for

Any WooCommerce shop that sells to consumers in the EU, whether it is based there or ships into it. The obligations follow the customer, not the seller, so a shop outside the EU selling to EU consumers is in the same list.

How it works

Nothing switches itself on for you and nothing writes copy on your behalf. You enable the modules your shop needs under WooCommerce, Shoplex, fill in the trader details once and the per-product fields on the products that need them, and the storefront renders what you entered. Every notice wording is editable, so the plugin never puts words in your mouth.

The data lives in WooCommerce: product meta, one taxonomy for delivery times, one table for price history, and the consent record on the order. No account, no external service and no call home.

What it does not do

It is not legal advice, and it does not decide anything for you. It renders what you enter and records what your shop does. Whether your shop complies is your call and your responsibility.

It does not cover national law on top of the EU baseline: invoicing rules, national VAT registers, waste registers and deposit schemes are country business and are deliberately out of scope.

It does not collect price history retroactively. The lowest-price notice starts from the first price change recorded after you switch the module on, because no shop stores a price it never wrote down.

Скриншоты

Установка

  1. Install and activate WooCommerce 8.0 or newer.
  2. Install and activate Shoplex.
  3. Go to WooCommerce > Shoplex and switch on the modules your shop needs.

Часто задаваемые вопросы

Does it work with the block checkout?

Yes. The checkout consent module registers on both the classic shortcode checkout and the block checkout.

Does it collect the price history retroactively?

No, and nothing can. The lowest-price notice starts from the first price change recorded after you switch the module on, because no shop stores a price it never wrote down.

Is this a replacement for a country-specific plugin?

Only for the EU-wide part. Invoicing, national tax identifiers and country registers are deliberately out of scope.

Отзывы

wow

23.09.2026
I’m impressed with how well this integrates with my existing theme.
Посмотреть 1 отзыв

Участники и разработчики

«Shoplex — EU Compliance for WooCommerce» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

Перевести «Shoplex — EU Compliance for WooCommerce» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

1.2.2

  • Fixed: the unit price stated the unit but not the reference amount, so a product priced per 1000 g read «EUR 67.50 / g» while costing EUR 13.50. The product panel invites a reference amount other than 1, and price indication is the one thing this module exists for, so the amount is now part of the line: «EUR 67.50 / 1000 g».

1.2.1

  • Fixed: the consent fields for the block checkout are registered on init, and building them read the cart, which WooCommerce only has from wp_loaded. Every front-end load logged «get_cart was called incorrectly» with debugging on. The cart is read only once it exists.
  • Changed: a consent box limited to certain products, countries or payment methods is shown on the classic checkout only. A block checkout field is registered once for the whole shop, so the digital-content waiver would otherwise appear for someone buying a chair.

1.2.0

  • The checkout consent module now reaches the checkout. It registered seven checkboxes, validated them and extracted what a shopper agreed to, and nothing ever called any of it: no box was rendered, no order carried a record. Both checkouts are wired, the classic one and the block one, which share no hooks, and the order stores what was agreed in the wording that was shown plus the time it was given. The order screen shows that record.
  • Renamed to Shoplex.

1.1.0

  • Product fields. Unit price, delivery time, guarantee of durability, update period, repair information and the twelve GPSR fields are now filled in on an Shoplex tab of the product. They were read by the storefront from the first release but nothing could write them, so those modules rendered nothing whatever they were set to.
  • Settings screen. Trader details and every notice wording are now editable, under WooCommerce, Shoplex settings. Only the module switches had a screen before.
  • Delivery times are a real taxonomy, edited under Products, so a shop states the same wording across its catalogue. The delivery module read terms from a taxonomy nothing registered.
  • The «show in the catalogue» switches for the unit price and the delivery time, and «show safety information on the product page», now do what they say. Nothing read them.
  • Prices displayed net can be chosen again: the stored value the plugin shipped was one the code did not accept, so every shop was locked to gross.
  • The VAT rate follows the site language: 23.5 in English, 23,5 in Polish. It was always written with a comma.
  • Fixed the delivery notice falling back to Polish wording, and the product list column counting twelve safety fields while calling them eight.

1.0.0

  • First release: unit price, lowest price in the last 30 days, VAT and shipping notices, from-price, delivery time, legal guarantee and durability, product safety information, checkout consent, trader identity and dispute resolution notice.
  • The lowest-price window only compares prices recorded in the shop’s current currency. Two amounts in different currencies do not compare, so a shop that switches currency starts a fresh window rather than showing a dollar figure beside a euro price.