You have entered a promotion, it shows correctly in the back office, and on the site the product displays at its normal price, with no strikethrough. The problem is almost always the same: the promotional price exists, it simply does not reach the display.
Here are the ten causes, in order of frequency, and the method to settle it in five minutes.
Where the strikethrough price comes from
PrestaShop has no “promotional price” field. The strikethrough price is a computed display: it appears when the final price is lower than the base price, and it is the theme that decides whether to show it.
Three mechanisms can produce that reduction: a specific price attached to the product, a catalogue price rule applied to a set, or a discount tied to the customer group. They have neither the same priority nor the same display behaviour.
The ten causes
- Cache. Cause number one, by a wide margin. The product page or the category page is served from cache, generated before the promotion. Clear the cache and reload in a private window before any other diagnosis.
- The start date. A specific price with a start date in the future, or entered in a timezone other than the server’s, does not apply. Check the end date too, often left at yesterday by mistake.
- The customer group. The specific price is restricted to a group the logged-out visitor does not belong to. Test while logged out, that is what most of your visitors see.
- Currency or country. A specific price limited to one currency or one country does not apply to the others. The field often holds a precise value where it should hold “all”.
- The shop, in multistore. The price was created on one shop and you are viewing the other.
- The combination. The specific price targets one precise combination, and you are looking at the default combination which is not that one. Conversely, a price created on the product with no combination can be overridden by a combination price.
- Rule priority. When several mechanisms apply, the priority order configured in the catalogue settings decides which one wins. A group discount can take precedence over your specific price.
- Minimum quantity. A specific price triggered from two units shows nothing while the visitor is looking at one unit. That is normal behaviour, often mistaken for a bug.
- The theme. Some themes only show the strikethrough price on the product page and not in the category, or the other way round. Compare the two before concluding you have a price problem.
- A reduction amount of zero. A specific price entered with a reduction of 0, or a price identical to the base price, obviously shows nothing. This happens more often than you would think after a bulk edit.
Omnibus Directive Compliance (Lowest Prior Price) for PrestaShopOmnibus Directive, automatic compliance€79.00
The five-minute diagnosis
Work in this order, each step eliminating a family of causes.
1. Clear the cache and reload the page in a private window. If the price appears, you have your answer and you need to plan automatic purging on price changes.
2. Open the product’s Prices tab and check, on the specific price row: dates, group, currency, country, shop, combination and minimum quantity. Six of the ten causes are readable right there.
3. Compare product page and category. If the strikethrough price appears on one and not the other, the problem is in the theme, not in the prices.
4. Test with a customer account attached to a different group. A gap between the two confirms a group restriction.
5. Check the catalogue price rules in the discounts menu. A general rule can compete with your specific price.
The special case of bulk edits
After an import or a grouped price update, two anomalies come up regularly.
The specific prices are not carried over by the import, which changes the base price. Result: your base price drops to the level of the promotional price, the reduction becomes zero, and the strikethrough disappears even though the displayed price is correct.
Or the reverse: the base price is raised without the old specific prices being deleted, which brings back promotions forgotten months ago.
In both cases, the check to run after any import is the same: list the products with an active specific price and confirm the list matches your current campaigns.
Once the strikethrough price is back
Check that the price shown as the reference price is the one the regulation requires, meaning the lowest price applied over the previous thirty days, and not the usual catalogue price. The two differ as soon as a promotion has run recently on the same reference.
The Omnibus Directive Compliance module handles this on PrestaShop 8 and 9: price history per product and per combination, computation of the reference price and display of the wording on the product page as well as in listings.