Merchant Tools

Omnibus Price History, explained

Under the EU Omnibus Directive, every price reduction must display the lowest price charged during the 30 days before the sale — with fines for stores that don't. This app records your prices, computes that legal reference, and shows it on your product pages. It never changes a price.

The flash sale

You cut a price for the weekend. The law wants "Lowest price in the last 30 days: $7.90" under the sale badge — computed correctly, from real history.

The inspection

A consumer authority asks how your references were computed. You export the compliance report and hand it over.

The slip

Your sale price is above the legal reference — technically not a discount. The app flags it before a customer or regulator does.

Install, add the price line to your theme, and stay compliant: recording, computing, displaying and reporting run by themselves.

Step 1

Set up once, stay compliant

Add the Omnibus lowest price block to your product template in the theme editor (and the collection embed if you want the line on product cards too). The overview tells you when the line is live, flags promotions to check, and explains what happens for products with less than 30 days of history — the line shows the lowest price since recording began, with its date, and becomes a full 30-day value automatically.

The overview: block active on your theme, one promotion to review, and how partial history is handled.
Step 2

The legal line, on every sale

When a product goes on sale (compare-at price above the selling price), the block shows the reference under the price: the lowest price of the 30 days before the sale started, with its date. It only appears during promotions, follows the selected variant, and is rendered by your theme with zero network calls — it doesn't slow your pages down. Font, size and wording are adjustable in the theme editor.

The product page during a sale: the legal reference line, automatic and dated.
Step 3

Every variant, its price and its reference

The Prices page lists what is on sale: price, compare-at, since when, the computed Omnibus reference and the window it comes from. A red badge warns when the sale price is above the reference — information only, nothing is changed in your store; review the sale price or the compare-at and decide.

On-sale variants with their legal reference, and the warning that catches a non-discount.
Step 4

A compliance report for inspections

One line per promotion and per variant: dates, compare-at, sale price, the reference price in force and what changed. Pick a period, export the CSV, file it with your records — if an authority asks, this is what you show.

The compliance report: every promotion documented with its legal reference.
Step 5

Corrections that stay honest

A typo fixed within 24 hours, a test price, an unpublished product — you can exclude such a price point from the reference, with a reason, dated and logged; the exclusion shows in the compliance report and is reversible. What you can never do is type in a higher reference: the reference is always a price that was actually charged. Declaring a lower price charged elsewhere is always allowed.

The per-variant price history: every recorded point, what counts, and the honest exclusion flow.
Never touches your pricesThe app writes only its own metafields. Your prices, products and themes are read, never modified.
Always up to datePrices are re-recorded on every change (webhook) and re-checked every night.
Nothing slows the storefrontThe theme block reads metafields rendered by Liquid — no JavaScript calls, no external requests.
Auditable by designPrice points, exclusions and reasons are kept and dated; the report reflects exactly what was shown.
Under the hood

How the reference is computed

The app records a price point each time a variant's price actually changes, then computes the reference according to the Omnibus rule: the lowest price charged in the 30 days before the promotion started (the strict pre-promotion reading; a rolling-window mode is available in the settings). The result is written to metafields — merchant_tools.omnibus_* — which your theme reads directly.

V1 limits, stated plainly: references are computed in your store's currency (no per-market prices yet), and promotions applied by discount code or checkout scripts are not part of the displayed price, so they are not counted.