Black Friday on PrestaShop: how to show the Omnibus Directive lowest price from the last 30 days

Black Friday on PrestaShop: how to show the Omnibus Directive lowest price from the last 30 days

Under the EU Omnibus rules, the strikethrough price on a sale has to be the lowest one you charged in the previous 30 days, and raising it right before the sale so you can discount it afterward doesn't work. We explain how it's calculated, which mistakes invalidate the discount and how to get your price history running in PrestaShop before the campaign.

6 min read

If you're planning to announce Black Friday discounts in your PrestaShop store, the strikethrough price has to be the lowest one you charged for that product in the previous 30 days. Your last price won't do, and neither will a “reference” price picked by eye. In short: you need a history of each product's real price that records itself. And it has to be running before you touch any price for the campaign.

The problem: you don't get to choose the “before” price of your sale

Directive (EU) 2019/2161, known as the Omnibus Directive, introduced article 6a. Under this article, any announcement of a price reduction must state the prior price the trader applied for a set period before the reduction. In Spain, for example, article 20 of the Retail Trade Act defines the prior price as the lowest price applied to identical products in the preceding thirty days.

For an online store, that means your Black Friday strikethrough price comes from what you actually charged during those 30 days. If you ran another promotion in that window, even a weekend one, that discounted price counts. The European Commission's guidance on article 6a makes it clear: ignoring the prices of an earlier promotion within those thirty days breaches the rule.

And it happens more often than you'd think. A European Commission report from June 2024 found that 23% of the price reduction announcements it analyzed failed to comply with article 6a.

Person checking the calendar for the weeks before Black Friday and the price of each product on a laptop and in a notebook
The prior price is calculated backward, using the 30 days before the sale. StartupStockPhotos / Pixabay

How to calculate the correct reference price

The Commission explains it with an example in its guidance. Say you announce “50% off” and the lowest price in the previous thirty days was EUR 100. You must state EUR 100 as the prior price and calculate the 50% from that figure, even though the product's last selling price was EUR 160.

The Court of Justice of the EU confirmed this on September 26, 2024, answering a question referred by the Landgericht Düsseldorf. It isn't enough to mention the prior price somewhere in the ad: the discount percentage has to be calculated from it. Baker McKenzie sums it up well.

What you do in PrestaShop and what's missing

In PrestaShop, you set up a sale by editing the product or creating a specific price. What the rule adds is that the prior price you state must be the lowest final price you displayed in the previous 30 days. If that figure comes from a spreadsheet or from memory, you're exposed on two fronts. You might miss an earlier promotion. Or the “prior price” you type in might be higher than the real one, which is exactly the misleading practice the rule penalizes.

Prior price typed in by hand

  • You work it out yourself, product by product.
  • You rely on remembering every promotion from the last 30 days.
  • You're left with no record you can check later.
  • Every last-minute price change means recalculating.

With our module

  • Records the final displayed price of each product by itself.
  • Computes the 30-day minimum from that history.
  • Shows it in each customer's language and currency.
  • Includes a compliance dashboard and a read-only audit trail.

How we solve it with Omnibus Price

For exactly this, we have Omnibus Price, our module that keeps a real price history and shows the lowest price of the last 30 days on discounted products. We designed it so the reference price comes from what your store actually displayed. No “prior price” entered by hand. It's compatible with your PrestaShop and works without a cron and without customer data.

Automatic history

Captures prices in real time, through hooks, every time you edit a product or a specific price.

No cron

A small catch-up batch runs in the background after the page is sent. No visitor has to wait.

30-day minimum on display

Next to the discounted price, a badge shows the minimum and the real saving. If you like, you can add another one saying “lowest price!”.

Price history chart

Appears on hover, with tooltips. You can add an optional recommended-price line.

Compliance dashboard

Rates each discounted product as OK, Warning, Not compliant or Dark pattern and gives a global score from 0 to 100.

Merchant putting price tags on the products in their store, with shipping boxes in the background
An honest sale starts from a reference price that was actually charged. analogicus / Pixabay

Step by step: reach Black Friday with your price history running

Order matters here, because the history starts building the day you install the module. We recommend following these steps:

  1. Install the module before you touch prices. It works with hooks only, no overrides, and installs and uninstalls cleanly. From then on, it records the final displayed price of every product.
  2. Keep your usual prices until the campaign. Don't raise them in the weeks before. An inflated price doesn't qualify as a prior price and, on top of that, it stays in the history.
  3. Adjust what customers will see. Review the notice texts in each language with the rich-text editor. Also decide whether to show the “lowest price!” badge and the recommended-price line.
  4. Schedule your sales as usual. Edit the product or create the specific price. The module captures the change in real time, and the product being viewed is refreshed on the fly.
  5. Check the compliance dashboard before going live. Look at the status of each discounted product and the global score. Fix any product flagged as Warning, Not compliant or Dark pattern.
Small team handing Black Friday orders to a courier at the door while one person answers the phone
With the reference price sorted out, the team can focus on shipping orders. romeosessions / Pixabay

Frequently asked questions

Can I raise the price in early November and discount it on Black Friday?

That doesn't work. If you raised the price in the last 30 days, that selling price doesn't count as the prior price, because it isn't the lowest one in the period. Consumo Responde considers it an improper practice.

Do I have to state how many days the prior price was in effect?

No. The Commission's guidance on article 6a says you aren't required to state how long you applied the prior price you display.

Is there a problem if the prior price I show is lower than the real minimum?

According to the Commission's guidance, stating a prior price lower than the lowest one in the previous 30 days doesn't go against article 6a. What isn't allowed is showing a higher one.

Since when does Omnibus Price have data?

The history starts building the day you install the module. That's why you should install it before you change prices for the campaign.

Do I need to set up a cron, or does it store my customers' data?

Neither. It works without a cron, using hooks and a small background batch. And it doesn't use customer data: it only records the final displayed price of each product.

Get to Black Friday with your prior price calculated correctly

With Omnibus Price, your store records the final price of each product by itself, calculates the lowest price of the last 30 days and shows it next to the discount with the real saving. You also get a compliance dashboard with a 0–100 score and e-mail alerts. Install it before you touch prices: the history starts that day.

Keep your price history and show the 30-day minimum

Multistore, multi-currency and multi-language. No cron, no overrides and no customer data. Helps you comply with the price transparency rules of Directive (EU) 2019/2161; it does not constitute legal advice.

Share

Modules in this article

Comments

No comments yet. Be the first.

Leave a comment

Comments are reviewed before they are published.