Title: Cartnorm Omnibus Lowest Price
Author: Cartnorm
Published: <strong>October 25, 2026</strong>
Last modified: October 25, 2026

---

Search plugins

![](https://ps.w.org/cartnorm-omnibus-lowest-price/assets/banner-772x250.png?rev
=3764542)

![](https://ps.w.org/cartnorm-omnibus-lowest-price/assets/icon-256x256.png?rev=3764542)

# Cartnorm Omnibus Lowest Price

 By [Cartnorm](https://profiles.wordpress.org/cartnorm/)

[Download](https://downloads.wordpress.org/plugin/cartnorm-omnibus-lowest-price.0.1.2.zip)

 * [Details](https://wordpress.org/plugins/cartnorm-omnibus-lowest-price/#description)
 * [Reviews](https://wordpress.org/plugins/cartnorm-omnibus-lowest-price/#reviews)
 *  [Installation](https://wordpress.org/plugins/cartnorm-omnibus-lowest-price/#installation)
 * [Development](https://wordpress.org/plugins/cartnorm-omnibus-lowest-price/#developers)

 [Support](https://wordpress.org/support/plugin/cartnorm-omnibus-lowest-price/)

## Description

Since 2022, every shop selling to consumers in the EU must show the **lowest price
of the 30 days before a price reduction**, and calculate any strikethrough price
or “-20%” badge from that price (Directive 98/6/EC, Article 6a, confirmed by the
EU Court of Justice in case C-330/23, Aldi Süd).

Cartnorm does this correctly and quietly, without slowing your store down.

#### Correct legal logic

 * The 30-day window ends when the **reduction starts**, not today, and stays fixed
   for the whole sale. A long sale never “drifts” to its own sale price.
 * The strikethrough price and the percentage badge are calculated from the 30-day
   lowest price, not from a price you raised just before the sale.
 * **Fake discount guard:** if the “sale” price is not actually below the 30-day
   lowest price, the strikethrough price and the “Sale!” badge are hidden automatically.
 * Every variation of a variable product has its own history and its own reference
   price.
 * Scheduled sales are recorded at their real start time.
 * Never shows 0.00 or an empty notice.

#### Rules for each EU country

Choose your country (or let Cartnorm read it from your store address). The member
states differ in details such as progressive reductions and new products:

 * Poland and Spain: every further reduction gets a new reference price.
 * Belgium: progressive reductions up to 30 days; at least 7 days of history for
   new products.
 * Netherlands: progressive reductions up to 3 months; the real period is stated
   for new products.
 * Italy: the real period is stated for products on sale for less than 30 days.
 * Germany, Austria, France, Czech Republic, Sweden, Portugal, Ireland, Romania:
   one uninterrupted campaign keeps its reference price.

You can override the progressive-reduction rule in the settings.

#### No database bloat

Cartnorm stores history in one small table and writes a row **only when a price 
actually changes**. Saving a product 1,000 times without changing its price adds
nothing. Old history is removed automatically, while the price needed for the current
calculation is always kept.

#### Every way prices change is captured

Product editor, quick edit, bulk edit, CSV import, REST API, WP-CLI, scheduled sales,
and plugins that write prices directly. A daily background check catches anything
else.

#### Switch without losing your history

Already using another Omnibus plugin? Cartnorm imports the price history of:

 * Omnibus — show the lowest price (iworks)
 * WC Price History

so your 30-day history is complete from day one.

#### Omnibus check: your whole shop at a glance

**WooCommerce › Omnibus check** lists every product that is reduced right now and
tells you, in plain words, which ones need attention:

 * **Not a genuine discount** – the sale price is not below the 30-day lowest price.
 * **History too short** – the sale started before a full 30-day history existed.
 * **Exempt** and **OK**.

#### For shop owners and inspectors

 * An “Explain this price” panel on every product shows the reference price, the
   exact dates of the 30-day window, and the price history.
 * **Correct mistakes with an audit trail.** A typo was live for two hours? Correct
   or void that record, with a reason. The original value is kept in an audit log,
   so nothing is hidden from an inspector.
 * Export the price history and the audit log of one product or the whole shop as
   CSV. Free.
 * Exempt individual products (for example perishable goods reduced before their
   expiry date).

#### Honest sale badge

Optionally replace “Sale!” with a percentage calculated from the 30-day lowest price
and rounded down, so it never overstates the saving.

#### For developers and headless shops

 * The WooCommerce REST API returns an `omnibus` object for every product and variation:
   lowest price, number of days, whether the discount is genuine, discount percentage
   and the ready-made notice text.
 * Filters and actions: `cartnorm_reference_price`, `cartnorm_notice_html`, `cartnorm_should_display`,`
   cartnorm_country_rules`, `cartnorm_history_corrected`.
 * WP-CLI: `wp cartnorm seed`, `wp cartnorm show <id>`, `wp cartnorm import <source
   >`, `wp cartnorm prune`.

#### Display anywhere

Product pages, shop and category pages, a block for block themes, an **Elementor
widget** (with color, typography and alignment), and the `[cartnorm_lowest_price]`
shortcode. Choose where the notice appears on product pages: under the price, under
the short description, under the add-to-cart button, or nowhere (place it yourself).
On variable products, the general notice names its variation and is replaced by 
the selected variation’s own notice. The customer-facing notice is built in for 
German, Polish, French, Italian, Spanish and Dutch shops, using the wording recommended
by national regulators (for example “Najniższa cena z 30 dni przed obniżką” in Poland).

#### Free, with nothing locked

Every feature described above is included in this free plugin and works without 
an account or licence. An optional paid add-on, Cartnorm Omnibus Pro, adds tools
for multi-currency shops and a few extras (see “Is there a Pro version?” in the 
FAQ).

#### Not legal advice

Cartnorm helps you meet the price-indication rules, but it is not legal advice. 
You remain responsible for your prices and for checking the law that applies to 
your shop.

## Screenshots

[⌊The lowest price notice on a product page.⌉⌊The lowest price notice on a product
page.⌉[

The lowest price notice on a product page.

[⌊Variable products: the notice names the variation it belongs to.⌉⌊Variable products:
the notice names the variation it belongs to.⌉[

Variable products: the notice names the variation it belongs to.

[⌊Omnibus check: every reduced product, with problems first.⌉⌊Omnibus check: every
reduced product, with problems first.⌉[

Omnibus check: every reduced product, with problems first.

[⌊The "Explain this price" panel in the product editor, with corrections.⌉⌊The "
Explain this price" panel in the product editor, with corrections.⌉[

The “Explain this price” panel in the product editor, with corrections.

[⌊Settings, including country rules.⌉⌊Settings, including country rules.⌉[

Settings, including country rules.

## Installation

 1. Install and activate the plugin. WooCommerce must be active.
 2. Go to **WooCommerce › Settings › Products › Lowest price (Omnibus)** and check 
    the country rules.
 3. If you used another Omnibus plugin, click **Import price history** in the same 
    settings section.

Cartnorm starts recording immediately. Until a product has 30 days of history, the
regular price is used as a fallback (you can change this).

## FAQ

### Do I need this if I only sell outside the EU?

No. The rule applies to price reductions announced to consumers in the EU.

### Why is the strikethrough price different from my regular price?

Because the law requires the strikethrough price and the percentage to be calculated
from the lowest price of the 30 days before the reduction. If you prefer the WooCommerce
default, change “Strikethrough price” in the settings.

### Why did the “Sale!” badge disappear?

The sale price is not below the lowest price of the previous 30 days, so it is not
a genuine reduction. Showing it as a discount could mislead customers. You can turn
this guard off in the settings.

### Does it work with variable products?

Yes. Each variation has its own history and its own notice.

### Will it slow down my store?

No. Nothing heavy runs when a page loads or a product is saved. Background work 
runs in small batches through the WooCommerce Action Scheduler.

### In which languages is the customer-facing notice shown?

The notice shown to shoppers is built in for German (Germany, Austria, Switzerland),
Polish, French (France, Belgium), Italian, Spanish and Dutch (Netherlands, Belgium),
so it appears in the shop language from day one. You can replace it with your own
text under “Custom text” in the settings. When a translation from translate.wordpress.
org is installed, it is used instead. All other texts can be translated on translate.
wordpress.org.

### Is there a Pro version?

Yes. Cartnorm Omnibus Pro is an optional paid add-on. This free plugin stays fully
functional without it; nothing in it is locked or time-limited. Pro adds:

 * Multi-currency: the lowest-price notice in the currency the customer sees (WPML/
   WooCommerce Multilingual, Aelia, CURCY, FOX or your own rates), with a separate
   30-day history for each currency.
 * A warning when the regular price was raised in the 30 days before a sale.
 * A monthly Omnibus report by email.
 * Google Shopping feed prices that match the 30-day lowest price shown in your 
   shop.
 * An EU withdrawal button (Directive (EU) 2023/2673).

Details and prices: [cartnorm.com/pricing](https://cartnorm.com/pricing/). The free
plugin shows a “Pro version” link on the Plugins screen and one small note in its
own settings, which you can dismiss for good. Both disappear when Pro is active.

### What happens when I uninstall the plugin?

The history table, settings and the plugin’s other stored data are removed.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Cartnorm Omnibus Lowest Price” is open source software. The following people have
contributed to this plugin.

Contributors

 *   [ Cartnorm ](https://profiles.wordpress.org/cartnorm/)

[Translate “Cartnorm Omnibus Lowest Price” into your language.](https://translate.wordpress.org/projects/wp-plugins/cartnorm-omnibus-lowest-price)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/cartnorm-omnibus-lowest-price/),
check out the [SVN repository](https://plugins.svn.wordpress.org/cartnorm-omnibus-lowest-price/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/cartnorm-omnibus-lowest-price/)
by [RSS](https://plugins.trac.wordpress.org/log/cartnorm-omnibus-lowest-price/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.1.2

 * New: Pro link on the Plugins screen and an optional, dismissible note in the 
   plugin’s own settings.

#### 0.1.1

 * Fix: in block themes (such as Twenty Twenty-Five) the sale badge in shop and 
   category lists now follows the plugin settings too: it is hidden on discounts
   that are not genuine, and shows the percentage when that option is on. Older 
   product grid blocks are covered as well.
 * Added the Plugin URI header.
 * Admin messages are limited to the plugin’s own settings section: the import offer
   is an inline box there and can be dismissed, the history-building status is a
   plain line in the settings, and the “WooCommerce is missing” notice appears only
   on the Plugins screen.
 * The customer-facing notice texts for German, Polish, French, Italian, Spanish
   and Dutch are now built into the plugin; translation files are no longer bundled(
   translations come from translate.wordpress.org).
 * Uninstall now also removes import status options, per-product exemptions and 
   dismissed-message flags.

#### 0.1.0

 * First release.

## Meta

 *  Version **0.1.2**
 *  Last updated **1 week ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [eu](https://wordpress.org/plugins/tags/eu/)[lowest price](https://wordpress.org/plugins/tags/lowest-price/)
   [omnibus](https://wordpress.org/plugins/tags/omnibus/)[price history](https://wordpress.org/plugins/tags/price-history/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/cartnorm-omnibus-lowest-price/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/cartnorm-omnibus-lowest-price/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/cartnorm-omnibus-lowest-price/reviews/)

## Contributors

 *   [ Cartnorm ](https://profiles.wordpress.org/cartnorm/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/cartnorm-omnibus-lowest-price/)