EU Omnibus Directive · WooCommerce

Show the lowest 30‑day price. Correctly, in every EU country.

Cartnorm records every price change and shows the reference price the law requires: the lowest price of the 30 days before the discount. Strikethrough prices and "–20%" badges are calculated from it, as the EU Court of Justice requires.

30-day money-back guarantee Price history stays in your own database Customer text in 7 languages
–20%

Example shop · Germany

Leather Weekender Bag

€49.99 €39.99

Niedrigster Gesamtpreis der letzten 30 Tage vor der Preisermäßigung: 49,99 €

Regular price
€59
Lowest in 30 days
€49.99
Badge based on
€49.99, not €59

Fake discount guard. If a "sale" price is not below the 30-day low, Cartnorm hides the strikethrough and the Sale badge automatically.

Directive 98/6/EC, Article 6a Follows CJEU ruling C-330/23 (Aldi Süd) Rule profiles for 13 countries Compatible with HPOS and block checkout

Why it matters

Most WooCommerce shops show the wrong "before" price

The strikethrough must be the 30-day low

Since the Aldi Süd ruling of September 2024, a "–20%" must be calculated from the lowest price of the previous 30 days, not from a regular price that was raised before the sale.

Read about the ruling →

Regulators are checking

In 2024 the Dutch ACM fined five retailers a total of €621,000 over price reductions. In January 2026 Poland's UOKiK fined Zalando PLN 30.95 million, a decision that is not yet final.

See the sources →

Every country adds its own rules

Poland and Spain treat each further reduction separately. Belgium and the Netherlands allow progressive sales, with different limits. Italy requires the real number of days for new products.

See the country rules →

Set it up once. It keeps itself right.

1

Install and pick your country

Cartnorm reads it from your store address. Already used another Omnibus plugin? Import its history in one click.

2

Every price change is recorded

Product editor, quick and bulk edit, CSV import, REST API and scheduled sales. A row is written only when a price actually changes.

3

The right notice appears

On product, shop and category pages, in the customer's language, with the strikethrough and badge calculated from the 30-day low.

Built for the details other plugins get wrong

A window that does not drift

The 30 days end when the reduction starts and stay fixed for the whole sale, so a long sale never becomes its own reference price.

Fake discount guard

Not a genuine reduction? The strikethrough, notice and Sale badge are hidden automatically.

Rules for each EU country

Progressive reductions, minimum history for new products and day counts, set per country.

Variations done properly

Each variation keeps its own history and notice, and the notice switches when the customer picks a variation.

Audit trail for inspectors

Correct a typo with a reason; the original stays in the audit log. Export history and log as CSV.

Omnibus check

One screen lists every reduced product and flags the ones that need attention.

Display anywhere

Block, Elementor widget and shortcode, plus four positions on product pages.

For headless shops

The REST API returns the lowest price, days, discount and ready-made notice for every product.

Country rules, handled

Choose your country, or let Cartnorm read it from your store address. You can override the progressive-reduction rule in the settings.

CountryFurther reductionsNew products
PolandEach one gets a new reference priceLowest price since first offered
SpainEach one gets a new reference priceNo prior price for items sold for the first time
BelgiumProgressive, up to 30 daysLowest price of the previous 7 days
NetherlandsProgressive, up to 3 monthsShorter period, stated in the notice
ItalyOne campaign keeps its referenceReal number of days stated
Germany, Austria, France, Czechia, Sweden, Portugal, Ireland, RomaniaOne campaign keeps its referenceLowest price since first offered

Free does the law. Pro does it in every currency.

What you getFreePro
Correct 30-day lowest price, strikethrough and badge Yes Yes
Rules for 13 countries, fake discount guard Yes Yes
Audit trail, corrections, CSV export, Omnibus check Yes Yes
Block, Elementor widget, shortcode, REST API Yes Yes
Multi-currency: WPML, Aelia, CURCY, FOX or your own rates — Yes
Separate 30-day history for each currency — Yes
Priority email support Forum Yes

Who is behind Cartnorm

Two people. We answer our own email.

Cartnorm is an independent studio from Ukraine. No ticket queue and no outsourced first line: when you write to us, the person who wrote the code replies.

Ask a question before you buy
Rustam Iuldashov
Rustam IuldashovFounder & developer
Marina Mochalova
Marina MochalovaDesign & product

Pro pricing

All Pro features in every plan. Prices excl. VAT, billed yearly.

1 site

€59 / year

Start 14-day trial

20 sites

€249 / year

Start 14-day trial

14-day trial, cancel any time before it ends. 30-day money-back guarantee, no questions asked. Cartnorm Pro is sold to businesses only: online shops, agencies and freelancers.

Questions

Do I need this if I only sell outside the EU?

No. The rule applies to price reductions announced to consumers in the EU.

Why is my strikethrough price different from my regular price?

Because the law requires it to be the lowest price of the 30 days before the reduction. You can switch back to the WooCommerce default in the settings.

What happens if I do not renew Pro?

The free plugin keeps working in your base currency. Multi-currency notices stop until you renew.

Does any shop data leave my site?

No. Price history is stored in your own database. Pro only contacts the licence server to check your licence.

Is this legal advice?

No. Cartnorm helps you meet the price-indication rules, but you remain responsible for your prices and for checking the law that applies to your shop.

More EU compliance tools are coming

Next on our list: the EU withdrawal button and e-invoicing for WooCommerce. Want to hear when they are ready? Write to us and we will send one email per launch.

Tell me when it launches