Omnibus Directive
When you announce a price reduction in the EU, you have to show what the product cost before it. This extension records every price change your store makes and prints that prior price — the lowest price of the 30 days before the reduction — beside the reduced one, with an optional -X% badge, so a promotion goes live without anyone compiling price history by hand.
Latest version: 3.0.0 — changelog

Who it's for
- Stores selling to consumers in the EU, where Article 6a of the Price Indication Directive, as amended by Directive 2019/2161 (the Omnibus Directive), requires the prior price beside any announced reduction.
- Multi-country installations. Every setting resolves per website and store view, so each market's storefront can follow its own rules.
- Stores whose prices change outside the admin panel — through REST, a
bin/magentoimport or an ERP. The history comes from Magento's price index, so every source of a price change is covered. - B2B and wholesale catalogs with customer-group pricing: each customer group sees the prior price of its own prices.
Why it matters
- Helps you meet Article 6a on every promotion. The prior price is derived from the prices your store actually charged, per website and customer group, so the figure beside a reduction is backed by a record rather than a spreadsheet.
- The reference price stays put for the whole promotion. It is fixed when the reduction starts and does not drift as the sale runs, and once a reduced price has lasted 30 days it stops being presented as a reduction.
- A discount badge you cannot overstate. The -X% figure is calculated from the prior price, never from a list price, and rounded down.
- It shows where customers read prices — product pages, category grids, search results and Catalog Products List widgets, on Luma and on Hyvä.
- Listing pages stay fast. A whole page's figures load in one batched query, and stores on Smile ElasticSuite can serve them from the search index.
See it in action
Each example below is asserted by the extension's test suite on a live store.
| You set | Customers see |
|---|---|
A product at 100, then reduced to 80 | "The lowest price in the last 30 days: $100.00" beside the $80.00 price |
The same reduction, with Show Discount Badge on and Minimum Discount (%) at 10 | A -20% badge next to that figure |
A reduction from 100 to 95, minimum discount 10 | The prior price of $100.00, without a badge — 5% is below the minimum |
| A price that has not changed, Always Show Historical Price off | No figure at all — there is no reduction to announce |
Features
Each row links the walkthrough on the usage page, which is available to clients who own the extension.
| Feature | Benefit |
|---|---|
| How the prior price is produced | Every price change is recorded from Magento's price index, so the figure beside a reduction is backed by what the store actually charged, per website and customer group — or read from a product attribute a PIM or ERP fills |
| Verify it on a real product | Lower a price, reindex, and see the prior price on the product page — and choose whether a product whose price has not changed shows the figure at all |
| Show a -X% discount badge | Advertise the reduction only where it is worth highlighting, with a percentage rounded down so it never overstates |
| Category listings | The figure and badge appear under every product in category grids and Catalog Products List widgets, loaded in one query per page |
| Search results | Quick and advanced search results carry the figure too, with no separate switch to remember |
| Hyvä storefronts | The same figure and badge on a Hyvä storefront, decided by the same rule, with Tailwind-safe markup |
| Product types | Simple, configurable, grouped, bundle and downloadable products all show the figure |
| Customer groups and websites | Each customer group sees the prior price of its own prices, and each website or store view can run its own display rules |
| Indexing and the daily job | Price history keeps itself current on Magento's cron, and a daily job ends reductions after 30 days without anyone editing products |
| ElasticSuite companion module | On stores with Smile ElasticSuite, listing figures come from the search index, with an automatic fallback to the database |
Competing solutions
The right-hand column describes common practice across marketplace extensions, not any particular vendor.
| Qoliber | Typical marketplace extension | |
|---|---|---|
| GitLab access | Full access to the module's GitLab repository — source, history, issues and merge requests | Varies by vendor |
| Packagist installation | Installed and updated with Composer from our private Packagist (qoliber.repo.packagist.com) | Varies by vendor |
| Slack access to the development team | A shared Slack channel with the developers who build and maintain the module | Usually ticket-based |
| Unit tests | 8 PHPUnit unit tests (3 classes) in the repository | Not typically published |
| Integration tests | 46 Magento integration tests (10 classes), run before every release | Not typically published |
| E2E Playwright tests | 69 Playwright end-to-end tests (22 spec files) on Luma and Hyvä, run before every release | Not typically published |
| Documentation | Full docs portal: installation, configuration, usage walkthroughs with screenshots, troubleshooting, a developer guide and a module reference | Varies by vendor |
| Hyvä support | A dedicated Hyvä package with its own layouts and templates, tested on Hyvä before every release | Varies by vendor |
| PHP / Magento range | PHP 8.1 – 8.5; Magento Open Source 2.4.7 – 2.4.8 and the equivalent Mage-OS releases | Varies by vendor |
What sets it apart
- Hyvä-native.
qoliber/omnibus-directive-hyvaships Hyvä layouts and templates registered with Hyvä's Tailwind scanner, not a Luma template placed on a Hyvä page. - No third-party service. Price history is recorded and stored in your Magento database and, optionally, your own search index. Nothing about your pricing leaves the store.

Also available in: Polish.
Good to know
- History starts when you install. A reduction is only presented as one once the store has recorded the price before it. Products whose price has not changed since installation show no prior price and no badge.
- The badge needs Dynamic pricing. In Static mode the attribute is not a record of the price in effect before the current one, so no badge is shown.
- The extension shows the figure; it does not decide what counts as an announced reduction. Whether a given price change is a promotion in the legal sense is still your call — use Always Show Historical Price if you prefer the figure everywhere.
- Cron must run. The price index updates on Magento's schedule, and a daily job ends reductions after 30 days.
Supported versions
PHP 8.1 – 8.5. magento/framework >= 103.0.0 < 104 and
magento/module-catalog >= 104.0.0 < 106 — Magento Open Source 2.4.7–2.4.8 and
the equivalent Mage-OS releases. The Hyvä and ElasticSuite companions are
optional and installed separately.