Prawo w e-commerce
Discount codes and Omnibus: how to work out the lowest 30-day price

Discount codes and Omnibus? It really comes down to one question: does the code work like a regular price reduction? If it lowers the price of a specific product and any customer can use it, the answer is yes. The store then treats it as a price reduction and shows the lowest price from the 30 days before that reduction started. It is November 2024, Black Friday season, and WooCommerce and PrestaShop store owners are preparing campaigns with discount codes. A good moment to get the calculation right. One caveat first: I am writing about day-to-day store practice, not giving legal advice (we covered the basics of the Omnibus rules in a post from December 2022).
Table of Contents
Discount codes and Omnibus: when does a code count as a price reduction?
Two things decide it. Is the code available to everyone? And does the store present it as a reduction on specific products? The obligation was introduced by an amendment to the price information rules published in the Polish Journal of Laws (Dziennik Ustaw). In practice, a code announced on a banner or sent in a newsletter to your whole list is simply a public price reduction. An individual code is different, for example an apology code for one customer after a complaint. That is a completely different story. And borderline cases? Better to ask a lawyer than to guess.
How to work out the lowest 30-day price for a promotion with a discount code
The reference point is the lowest price of the product in the 30 days before the reduction starts. Not before the day the customer places the order (this is probably the mistake I see most often). Here is how to find the pre-reduction price:
- Set the start date of the promotion.
- Check the product price history for the 30 days before it.
- Pick the lowest price from that period, including any earlier reductions.
- Show that value next to the promotional price or with the information about the code.
- Save a screenshot or a price export in case a customer asks.
An example. A product was on sale two weeks before the new campaign, so the lowest price comes from that earlier promotion, not from the regular price. Simple? On paper, yes. Oh, and one more thing: a percentage code on the whole cart makes it really hard to show the price next to the product. In my view, it is better to limit it to selected categories.
Black Friday prices: the most common mistakes in campaigns with codes
November is the season of slip-ups with the 30-day price. Most of them come from raising prices just before a campaign and from stacking several promotions on top of each other. Typical mistakes:
- raising the price shortly before Black Friday so the discount looks bigger,
- counting 30 days from the purchase date instead of from the start of the reduction,
- leaving out an October promotion when setting the lowest price,
- combining a code with an already reduced price without clearly stating what the discount is calculated from,
- a crossed-out list price shown where the lowest 30-day price should be.
Campaigns spread over time, like Black Week or Cyber Monday, are a separate topic. It is easy to get lost here. Every price change during them is added to the history, and you then have to track that history at the next reduction.
Price reduction and the 30-day price: how to show it to customers
Wherever the customer sees the reduction. That means the product page and the message about the code. In practice, three places work well: the product page, the product list in the promotional category, and the code description on the banner or the campaign page. Skip abbreviations like „min. 30 days”. A full sentence, such as „Lowest price in the 30 days before the reduction”, is simply easier to read. And keep it consistent: the same value should appear in the store, the newsletter and the ads. Customers are the quickest to spot any mismatch, no point pretending otherwise.
Automatic price history in WooCommerce instead of a spreadsheet
A spreadsheet with price history? Fine for twenty products. With hundreds of items and frequent changes it simply falls apart, so it is better to let the store record the history itself. On WooCommerce, the Product Price History plugin from K4.pl does this. It saves price changes in an extra table in the database, works out the lowest 30-day price in WooCommerce on its own and displays it on the product page when the product is on sale. And PrestaShop? Check whether the store or the module you use keeps a price history and whether it can be rebuilt for a chosen past date.
Checklist before launching a promotion with a code
A few minutes of checks before you activate the code and you can relax. Five points:
- code scope: products, categories or the whole cart,
- start date of the reduction,
- price history for the 30 days before that date,
- visibility of the information on the product page,
- marketing messages matching the prices in the store.
All in all, it comes down to two things: a reliable price history and a clear message for the customer. Got both under control? Then a campaign with a code is no different from a regular sale.
Frequently asked questions
Does a discount code from a newsletter require showing the lowest 30-day price?
It depends on whether the code reaches a wide audience and whether it applies to specific products. Sending it to your whole subscriber list is closer to a public promotion than to an individual offer. Not sure? Show the lowest price information, it is the safer option.
From when do you count the 30 days for a Black Friday promotion?
Backwards from the day the reduction starts. Not from the purchase date. Earlier promotions in that period also count, so an October sale can set the lowest price for a November campaign.
What should you show when a product has been on sale for less than 30 days?
The rules cover this case separately. It is best to go straight to the text of the amendment in the Polish Journal of Laws or to our post from December 2022. For unusual products, such as seasonal or short-term ones, I recommend confirming how to label them with a lawyer.