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.
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:
You can override the progressive-reduction rule in the settings.
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.
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.
Already using another Omnibus plugin? Cartnorm imports the price history of:
so your 30-day history is complete from day one.
WooCommerce › Omnibus check lists every product that is reduced right now and tells you, in plain words, which ones need attention:
Optionally replace “Sale!” with a percentage calculated from the 30-day lowest price and rounded down, so it never overstates the saving.
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.cartnorm_reference_price, cartnorm_notice_html, cartnorm_should_display, cartnorm_country_rules, cartnorm_history_corrected.wp cartnorm seed, wp cartnorm show <id>, wp cartnorm import <source>, wp cartnorm prune.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).
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).
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.