StoreFleet
HomeBlog › Omnibus Directive & Price Display on Shopify: The 30-Day Rule

Omnibus Directive & Price Display on Shopify: The 30-Day Rule

How the Omnibus directive price display Shopify rules work in practice: the 30-day lowest-price requirement, review authenticity, ranking transparency, and fixing your theme.

Updated 2026-07-07

If you sell to EU customers from a Shopify store, every "was €49, now €29" badge on your product pages is a regulated statement. Since 2022, EU law dictates exactly which prior price you're allowed to show when you announce a discount—and most Shopify themes, left in their default configuration, get it wrong. This guide walks through what the Omnibus Directive actually requires, where Shopify's compare-at price mechanics clash with it, and how to fix your price display once and roll that fix across every store you run.

What the Omnibus Directive Is and When It Took Effect

The "Omnibus Directive" is the informal name for Directive (EU) 2019/2161, formally the directive on better enforcement and modernisation of EU consumer protection rules. Rather than creating a brand-new law, it amends four existing consumer directives at once—hence "omnibus." For online merchants, the three changes that matter most are:

  1. Price-reduction rules, added to the Price Indication Directive (Directive 98/6/EC) as a new Article 6a.
  2. Review authenticity duties, added to the Unfair Commercial Practices Directive.
  3. Ranking transparency duties, also via the Unfair Commercial Practices Directive.

Member states had to apply these rules from 28 May 2022, so they have been live for several years now. Enforcement happens at the national level—each EU country's consumer authority polices its own market—but the Omnibus Directive requires member states to make fines available of at least 4% of a trader's annual turnover in the relevant member states for widespread infringements handled under coordinated EU enforcement. Whether you're based in the EU or selling into it from Vietnam or the US, the rules apply to your EU-facing offers. For the broader regulatory picture, see our EU compliance checklist for Shopify merchants.

The 30-Day Lowest-Price Rule: Doing "Was €X" Right

Article 6a is the piece that touches your product pages directly. Whenever you announce a price reduction, you must indicate the prior price, defined as the lowest price you applied during a period of at least 30 days before the reduction. The European Commission has published detailed guidance on interpreting Article 6a that walks through the edge cases.

The practical consequences catch many merchants off guard:

Member states were allowed some national variations (for example, for perishable goods or gradual reductions), so check the rules of the specific countries you target.

The rule also has case law behind it now: in its ruling of 26 September 2024 (Case C-330/23, Aldi Süd), the Court of Justice of the EU confirmed that a discount percentage or "price highlight" must be calculated against the 30-day lowest price itself—not merely displayed next to it. Showing "−50%" computed from an inflated reference price while the 30-day low sits in the fine print is exactly what the ruling forbids.

Review Authenticity: No Fake Reviews, Honest Verification Claims

The Omnibus Directive also amended the Unfair Commercial Practices Directive to target fake social proof. Two duties matter for Shopify merchants:

If you use a third-party review app across your stores, audit its settings: some apps import "seed" reviews or filter by rating by default, which can put you on the wrong side of these rules.

Ranking Transparency: Disclose How Results Are Sorted

If your storefront lets shoppers search products, the Omnibus Directive requires you to disclose the main parameters determining the ranking of results and their relative importance. For a typical Shopify store this means a short, accessible explanation—often linked near search results or in your help pages—covering things like relevance, sales volume, or manual curation. Crucially, if any placement is paid (a supplier pays you for prominence, or you boost sponsored items), that must be clearly disclosed. Most merchants can satisfy this with one honest paragraph; the violation is silence, not complexity.

Fixing Omnibus Directive Price Display in a Shopify Theme

Here is where the law meets Liquid. Shopify's native discount mechanic is the compare-at price: you set compare_at_price above price, and your theme renders a strikethrough "was" price and a sale badge (see Shopify's product pricing docs). The problem: Shopify does not track your 30-day price history, and the theme blindly displays whatever compare-at value you typed. Nothing stops you—or a careless VA running a flash sale—from showing a "was" price that was never your 30-day low.

A robust theme-level fix looks like this:

  1. Store the 30-day lowest price per variant in a metafield (for example pricing.lowest_30d), maintained from your price-change history.
  2. Add a Liquid snippet that reads that metafield on product, collection, and quick-view templates and renders the legally required line—"Lowest price in the last 30 days: €X"—whenever a reduction is displayed via compare_at_price or a discount.
  3. Guard the sale badge: if the metafield is missing or the compare-at price exceeds the recorded 30-day low, the snippet can fall back to showing the true prior price instead of the inflated one.

This is a few hundred lines of Liquid plus a price-history process—not a huge build, but one that must be wired into every template where a discount can appear.

Rolling One Omnibus Directive Price Display Fix Across Many Shopify Stores

If you run one store, you patch one theme and move on. If you run ten EU-facing stores, the app-store route means installing a price-compliance app on each store and paying a separate monthly subscription per store, forever—the same per-store cost spiral we broke down in the real cost of EU compliance across multiple Shopify stores.

The StoreFleet approach treats this as what it actually is: a one-time development task. You hire the build once, and you get one Liquid snippet implementing the 30-day prior-price display—built once, then deployed into every store's theme. Because it's plain Liquid living in themes you control, you own the source code: no recurring per-store fee, no app that breaks your price display if a subscription lapses, and any future tweak (new locale, new template, national variation) is an edit you or any developer can make. Across a fleet of stores, replacing several per-store monthly subscriptions with one owned snippet is usually the single easiest line item to cut—the same logic as reducing your Shopify app costs elsewhere in your stack.

Common Mistakes That Trigger Complaints

A few patterns show up again and again in national enforcement actions and consumer-group sweeps:

Getting the 30-day rule right is ultimately a price-display logic problem, and price-display logic is exactly the kind of thing you should fix once, correctly, everywhere.

If you'd like to see how a single owned price-display snippet—plus centralized monitoring across your whole fleet—would work on your actual setup, schedule a free 1-on-1 demo on your own Shopify stores. StoreFleet's team can walk through your themes, flag where your current discount display falls short of the 30-day rule, and show what a build-once deployment looks like in practice.

This article is for general information only and is not legal advice. Verify requirements with official EU sources or a qualified advisor.

Run dozens of Shopify stores from one dashboard

Message us on Discord — the AI agent and the team reply right in chat — or email us. Free demo on your own Shopify store, no account needed.