Last updated: 29 September 2026. This page is practical information, not legal advice.
What the rule says
Directive (EU) 2019/2161, the "Omnibus Directive", applies since 28 May 2022. It added Article 6a to the Price Indication Directive 98/6/EC. In the words of the Commission's guidance, the prior price shown with a price reduction is "the lowest price applied by the trader during a period of time not shorter than 30 days prior to the application of the price reduction".
In practice: a product sold at 100, dropped to 80 for a week, put back to 100, then "reduced" to 85 two weeks later cannot be advertised as "100, now 85". The lowest price of the 30 days before the reduction was 80.
In 2024 the Court of Justice of the EU confirmed in case C-330/23 (Aldi Süd) that a percentage or a slogan announcing a reduction must be calculated on that 30-day lowest price, not on the price just before the reduction.
The options left to each country
Member States may adopt different rules in three cases, and they have not all made the same choices:
- Perishable goods or goods that deteriorate rapidly.
- Goods on the market for less than 30 days: a shorter reference period.
- Progressive reductions: when the price goes down step by step without interruption, the prior price can remain the price before the first reduction.
According to the guidance, the rule does not cover general claims such as "best prices", loyalty programmes, genuinely personalised reductions, or comparisons with other sellers' prices.
Fines are real
- Netherlands, June 2024: the consumer authority ACM fined five online stores a total of €621,000 for fake discounts: "was" prices that were not the lowest price of the previous 30 days.
- Poland, January 2026: the authority UOKiK announced fines of about 30.9 million zloty for Zalando and 5.9 million zloty for Temu over the way the 30-day lowest price was presented.
Enforcement is national, and the check is simple: an authority looks at a sale price and asks for the price history behind it.
Why Shopify's compare-at price is not enough
- It is a free field. The compare-at price is whatever you type. Nothing ties it to a price you actually charged.
- Shopify keeps no price history per variant. If an authority asks what the price was 22 days ago, the admin cannot tell you.
- Themes show "was / now" from those two fields only. The 30-day lowest price is a third value, and it needs its own line.
What you can do without an app
- Keep a price log by hand: a spreadsheet with every price change, per variant, with the date. It is the evidence you will be asked for.
- Before each sale, look up the lowest price of the previous 30 days and use it as the compare-at price, or add a line "Lowest price in the last 30 days: …" to the product description.
- Limits: this holds for ten products. With hundreds of variants and frequent promotions, nobody keeps the log complete, and one forgotten change makes the displayed price wrong.
What MT: Omnibus Price & EU GARAN does
MT: Omnibus Price & EU GARAN records prices and displays the 30-day lowest price. It never changes your prices.
- Records every price change, per variant, from the day you install it.
- Calculates the reference price two ways. By default, the lowest price of the 30 days before the promotion started, which is what the directive describes. A rolling 30-day window is available if your national rules call for it.
- Shows the line under the sale price with a theme block, only on products that are actually discounted. Optional "−xx %" calculated on the reference price, as the guidance recommends. Default texts in English, French, German, Spanish, Italian, Dutch and Polish, all editable.
- Collection and search pages too, with an app embed that adds the line under the price on product cards.
- Never invents a price. With less than 30 days of history, the line says since when the price is known.
- Compliance report: one line per promotion with dates, sale price and reference price, exportable to CSV on paid plans. This is the document to hand over if you are asked.
- Alerts when a sale price is higher than the reference price, so you see the problem before a customer does.
- Traced corrections. You can exclude a price entered by mistake and corrected within 24 hours, or record a lower price charged outside Shopify, each with a reason that appears in the report. You cannot type in a higher reference price.
- Nothing slows your storefront. The value is written to a variant metafield and rendered by your theme: no network call, no cookie.
Several EU countries. If you sell in other EU countries with their own prices (another currency, a price adjustment, fixed prices or a promotion that only runs in one market), tick those countries in the settings: the app records the prices shown in each of them and shows each visitor the reference for their country. A visitor paying in another currency with no reference for their country sees no line rather than a price in the wrong currency. The line follows the shopper's language in the 24 official EU languages.
Known limits. Discount codes and automatic discounts do not change the displayed price and are not tracked. The compliance report covers your main prices.
The free plan tracks your whole catalog, with no variant limit, and includes the full EU GARAN module (guarantee notice, GARAN label, bulk editor). Paid plans add Excel/CSV exports of the compliance report and price history: a flat $5 (1-year history) or $12 (2-year history) per month. The customer guide shows the setup with real screenshots. On Wix? The same app exists for Wix Stores.
View MT: Omnibus Price & EU GARAN on the Shopify App Store
Also new for EU stores: the legal guarantee notice and the GARAN label, from 27 September 2026.
Frequently asked questions
Is Shopify's compare-at price compliant with the Omnibus Directive?
Not by itself. It is a free field. The rule requires the lowest price applied during at least the 30 days before the reduction, and Shopify keeps no price history from which to compute it.
Does the rule apply to discount codes?
It covers announcements of a price reduction on a product. The guidance excludes genuinely personalised reductions and loyalty programmes. A public code advertised to everyone is closer to a general reduction; ask your legal adviser.
What if the product has been on sale for less than 30 days?
Member States may set a shorter reference period, and national rules differ. A cautious approach is to show the lowest price since the product was first offered, and to say since when.
Has anyone actually been fined?
Yes: five online stores in the Netherlands in 2024 (€621,000 in total), and Zalando and Temu in Poland in January 2026.