Build or Buy EU Omnibus Price-History Compliance on Shopify?
EU Omnibus price-history compliance is a BUILD on Shopify, because no app does it. The directive requires showing the lowest price charged in the prior 30 days beside any advertised markdown, and nothing on the App Store logs that history. A price-history log with a product-page disclosure runs $12,000 to $35,000 (Deploi estimate, illustrative).
Your profile — see how the verdict shifts
- Confidence
- High — Searched the App Store's Security and Legal, Finance, Pricing, Product Display, Internationalization and Promotions categories on 2026-09-03, reading over 120 listings verbatim across six category pages. Tried roughly a dozen direct listing handles covering Complimus and Omnibus name variants; none resolved. Two search-engine attempts were blocked by robots.txt. No listing offering price history, a lowest-30-day-price calculation or an Omnibus disclosure could be confirmed to exist, on or off the App Store. This is a negative finding from an exhaustive check rather than an untested assumption. On the platform side, Shopify added compare-at price management directly in Admin Catalogs with a strikethrough-pricing preview, replacing CSV and API edits, and that is general merchandising with no price history behind it. No Shopify changelog entry, help page or developer page mentioning Omnibus by name could be found.
- Reference scenario
- $20M–$100M GMV · four to eight EU markets with their own price lists · eight or more promotional periods a year · scheduled discounts and seasonal markdowns · agency dev bench
- As of
- September 2026
Decision at a Glance
| Your profile | Verdict | Why |
|---|---|---|
| No EU market active | WAIT | No EU sales means no disclosure obligation and nothing to log. Start the price log the quarter before an EU market opens, because the window is retrospective and you cannot backfill a history you never recorded. |
| One EU market, occasional markdowns | BUILD | One market and a handful of sales a year is where a manual record still just about works. Log the changes automatically anyway, because the cost of the log is small and the cost of reconstructing one is not. |
| Multiple EU markets with their own price lists | BUILD | The minimum is per market and per currency, so one global number is wrong everywhere. This is the band where a spreadsheet quietly stops being accurate and nobody notices until someone checks. |
| Continuous promotional calendar or flash sales | BUILD | A rolling window plus frequent price moves means the disclosed figure changes daily. Computing it at render time is the only version that stays correct, and a stamped value goes stale within a week. |
What EU Omnibus price-history compliance Actually Drives
| Outcome | Impact | How it works |
|---|---|---|
| Operational efficiency | High | An automatic log removes a manual export and reconciliation from every promotional period in every market, which is where the current process consumes days and still produces doubt. |
| Revenue — direct | Medium | A markdown that cannot be evidenced has to be pulled or repriced mid-campaign, and pulling a promotion in an active EU market costs the whole period's uplift. |
| Customer experience | Medium | A visible prior-price line is what a shopper uses to judge whether a sale is real, and a disclosure computed from actual history reads as credible rather than decorative. |
| Data & insight | Medium | A complete price history per market feeds margin analysis, elasticity work and markdown-cadence review, none of which any native Shopify report can answer today. |
Spend ceiling: Size the spend to your EU promotional volume and your legal exposure, not to the feature. A brand running eight promotional periods a year across five EU markets makes this disclosure decision hundreds of times, and a $12,000 log (Deploi estimate, illustrative) removes the judgment call from every one of them.
What buying enables (top apps)
- + Compare-at prices managed directly in Admin Catalogs with a strikethrough preview of what customers see, instead of CSV or API edits
- + Scheduled discounts and automatic promotions that start and stop on time without anyone editing a price on the day
- + Market-specific price lists, so the price a shopper sees in each EU market is already modeled inside Shopify
What building additionally unlocks
- + An append-only record of every price and compare-at change, per variant and per market, which Shopify keeps nowhere
- + The rolling 30-day minimum computed at render time, so the figure is correct on the day rather than correct when someone last checked
- + The disclosure rendered everywhere a markdown appears, including collection cards and campaign landing pages, not just the product template
- + A price-history dataset that answers margin, elasticity and markdown-cadence questions no native report reaches
Find Your Verdict in 3 Questions
Do you advertise reduced prices to customers in any EU market?
Yes: Go to question 2.
No: Your verdict: WAIT — no disclosure obligation applies today; start the price log the quarter before an EU market opens.
Can you produce, for any variant, the lowest price you charged in a given EU market over the last 30 days?
Yes: Go to question 3.
No: Your verdict: BUILD — start logging price changes this week, because the window is retrospective and a missing history cannot be backfilled.
Do your EU markets run separate price lists or currencies?
Yes: Your verdict: BUILD — the minimum is per market, so compute and render it per market ($12,000–$35,000, Deploi estimate, illustrative).
No: Your verdict: BUILD — a single-market log plus an on-page disclosure is the smaller version of the same build.
The TCC Scorecard — 12 Dimensions
TCC — Total Cost of Capability: what it actually costs to have this capability over three years, whichever way you get it. Each dimension is scored 0–5 for both paths. How we score →
| Dimension | Buy | Build | Why |
|---|---|---|---|
| Cost | |||
| Acquisition & implementation | Nothing installs, because no listing could be confirmed to exist; the price log, window calculation and disclosure run an estimated 4–8 weeks (Deploi estimate, illustrative). | ||
| Recurring fees | The manual substitute costs staff hours every promotional period across every market, while an append-only log costs storage measured in megabytes. | ||
| Maintenance & upgrades | A spreadsheet needs a person each cycle; the log needs attention when markets, price lists or theme templates change. | ||
| Switching & exit | A manual record lives wherever someone left it, and an append-only price table is your own data that ports intact to any future stack. | ||
| Risk | |||
| Vendor risk | The risk here is absence rather than instability: no vendor sells this, so there is nothing to depend on and nothing to be let down by. | ||
| Security & compliance surface | This dimension is the whole point: an automatic, timestamped record is evidence, and a spreadsheet assembled after the fact is a reconstruction. | ||
| Platform-deprecation exposure | Product and variant webhooks plus market price lists are first-class primitives, and a subscription pinned to one API version needs moving inside Shopify's 12-month support window. | ||
| Value | |||
| Fit to requirement | Compare-at price shows a strikethrough and keeps no history, so the nearest native feature displays a markdown without evidencing one. | ||
| Time to market | A manual process starts tomorrow and a build takes a quarter, and neither can produce the prior 30 days if logging has not already begun. | ||
| Performance & scale | Price changes are rare next to pageviews, so a cached rolling minimum per variant per market adds nothing measurable to render time. | ||
| Data ownership & AI-readiness | A complete price history per market answers margin, elasticity and markdown-cadence questions that no native Shopify report can reach today. | ||
| Focus & opportunity cost | Nobody wants to build compliance plumbing, and the alternative is a legal exposure that scales with every promotion you run in the EU. | ||
The App Landscape
| App | Status | Pricing | Best for |
|---|---|---|---|
| Shopify compare-at price in Catalogs | Native — First-party Shopify. Compare-at prices can be managed directly in Admin Catalogs instead of through CSV or API edits, with a strikethrough-pricing preview of what customers would see. Compare-at is a single display field with no history behind it, so overwriting it erases the previous value. No Shopify changelog entry, help page or developer page mentioning Omnibus by name could be found. | Included on every Shopify plan (verified Sep 2026) | Showing a markdown cleanly, which is the display half and none of the evidence half |
| Discount, sale and promotion apps | Category — The nearest App Store category, and not a match. These listings schedule markdowns, run countdowns and apply automatic discounts, and every one checked writes the new price without recording what the old one was or for how long it stood. Scheduling a sale and evidencing a sale are different problems, and the category solves only the first. | Monthly subscriptions vary by listing; confirm on the current listing before comparing | Running the promotion itself, once something else can prove what the price was before it |
| Legal and compliance apps | Category — The category a merchant searches next, and also not a match. These listings cover cookie consent, policy generators, privacy request handling and accessibility widgets. Across six category pages and over 120 listings read verbatim, none touched price display or price history, and roughly a dozen direct handles for Omnibus and Complimus name variants returned nothing. | Monthly subscriptions vary by listing; confirm on the current listing before comparing | Consent, policies and privacy requests, which is a different compliance surface entirely |
| Price-history log with prior-price disclosure (custom) | Build lane — The capability nobody sells: product and variant update webhooks writing every price and compare-at change to an append-only table stamped with time and market, a rolling window that returns the lowest price actually charged in that market over the prior 30 days, and the disclosure rendered wherever a markdown appears. | $12,000–$35,000 one-time plus upkeep (Deploi estimate, illustrative) | Any merchant advertising markdowns into EU markets, where the disclosure has to be right on the day rather than at audit time |
The Build Path
- Log every price change, not only the markdowns: Subscribe to product and variant update webhooks and write each price and compare-at price change to an append-only table with a timestamp and the market it applied to. Per market and per currency, because market price lists move independently. Start logging before you need the disclosure: the window looks backwards, and a history nobody recorded cannot be reconstructed afterwards.
- Compute the rolling minimum at render time: A function that returns the lowest price actually charged in that market over the prior 30 days, cached per variant per market and invalidated on any price write. Computing it live is what keeps the figure correct on a continuous promotional calendar. A value stamped when a sale started is already wrong a week later.
- Render the disclosure wherever the markdown is advertised: The obligation follows the advertised reduction, so the prior-price line belongs on collection cards, campaign landing pages and promotional emails as well as the product template. Scope this deliberately with counsel, because national implementations differ and the wording that satisfies one market may not satisfy the next.
- Effort band
- $12,000–$35,000 for the price log, rolling window, caching and multi-surface disclosure — Deploi estimate (illustrative); lands in the $25–75K contact-form band at the top end
- Typical timeline
- 4–8 weeks, and start the logging half immediately since the window is retrospective (Deploi estimate, illustrative)
- Maintenance, honestly
- ~15–20% of build cost per year (Deploi estimate): roughly $1,800–$7,000/yr (Deploi estimate, illustrative) covering new markets and price lists, theme template changes, and moving webhook subscriptions forward before an API version sunsets on Shopify's 12-month support window.
- What you own — and what you take on
- You own: a timestamped record of every price you charged in every market, the computed minimum, and the disclosure itself. You take on: keeping the disclosure aligned with each market's national implementation, which is a legal review rather than an engineering one.
3-Year Total Cost of Capability
| Buy (app path) | Build (custom path) | |
|---|---|---|
| Year 0 (setup) | $0–$1,000 (spreadsheet process and a written policy, Deploi estimate, illustrative) | $12,000–$35,000 |
| Years 1–3 (recurring) | $5,400–$21,600 in staff time per promotional period (Deploi estimate, illustrative) | $5,400–$21,000 (upkeep) |
| 3-year total | ≈$5,400–$22,600, and still no automated disclosure on the page | ≈$17,400–$56,000 |
- † All figures illustrative samples for the reference scenario — not quotes, not verified pricing.
- † Buy column is the manual substitute, because no product could be confirmed to exist: someone exporting price changes into a spreadsheet each promotional period across every EU market. It produces a record and not an automated disclosure.
- † Build column: append-only price log from webhooks, rolling 30-day minimum with caching, and the disclosure rendered on product, collection and campaign surfaces; three-year horizon.
What the Sticker Price Hides
On the buy path
- — Over 120 listings across six category pages were read verbatim and roughly a dozen direct handles were tried; no price-history or lowest-30-day-price product could be confirmed to exist (verified Sep 2026)
- — No Shopify changelog entry, help page or developer page mentions Omnibus by name, so there is no announced native feature to wait for (verified Sep 2026)
- — Compare-at price is a display field rather than a history, and overwriting it destroys the only trace of the previous price
- — A manual record across several markets and eight promotional periods a year is a real job that usually has not been assigned to anyone
On the build path
- — The minimum is per market and per currency, so one global figure is wrong in every market that runs its own price list
- — The window rolls, which means the disclosed number changes daily and has to be computed at render time rather than stamped at sale launch
- — The obligation follows the advertised markdown, so collection cards, campaign pages and emails need the disclosure too, not just the product template
- — ~$1,800–$7,000/yr upkeep as markets, price lists and templates change (Deploi estimate, illustrative)
What Merchants Say
Ecommerce leads describe the same scramble before an EU sale: somebody exports price changes into a spreadsheet, and nobody is confident the export covered every market and every variant.
The recurring question in EU merchant threads is which app handles the 30-day lowest price, and the recurring answer is that the person asking could not find one either.
If You Change Your Mind Later
If you bought and outgrow it
There is nothing to exit, because there is nothing to install. A spreadsheet process leaves behind whatever the last person maintaining it happened to save, usually in a format nobody else can reconcile against the actual store. The real cost of staying on this lane is that after two years of promotions you still cannot show what a product cost on a given day in a given market.
If you built and want out
Nothing strands. The price history is an append-only table you own, and it becomes more valuable the longer it runs, because a record of what you charged in every market is the input to margin analysis and elasticity work as well as compliance. If an app ever appears, your log is the seed data it would need and could not generate.
When This Answer Changes
We're watching for:
- ▸ An EU Omnibus or lowest-30-day-price listing appearing on the App Store; none could be confirmed across six category pages and a dozen direct handles in September 2026
- ▸ Shopify adding price-change history to the product record, or naming Omnibus anywhere in its help or developer documentation
- ▸ A national implementation in a market you sell into changing the reference window or the required disclosure wording
Verdict change log:
No changes since first publication (September 2026).
Common Questions
Is there a Shopify app for EU Omnibus price-history compliance?
No Shopify app for EU Omnibus price-history compliance could be confirmed to exist. A September 2026 check read over 120 listings verbatim across six category pages covering Security and Legal, Finance, Pricing, Product Display, Internationalization and Promotions. Roughly a dozen direct listing handles for Complimus and Omnibus name variants were tried, and none resolved. Nothing on or off the App Store logs a rolling 30-day price minimum.
Does Shopify track price history for a product?
Shopify does not track price history for a product. Compare-at price is a single display field, and overwriting it erases the only trace of what the price used to be. Shopify added compare-at price management inside Admin Catalogs with a strikethrough preview, replacing CSV and API edits, and it stores no history (verified Sep 2026). No Shopify changelog, help page or developer page mentions Omnibus by name.
What does building Omnibus price-history compliance involve?
Building Omnibus price-history compliance involves three parts. Product and variant update webhooks write every price and compare-at price change to an append-only table, stamped with the timestamp and the market. A rolling window function returns the lowest price actually charged in that market over the prior 30 days. The disclosure then renders wherever a markdown appears, not only on the product page. Expect $12,000 to $35,000 (Deploi estimate, illustrative).
Your Next Steps
If you're going with BUILD(matches your selected profile)
- Turn on product and variant update webhooks and start writing an append-only price table today, before scoping anything else
- Stamp every row with market and currency, since the minimum is calculated per market rather than globally
- Build the rolling 30-day minimum as a cached function invalidated on any price write, not a value stamped at sale launch
- Inventory every surface where you advertise a reduction: product page, collection cards, campaign pages, email
- Take the disclosure wording to counsel per market, because national implementations differ and the engineering is the easy half
If you're going with WAIT
- Confirm which markets you actually sell into today, and which are planned for the next four quarters
- Start the append-only price log anyway, since it costs little and cannot be created retrospectively
- Keep an export of price changes per promotional period as an interim record with a named owner
- Set a review trigger on the first EU market launch or the first scheduled markdown in an EU market
- Re-check the App Store annually; nothing serving this could be confirmed across six category pages in September 2026
Official Docs & Sources
- Shopify changelog — Shopify
- Product pricing — Shopify Help Center
- Webhooks (Shopify dev) — shopify.dev
Official documentation linked for verification — our verdicts and estimates are our own.
Related Decisions
Build or Buy Accessibility Regression Monitoring on Shopify?
AudioEye's Shopify listing is delisted and UserWay sits at 2.6★ on 10 reviews, so catching a theme-update regression is a pipeline job.
Build or Buy ADA Litigation Exposure Management on Shopify?
Shopify tests Dawn, Checkout and Admin, not your storefront. A widget is not the answer to a demand letter; a code-level audit, remediation and a dated log are.
Build or Buy a Checkout Terms Consent Checkbox on Shopify?
Shopify ships no native terms-of-service consent checkbox at checkout, so this is one of the few decisions here that is a clean, cheap buy.
Build or Buy Counterfeit and Impersonation Monitoring on Shopify?
One Shopify app scans for copycat stores (StoreLock, 9 reviews); Red Points is quote-only. Neither enforces. Build the evidence ledger, intake and seller directory.
Shopify Theme Sections: Buy Premium or Build a Section Library?
A custom theme section library wins at mid-market campaign tempo; below the floor, a premium theme is the right call.
Start logging prices before you need the last 30 days
The window looks backwards, and no app on the store keeps that history for you. We wire product and variant webhooks into an append-only price log per market, compute the rolling minimum at render time, and put the disclosure on every surface where you advertise a markdown.
Contact us todayVerdict scored for the reference scenario above. Estimates are not quotes; app pricing carries its verification date and gets re-verified quarterly. Full scoring anchors: see the TCC methodology.
Read how we score these decisions (the TCC Framework). No affiliate links, no paid placement — no app vendor pays to appear here.