For the complete documentation index, see llms.txt. This page is also available as Markdown.

Changelog

New updates and improvements

Monitoring counts now show your full catalog

On stores with more than 10,000 products or variants, the Products monitored and Variants monitored numbers stopped at 10,000. This was a display limit only — every product and variant was already being tracked. The counts now show your real totals.

Price List Tracking (Beta): catalog and price list prices in your price history

If you set market prices through catalogs and price lists (for example a Standard, Competitive and Promotion list per market), those prices never reached your price history, because they don't change the product's own price. The storefront could then show a "lowest price in the last 30 days" above the price you were actually selling at.

Turn on Price List Tracking under Omnibus Lowest Price → Settings. Every 3 hours, Omnibus Owl checks the price Shopify charges in each market (the lowest across that market's catalogs) and records it whenever it changes. The first check runs as soon as you turn it on.

Details: Price List Tracking.

Order access is now asked for only when you use the Withdrawal Button

Omnibus Owl no longer asks for access to your orders when you install it. The Withdrawal Button is the only feature that works with orders, so the Withdrawals tab now shows a banner asking you to Grant access when you're ready to use it. Stores that already granted access don't need to do anything.

Details: Withdrawal Button permissions.

GARAN durability label for products with a producer's guarantee

Directive (EU) 2024/825 also requires the EU harmonised GARAN label on products whose producer offers a free commercial guarantee of durability of more than two years. Green Transition now covers it:

  • Products tab: every active product with its guarantee years, producer and terms link. Edit a product, or select several and Set durability guarantee in bulk; products with a guarantee under 3 years are flagged, because the label may not be shown for them.

  • GARAN Durability Label theme block for product pages: the Commission's nested "XX GARAN" mark with the number of years, expanding to the full label with brand, model identifier and years filled in — official artwork, untouched.

  • GARAN Label (cart) theme block: keeps the mark next to qualifying items in the cart.

  • Order confirmation email: a Liquid snippet in Settings (with a Copy button) that prints each item's guarantee and a link to the legal guarantee notice page.

  • Legal Guarantee (inline) theme block: the notice rendered directly in any template, for stores that want it visible rather than behind the footer link.

  • Legal Guarantee (link) theme block: a compact shield-and-text link for the cart or product page — a merchant's suggestion — that opens the notice, so it can sit right next to the GARAN cart block.

Guarantee data lives in pinned product metafields (omnibus_owl.durability_guarantee_*) on your store, editable from the product page too.

Details: Green Transition.

From 27 September 2026, Directive (EU) 2024/825 requires every shop selling to EU consumers to show the EU harmonised notice on the 2-year legal guarantee of conformity — a fixed design and wording laid down by the European Commission — prominently on the website.

The new Green Transition page in the app menu covers it:

  • Legal Guarantee Notice app embed: adds a "Legal guarantee" link to the footer of every page that opens the Commission's official notice in the shopper's language — all 24 EU languages are included, unedited — either in a dialog or on a notice page at /apps/omnibus/legal-guarantee on your own domain, with a link to the EU's Your Europe guarantees page.

  • Dashboard: the On / Off switch, the countdown to 27 September, the theme install check, and a table showing which official notice version each of your storefront languages gets.

  • Settings: whether the link opens a dialog or the notice page, and whether to show the Your Europe link.

  • Languages: the link label, dialog title and notice-page texts per storefront language, with defaults in all 24 EU languages and Norwegian.

  • Home page and installation guide: the countdown card is now the feature's card, and the installation guide has a Green Transition tile with the setup steps.

Coming next: the GARAN durability label with a Products tab to manage guarantee years per product, and an advisory green-claims check of your product copy.

Also in this release: the Legal Guarantee Notice and Withdrawal Button app embeds now explain, in their theme-editor settings, how to use a link in your own footer menu instead of the injected footer link — add a menu item pointing to /apps/omnibus/legal-guarantee or /apps/omnibus/withdraw in Online Store → Navigation. In the installation guide, steps that take you to another page of the app (manufacturers, product assignment, refund policy, languages, GARAN products) now open in a new tab and are ticked once opened, so the guide keeps its place. The App Blocks Status card marks optional theme blocks and says when the GARAN block is needed.

Details: Green Transition.

Anchored price (sidrena cijena) for stores selling to Croatia

From 1 October 2026, traders selling to consumers in Croatia must show, next to every current price, the regular price the product had on 10 September 2026 — the sidrena cijena introduced by Narodne novine 101/2026. It applies to all products, discounted or not.

Omnibus Owl can now display it. The feature is off by default — it is a Croatian requirement, not part of the EU Omnibus Directive, so nothing changes unless you switch it on:

  • Settings → Anchored price (Croatia): enable it and confirm the reference date. On save, Omnibus Owl fills every variant's anchored price from its price history — the regular price on the reference date, or the first listing price (with its date) for products added later — and reports how many variants still need a value.

  • Anchored Price theme block: appears in the theme editor once the feature is on and shows a line such as Sidrena cijena (10.09.2026): 45,00 € on every product, in the shopper's market currency, updating on variant switch.

  • Dashboard: an Anchored Price column plus Set, Recalculate from history and Clear actions for selected variants.

  • Import & export: export every variant's anchored price (blank for those still missing one), fill the blanks, import the file back.

  • Languages: an editable anchored price label per language, with {{ anchored_price }}, {{ anchored_price_with_currency }} and {{ anchored_price_date }} placeholders.

The daily machine-readable price list the same decision requires is not covered. Details: Anchored price (Croatia).

Lowest price widget: default label now matches your theme's price format

Most themes show product prices with a currency symbol — 50,00 zł, 799,00 Kč — while our default widget label used the currency-code format — 50,00 PLN, 849,00 CZK. Both are valid, but side by side they looked inconsistent.

On new installs, Omnibus Owl now looks at your published theme when it creates the default label. If the theme shows currency codes next to prices (the Show currency codes setting in Dawn- and Horizon-family themes), the label uses {{ lowest_price_with_currency }}; otherwise — or when the theme doesn't tell us — it uses {{ lowest_price }}, the same Shopify money format most themes use for the product price.

Already using Omnibus Owl? We never overwrite your saved texts, so your label is unchanged. To switch, open the Languages tab on the Omnibus Lowest Price page and replace {{ lowest_price_with_currency }} with {{ lowest_price }} in each language. See Placeholders for what each one displays.

Lowest price widget: identical result after switching variant

The lowest-price line is rendered once when the product page loads, and again in the browser whenever a shopper switches variant. In a few situations the second rendering could differ from the first:

  • Currency format — on stores selling in several currencies, the refreshed line could use your base currency's format (for example 34,00 Kč instead of €34,00). It now always uses the format of the currency the shopper is browsing in.

  • Reference price — the price that was in effect at the start of the 30-day window is a valid prior price under the Omnibus Directive. The page-load rendering already considered it; the refreshed line only did so when there were no price changes inside the window, so it could show a higher "lowest price". Both now apply the same rule.

  • Date — the refreshed line used the shopper's browser timezone, so the date could be a day off for shoppers abroad. It now uses your store's timezone, like the page-load rendering.

Nothing to change on your side. We also documented the label placeholders — {{ lowest_price }}, {{ lowest_price_with_currency }} and {{ lowest_price_date }} — and where their formats come from: see Placeholders.

Withdrawal Button: translations for languages with a region code

Stores whose storefront language carries a region code — such as Slovenian (sl-SI), pt-BR, pt-PT or zh-CN — saw the first step of the withdrawal form in their language, but everything after the customer pressed Continue fell back to English: error messages, the review step, the receipt page and the acknowledgment email.

Every step now uses the texts you saved on the Languages tab for that language. Statements submitted before this fix also show their receipt, and any resent acknowledgment email, in the correct language. Nothing to change on your side.

Bulk price history: import & export by CSV

Editing price history one variant at a time doesn't scale to a large catalog — so the Omnibus Lowest Price page has a new Import & export tab that works on your whole catalog at once, across every market.

  • Export everything — one click generates a CSV of every variant's price history: one row per variant, entry date, and country, with product titles and SKUs so the file is easy to work with in a spreadsheet. Files stay downloadable for 7 days. An empty template is available too.

  • Edit in your spreadsheet, import back — upload the CSV and Omnibus Owl first shows a validation preview: how many variants and entries would be written, and every problem row with its line number and a plain-language reason. Nothing is imported until you've seen the preview and explicitly confirmed.

  • Replace, with a safety net — importing replaces the history of the variants in your file (variants not in the file are untouched). Before writing anything, the current history of every affected variant is backed up automatically, downloadable for 7 days. The confirmation step spells out both this and your responsibility for imported prices under the Omnibus Directive.

  • Multi-market aware — each row can target one country, or leave the country empty to apply a price to all your markets. Mismatched currencies and countries outside your markets are flagged as warnings.

  • A report you can keep — every import ends with a report: variants replaced, entries written, rows skipped and why, with the backup and problem-row downloads. It stays on the tab until your next import.

Perfect for seeding correct 30-day history right after installing, fixing entries after a mispriced sale, or setting market-specific historical prices in bulk. Bulk import & export in the docs describes the CSV format in full.

Withdrawal Button: acknowledgment emails

The Consumer Rights Directive (Article 11a(4)) requires you to acknowledge receipt of every withdrawal statement on a durable medium, with the statement's content and the date and time it was submitted. Omnibus Owl now sends that acknowledgment by email, automatically, the moment the customer confirms — in the language they used on your storefront. Nothing to switch on.

  • What the customer gets — one clear email with your store logo (from Shopify Settings → Brand) or store name, a coloured top border, a heading and greeting, and a statement block generated from the statement: the statement text, the items with quantities and prices, order number, ordered and received dates, the customer's name, the confirmation address, the reference number and the date and time of submission. This block can't be edited or removed — it is what makes the email a valid acknowledgment. Below it: what happens next, a closing and signature, your contact email, and a footer with your store name, address and a legal line.

  • Edit the texts per language — the Languages tab has a new Acknowledgment email group: subject, heading, greeting and introduction, the title above the statement block, what happens next, closing and signature, and the legal line. Use {{date}}, {{time}}, {{reference}}, {{name}}, {{order}} and {{shop}} as placeholders. All EU languages ship ready to use; other languages start from English.

  • Email settings — a new Acknowledgment email card on the Settings tab: Sender name (defaults to your store name — emails go out from Omnibus Owl's verified address with your name as sender, so no DNS setup is needed), Reply-to address (defaults to your store contact email), Show my store logo, Accent colour, and Notify me of every statement, which emails you a short summary with a link whenever a statement comes in, to an address of your choice. Preview email shows the result, Send test to me delivers it to your notification address, and a link takes you straight to the texts.

  • Delivery you can prove — the Withdrawals list now shows each acknowledgment as Sent, Pending or Not delivered. Bounced addresses are detected and marked Not delivered, so you know to reach the customer another way. In the statement details, a new Acknowledgment email card lets you View email — the copy exactly as it was sent, kept with the statement as evidence — and Resend it. The delivery status is also recorded in the read-only Withdrawal statement metafield on the order.

  • Statements from before this update — they show Send now in the statement details, so you can acknowledge them by email with one click. The same button appears if a send ever fails.

On first open after the update, Shopify asks you to approve one more permission — reading your store's brand assets — so the email can use the logo you set under Settings → Brand.

Not included: sending from your own email domain. Acknowledgments come from Omnibus Owl's address with your store name and your reply-to, which keeps them out of spam folders without any configuration.

Also in this release

  • When a free trial ends, the withdrawal link and page and the Product Safety block are now hidden on the storefront together with the lowest-price widget, and switched back on the moment you choose a plan. The home page shows a notice while features are hidden, and the feature cards say Hidden · trial ended.

  • The withdrawal page now guards against automated submissions (rate limits per email address, IP and store, plus duplicate detection), and refreshing the receipt page no longer creates a second statement.

  • Every feature page now has the same App Blocks Status card — theme picker, Installed / Not Installed per app embed or block, an Install link that opens the theme editor with the right block ready to add, and an Installation guide link. It replaces the separate storefront cards on the Product Safety and Withdrawal Button pages.

New: Withdrawal Button

Since 19 June 2026, every shop selling to EU consumers online has to offer a withdrawal function: a prominent "withdraw from contract here" entry point that stays available throughout the 14-day withdrawal period, an online statement where the customer gives their name, order and email, a separate "confirm withdrawal" step, and an acknowledgment of receipt showing what was submitted and when. No reason may be required, and your refund policy has to say the function exists and where it is. Omnibus Owl now provides it.

Withdrawal Button is a new page in the app menu, between Omnibus Lowest Price and Product Safety (GPSR), with three tabs:

  • Withdrawals — the on/off switch, your withdrawal page's address and whether the theme embed is installed; what's awaiting your action (new statements, accepted-but-not-refunded with the 14-day refund deadline, unmatched statements); a 30-day summary; and the list of every statement with search, filters and CSV export. Open a statement to see it as submitted, the matched order with its withdrawal period and refund due date, a timeline, and the actions: Accept (optionally creating a return request in Shopify, or cancelling and restocking an unfulfilled order), Decline with a note, and Mark as refunded. Refunds themselves stay in Shopify, as today.

  • Settings — whether to match statements to orders, whether customers can withdraw single items, whether to ask for an (always optional) reason, what to do after you accept, the order tag, and a ready-to-copy paragraph for your refund policy.

  • Languages — the two statutory labels and every text of the withdrawal page, per storefront language. All EU languages ship with the wording prescribed by law; other languages start from English and are marked Verify wording until you check them.

On the storefront, a new Withdrawal Button app embed adds the "Withdraw from contract here" link to your footer and, if you like, a floating button. Both open a two-step withdrawal page on your own domain that needs no login: the customer enters their name, order number and email, reviews the order's items and confirms. They get an on-screen receipt with a reference number and the date and time of submission, and the order is tagged. A statement that can't be matched to an order is still accepted and flagged, because the law doesn't let you turn it away.

The home page has a new card for the feature, and the installation guide walks you through the three steps: enable the embed, turn the function on, mention it in your refund policy.

The acknowledgment email

This release records every statement with its submission time and shows the receipt on screen; the emailed acknowledgment of receipt shipped the next day — see the 30 August entry above. An order action inside customer accounts is still to come.

On first open after the update, Shopify asks you to approve extra permissions: the app proxy (to serve the withdrawal page on your store's domain), orders (to tag and cancel them) and returns (to create return requests).

Also in this release

  • Every statement matched to an order is also written to that order as a read-only Withdrawal statement metafield, so you can see it on the order page, use it in Shopify Flow, and keep it with the order even if you ever uninstall the app.

  • The Translations tab of Product Safety (GPSR) is now called Languages, the same name the tab has on Omnibus Lowest Price and Withdrawal Button. Old links still work.

New: Product Safety (GPSR)

The EU General Product Safety Regulation requires every product page to show the manufacturer's name, address and email, a responsible person in the EU when the manufacturer is based outside it, a way to identify the product, and any safety warnings. Omnibus Owl now covers that too.

Product Safety (GPSR) is a new page in the app menu, next to Omnibus Lowest Price, with four tabs:

  • Products — an audit of your active products: coverage, what still needs attention, and a table where you assign manufacturers and responsible persons to many products at once or edit one product's details — including safety information in every published storefront language, with a "not translated" flag until each language is filled in.

  • Manufacturers & responsible persons — add each manufacturer once; the app tells you which ones need a responsible person in the EU.

  • Settings — the storefront switch, which fields to show, and whether the block is collapsible.

  • Translations — the block's labels per storefront language.

Everything is stored in your own Shopify store — as metaobjects and pinned product metafields — so it stays with you and can also be edited from the product page in the Shopify admin.

A new Product Safety theme block shows the information on product pages; the installation guide walks you through adding it. The home page has a new card for the feature, and it replaces the GDPR Compliance placeholder, which is no longer planned as the next feature.

Heads-up: the Green Transition Directive

A new card at the bottom of the home page counts down to 27 September 2026, when Directive (EU) 2024/825 applies to every shop selling to EU consumers — the harmonised legal-guarantee notice, the GARAN durability label and the ban on generic "eco" claims. It explains what's required and what we're building for it; the feature itself follows before the date.

On first open after the update, Shopify asks you to approve extra permissions (metaobjects, their definitions, and translations) — that's what lets the app store manufacturers and translated safety text in your store rather than in ours.

A new home page, and Omnibus Lowest Price gets its own page

We're reorganising Omnibus Owl around the features it offers. Opening the app now lands on Hello to Omnibus Owl — a home page with your setup progress and one card per feature showing its status, so you can see at a glance whether everything is running (and what's coming next). Trial reminders and the review prompt live there too, and the gear icon in its header opens the app-wide settings — currently the app language, which used to sit among the Omnibus settings. The setup guide now starts by asking which features you want, and only walks you through those.

The first feature to get its own page is the one you use every day. Everything about the lowest-price widget now lives on a single Omnibus Lowest Price page in the app menu, with three tabs:

  • Dashboard — price monitoring, theme status and your variant table, exactly as before.

  • Settings — the former Settings page: app language, tracking window, widget options, product exclusions and native discount tracking.

  • Languages — the former Widget Translations page, for the label and tooltip text your shoppers see.

New: Tools page

Everything that goes beyond compliance now has its own home. The Tools page shows a card for each automation — Auto Compare At Price and Fresh Drop Dynamic Tagging to start — with its current status, a one-click Turn on / Turn off switch, and a Configure button for the details. Both tools moved there from Settings with their configuration intact.

Simpler menu

The app menu is now Omnibus Lowest Price, Tools and Plans. The separate Settings and Languages menu items are gone (bookmarks to them still work and open the matching tab), the Installation guide is reached from onboarding rather than the menu, and the little-used Price Insights page has been retired. More feature pages are on the way.

Edit price history from the variant page

Price history is no longer read-only. A Price history card now sits on each variant's detail page in the Shopify admin, where you can review every price point Omnibus Owl has on record — and correct it yourself.

Add it from any variant via Add block. Once pinned, it appears every time you open that variant.

Backfill the prices from before you installed

Tracking starts the day you install, so a brand-new store has no 30-day history to show. You can now enter those earlier prices by hand — a date, time, and price for each point — and complete a variant's history straight away, instead of waiting a month for it to fill in.

Entries are recorded against the market you're currently viewing, in that market's currency.

Fix what shouldn't be there

Every recorded point can be edited or deleted — useful when a test price change, a mistyped amount, or a brief pricing error has dragged the lowest price somewhere it shouldn't be. Changes save immediately, and the storefront widget's reference price updates with them.

Built so it can't break your tracking

Manual entries must be dated in the past — a future date is rejected with "Use a past date" — so a hand-entered price can never be mistaken for the current one.

Points you added or edited carry a Manual badge, keeping your corrections visibly separate from what Omnibus Owl recorded automatically. Hand edits don't fire price-drop or price-increase Flow triggers, and don't interfere with automatic price-change detection.

Also on the card
  • Market selector — switch between your active markets and countries; the history, currency, and lowest price all follow your selection, with your primary market listed first.

  • Lowest price (last 30 days) — the reference price for the selected market and the date it occurred, or a Current badge when today's price is the lowest.

  • Full history list — every recorded point, newest first, with date, time, and price.

  • Clear empty states — the card tells you when a market has no data yet, rather than showing a blank panel.

  • Available in 20+ languages, following your admin's language.