This guide is general information, not legal advice. Laws and their interpretation change; check the official texts linked below or ask a lawyer for your specific case.
What the rule says
Article 6a of Directive 98/6/EC, added by the "Omnibus" Directive (EU) 2019/2161, applies across the EU. Member states had to apply it from 28 May 2022; some, such as Poland and the Netherlands, did so from 1 January 2023. Whenever a shop announces a price reduction to consumers, it must show the prior price: the lowest price it applied during a period of at least 30 days before the reduction.
The rule covers any announcement of a reduction: a crossed-out price, a percentage, a "Sale" label or a "was / now" comparison. It does not cover comparisons with a recommended retail price or a competitor's price, as long as they are clearly presented as such.
What changed with the Aldi Süd ruling
On 26 September 2024 the Court of Justice of the EU decided case C-330/23 (Aldi Süd). It is not enough to show the 30-day price somewhere next to the offer: a percentage discount or any claim that highlights the saving must be calculated from that 30-day lowest price.
For a WooCommerce shop this means: the crossed-out price and the "–20%" badge must both be based on the lowest price of the previous 30 days. If you raised the regular price before the sale, the WooCommerce default display is no longer compliant.
A worked example
A bag sold for €59.00 most of the year. Ten days before a sale it was briefly €49.99, then back to €59.00. The sale price is €39.99.
The prior price is €49.99, because it is the lowest price of the 30 days before the reduction. The shop must show €49.99 as the reference, and the badge must say –20% (from €49.99), not –32% (from €59.00).
Special cases the law allows
Progressive reductions: in most countries, if a price is lowered in several steps during one uninterrupted campaign, the reference stays the price before the first step. Poland and Spain did not adopt this option, and Belgium and the Netherlands set time limits.
New products: for goods on sale for less than 30 days, several countries allow a shorter period. Italy and the Netherlands require the shop to state the actual number of days.
Perishable goods: most countries exempt goods that are about to spoil or expire, or set a different rule for them. Products like these can be excluded one by one in Cartnorm.
Rules by country
How 13 EU countries applied the rule, as implemented in Cartnorm's country profiles.
| Country | Further reductions | New products |
|---|---|---|
| Poland | Each one gets a new reference price | Lowest price since first offered |
| Spain | Each one gets a new reference price | No prior price for items sold for the first time |
| Belgium | Progressive, up to 30 days | Lowest price of the previous 7 days |
| Netherlands | Progressive, up to 3 months | Shorter period, stated in the notice |
| Italy | One campaign keeps its reference | Real number of days stated |
| Germany, Austria, France, Czechia, Sweden, Portugal, Ireland, Romania | One campaign keeps its reference | Lowest price since first offered |
Enforcement examples
- Netherlands, June 2024: the ACM fined five online stores a total of €621,000 over fake discounts. A court later upheld the fine against Leen Bakker. ↗
- Poland, January 2026: UOKiK fined Zalando PLN 30.95 million, among other things because the percentage was calculated from the regular price. The decision is not yet final. ↗
- Germany, October 2025: the Federal Court of Justice (BGH, I ZR 183/24) held that the 30-day price in an advertisement, given only in a footnote, was not shown clearly enough.
How to comply in WooCommerce
WooCommerce does not keep a price history, so it cannot know the lowest price of the last 30 days. You need a plugin that records every price change from now on and calculates the reference correctly, including for variations and scheduled sales.
Cartnorm does this for free. It also handles the country rules above and hides badges for reductions that are not genuine.
Install free from WordPress.org