Skip to main content

Omnibus Directive: the EU 30-Day Price Rule and What Else Changed

The EU Omnibus Directive explained for webshops: the 30-day prior price rule, strikethrough prices, feeds, reviews, rankings and fines before Black Friday.

Omnibus Directive: the EU 30-Day Price Rule and What Else Changed

The Omnibus Directive, Directive (EU) 2019/2161, is the EU law behind the 30-day price rule. For webshops its best known change is Article 6a of the Price Indication Directive 98/6/EC: any announced price reduction must show the prior price, and the prior price is the lowest price you charged in at least the 30 days before the reduction. Member States had to apply the new rules from 28 May 2022, so every EU sale, Black Friday deal and crossed-out price is already covered.

The directive, also called the New Deal for Consumers, changed more than prices. It added rules on fake and unverified reviews, ranking transparency on marketplaces, disclosure of personalized prices, the trader status of marketplace sellers, and maximum fines of at least 4% of annual turnover for widespread infringements that EU authorities tackle together. This guide goes through each rule, then gets practical for the run-up to Black Friday on 27 November 2026: what price data to store per product and channel, how to set strikethrough prices in Shopify, WooCommerce and Magento, and what to send in feeds.

What the Omnibus Directive changed for online sellers

Directive (EU) 2019/2161 is an amending directive: it rewrote parts of four existing consumer laws. The table lists the changes a webshop, marketplace seller or marketplace operator runs into, with the article each one sits in.

Omnibus Directive rules that reach webshops and marketplaces

Prior price on reductionsDirective 98/6/EC, Art. 6aSellers of goodsLowest price of at least the last 30 days next to every announced reduction
Review verificationDirective 2005/29/EC, Art. 7(6)Anyone who shows consumer reviewsWhether and how you check that reviews come from real buyers or users
Fake reviewsDirective 2005/29/EC, Annex I 23b and 23cEveryoneNo "verified" claim without reasonable checks; no bought, fake or selectively edited reviews
Ranking parametersDirective 2005/29/EC, Art. 7(4a)Search across products of different tradersMain ranking parameters and their relative importance
Paid rankingDirective 2005/29/EC, Annex I 11aAnyone with search resultsClear label on paid ads or paid placement in results
Personalized pricesDirective 2011/83/EU, Art. 6(1)(ea)Distance sellersTell the consumer when a price was personalized by automated decision-making
Trader statusDirective 2011/83/EU, Art. 6aOnline marketplacesWhether the seller is a trader, and who handles which contract obligations
FinesDirectives 93/13/EEC, 2005/29/EC and 2011/83/EUWidespread infringements in coordinated EU actionsMaximum fine of at least 4% of annual turnover, or at least EUR 2 million where turnover is unknown
Showing 8 of 8 rows
The prior price rule hits every seller of goods; the ranking and trader-status rules mostly hit marketplaces and platforms that list several sellers.

Article 6a in detail: what counts as the prior price

The Commission's guidance on Article 6a (2021/C 526/02) explains how the rule works in practice. The points that matter most for an online store:

  • Any announcement counts. "Sale", "special offer" and "Black Friday offers" are price reduction announcements even without a percentage, so the prior price must be shown for each product they cover.
  • Earlier promotions are included. The prior price is the lowest price in the 30 days, including any reduced price from an earlier promotion in that window.
  • The percentage must be calculated from the prior price. If the lowest price in the last 30 days was EUR 100 and the price just before the sale was EUR 160, "50% off" means EUR 50, not EUR 80. The Court of Justice confirmed this in case C-330/23 on 26 September 2024: a percentage or a promotional statement that highlights the advantage must be based on the prior price.
  • Each channel has its own prior price. If you sell at different prices in different shops, the prior price per channel is the lowest price you charged in that channel.
  • A general banner is fine. "20% off all coats" does not need the prior price on the banner itself, but each coat's product page or price tag does.
  • Not everything is a reduction. Ongoing loyalty programs, personal vouchers sent after a purchase and claims such as "lowest prices" fall outside Article 6a; they are judged under the Unfair Commercial Practices Directive. A discount code that is open to everyone, or to most customers, is a reduction and needs the prior price.
  • Goods only. Article 6a covers goods sold to consumers, not services or digital content, and it applies to the seller, not to a marketplace that only hosts the offer.

You may show other reference prices as well, such as "our regular price outside promotions was EUR 120", provided they are clearly explained and do not distract from the prior price. Comparisons with a recommended retail price are not reductions under Article 6a and need their own care; the MSRP guide covers that case.

Perishables, new arrivals and progressive reductions

Article 6a lets each Member State make three exceptions: different rules for goods that deteriorate or expire quickly, a shorter period for products on the market for less than 30 days, and for a reduction that is progressively increased (10%, then 20%, then 30% off), the price before the first step as the prior price throughout. Check your national law: the Netherlands uses all three, according to the Dutch regulator ACM.

Read the progressive exception narrowly. The Commission states that successive campaigns in one 30-day period, with Black Friday, Cyber Monday and Christmas sales as its examples, are not progressive reductions. If the price goes back up between campaigns, each new campaign uses the lowest price of the past 30 days, which includes the previous campaign's sale price. A product that returns after being out of stock or out of season is not a new arrival either.

Worked example: one coffee grinder from an October promotion to Cyber Monday

Take an illustrative burr grinder with a regular price of EUR 129. The timeline shows how its price history decides what you may print on Black Friday and Cyber Monday.

Illustrative price history: burr coffee grinder

  1. 1

    From September

    Regular price EUR 129

    The grinder sells at EUR 129 in the webshop.

  2. 2

    12 to 18 October

    Autumn promotion at EUR 109

    A one-week promotion, then the price returns to EUR 129 on 19 October.

  3. 3

    28 October to 26 November

    The 30-day look-back window

    The 30 days before a Black Friday reduction on 27 November. The October promotion falls outside it, so the lowest price in the window is EUR 129.

  4. 4

    27 November

    Black Friday at EUR 99

    Show EUR 99 with EUR 129 as the prior price: 23% off, calculated from EUR 129.

  5. 5

    28 November

    Back to EUR 129

    The Black Friday price ends after one day.

  6. 6

    30 November

    Cyber Monday at EUR 105

    The lowest price in the last 30 days is now EUR 99, so EUR 105 cannot be announced as a reduction at all.

Two variations change the outcome. If the autumn promotion had run from 2 to 8 November, it would sit inside the window: the prior price on Black Friday becomes EUR 109 and the reduction shrinks to 9%. And if you want a Cyber Monday deal, either keep the Black Friday price running and say it is an extension of the same campaign, or set a Cyber Monday price below EUR 99 and show EUR 99 as the prior price.

Before you choose discount depths, check what each one leaves you per order. The contribution margin guide works out what remains after payment fees, shipping and marketplace commission, and psychological pricing covers which price endings to use once the depth is set.

Price records to keep per product and per channel

The rule is easy to state and hard to apply without data, because you need to know the lowest price of every product in every channel on the day a campaign starts. Shops that fail usually have the current price and a manually typed "was" price, but no dated history. Work through this list before the campaign prices go in:

Price data to have in place before a reduction goes live

0 of 7 done0%

Strikethrough prices in Shopify, WooCommerce and Magento

Each platform shows a strikethrough by putting a higher reference price next to the current one. None of them calculates a 30-day lowest price by default, so the number you put in that field has to come from your price log:

  • Shopify: the Compare-at price is struck through, and it only shows when it is higher than Price. To comply, set compare-at to the 30-day lowest price, not to the original list price. Clear the field when the sale ends, and keep it consistent across variants: Shopify notes that a mix of 0.00, empty and different compare-at values stops collection pages from showing the product as on sale.
  • WooCommerce: the Regular price is struck through next to the Sale price, which can be scheduled with from and to dates. If the regular price is not the 30-day low because of a recent promotion, the struck price is wrong; show the correct prior price in the product page text and base the percentage on it, or wait until the earlier promotion is more than 30 days old.
  • Magento 2: the Special Price with Special Price From and To dates shows against the regular price. The same check applies: the regular price shown must be the lowest of the last 30 days.

sale_price in Google Shopping and prices on marketplaces

In a Google Shopping feed, `price` stays the full price, `sale_price` holds the lower price and `sale_price_effective_date` sets the window; without the date range the sale price applies immediately. The landing page has to show both prices and match the feed, or Merchant Center flags a mismatched price.

Google also runs its own check before it shows a strikethrough in Shopping results. According to its sale price annotation rules, in countries such as the Netherlands, Germany, France, Italy and Spain the base price must have been valid for 30 days within the past 200 days, and the discount must be more than 5% and less than 90%. Passing Google's check does not make a reduction compliant with Article 6a, and the reverse is not guaranteed either, so set the feed `price` to the same prior price your product page shows.

On marketplaces, you are the seller under Article 6a, not the platform. Your offer price history on each marketplace is its own channel, with its own 30-day low, and a reduction you announce on bol or Kaufland needs a prior price from that marketplace's history, not from your webshop.

Reviews, search rankings and personalized prices

The other Omnibus changes are less visible but apply to the same pages.

Showing how you check consumer reviews

If your product pages show reviews, you must say whether and how you make sure they come from people who bought or used the product. The directive's recitals add that consumers should learn how reviews are processed, for example whether all reviews, positive and negative, are published and whether any are sponsored. A short "How we handle reviews" note linked from the review block covers this. Calling reviews "verified" without reasonable checks, buying fake reviews or hiding negative ones is banned outright.

Ranking transparency and paid placement

Platforms that let consumers search products from different traders, such as marketplaces and comparison sites, must explain the main parameters that decide the ranking of search results and their relative importance, in a section reachable from the results page. Paid ads or paid placement in search results must be clearly labeled, for any trader that shows such results.

Personalized prices and marketplace trader status

If a price is personalized on the basis of automated decision-making, such as a profile of the shopper, the consumer must be told. Dynamic pricing that changes for everyone with demand is not personalization and does not need this notice. Marketplaces must also tell consumers whether the seller is a trader, based on the seller's own declaration, and that EU consumer rights do not apply when buying from a non-trader. The Digital Services Act guide covers the trader details marketplaces now collect.

Fines and enforcement: the 4% ceiling and fake-discount cases

For widespread infringements handled in a coordinated EU action under Regulation (EU) 2017/2394, the directive requires national fines with a maximum of at least 4% of the trader's annual turnover in the Member States concerned, or at least EUR 2 million where turnover figures are not available. That ceiling is written into the unfair contract terms, unfair commercial practices and consumer rights directives, not into the Price Indication Directive. For price indication breaches as such, Member States set effective, proportionate and dissuasive penalties themselves, and authorities can also treat a fake reduction as a misleading practice.

Enforcement is real. The Dutch ACM fined five webshops a total of EUR 621,000 for discounts calculated from the wrong "was" price, announced in June 2024. One example from the ACM: a product advertised "from EUR 699 for EUR 629" had sold for EUR 539 in a promotion within the previous 30 days. In a check before the 2025 holiday season, the ACM found misleading price indications at 18 of 24 large sellers and named Black Friday, Sinterklaas and Christmas as the periods it watches.

Sale prices and sale windows across channels in WISEPIM

WISEPIM stores a regular price and a special price with a start and end date per product, and the Set Special Price bulk action sets a fixed sale price or a percentage off for a selection, with a sale period. Channel pricing rules can then change prices per channel at export without touching the stored price. On export, the active sale price goes out in each platform's own format: Shopify gets the sale price as Price with the regular price as Compare-at price, WooCommerce gets the sale price with its from and to dates, Magento 2 the special price with its dates, and the Google Merchant Center connection and the Feed Hub Google Shopping feed send `sale_price` only while the sale window is active. Shopify has no sale dates of its own, so there the sale starts and ends with the first export after the window opens or closes.

Set Special Price applies a sale price and a sale window to a whole selection; the preview shows the struck-through regular price next to the sale price.

One limit matters for Omnibus: WISEPIM does not keep a price history or calculate a 30-day lowest price. The struck-through price it exports is the regular price (after channel rules), so it is only the legal prior price when that regular price has not been lower in the last 30 days. Take the 30-day low from your shop platform, ERP or a dated price log, and if it is lower than the regular price, adjust the regular price or the campaign before the sale starts. The Black Friday checklist puts this check into a four-week plan to 27 November.

Diego Nijboer

CTO and Co-Founder at WISEPIM, building AI-powered solutions that transform product data management for e-commerce businesses. Over 10 years of experience solving complex technical challenges in e-commerce and PIM systems.

Frequently asked questions

Still have questions?

Can't find the answer you're looking for? Please get in touch with our team.

Contact Support

Directive (EU) 2019/2161 was adopted on 27 November 2019. Member States had to adopt national rules by 28 November 2021 and apply them from 28 May 2022, so the 30-day prior price rule and the review, ranking and marketplace rules have applied across the EU since then. National enforcement start dates can differ; the Dutch ACM supervises the stricter rules since 1 January 2023.

No. Comparing your price with a recommended retail price is not a price reduction under Article 6a, according to the Commission guidance. It is still judged under the Unfair Commercial Practices Directive, so the RRP has to be real, clearly labeled as an RRP and not presented as your own earlier price, or the comparison can be misleading.

It depends on who can use them. A code available to all or most visitors, for example a code on a banner or in a newsletter to the whole list, counts as a price reduction announcement, and the products need their 30-day lowest prior price. A genuinely personal voucher, such as 20% off the next order after a purchase, falls outside Article 6a.

Article 6a sits in the Price Indication Directive, which protects consumers, so it covers prices offered to consumers. A purely B2B shop that only sells to business buyers is outside it. A mixed shop that also sells to consumers must apply the rule to the prices consumers see.

Yes. The Commission guidance allows extra reference prices if they are clearly explained and do not distract from the prior price, for example "EUR 80 instead of EUR 100, our lowest price in the last 30 days; regular price outside promotions EUR 120". Any percentage you show must still be calculated from the 30-day prior price.

Keep exploring

Hand-picked next steps to go deeper.

Better product data, better results.Get more sales.

4.7