PrestaShop price rounding: how to get back to clean .99 endings after a price rise
Price rounding in PrestaShop means two different things. The rounding mode setting in Shop Parameters → General only decides the cents when tax and totals are calculated. Clean endings, such as .99 after a price rise, have to be set in the prices themselves: by hand, by import, with a module or in a conversation with the chat, with a preview before saving.
Author: The TellMyShop team. A guide for PrestaShop store owners: the cause, the manual fix and the same work in a chat conversation.
Last updated: · 5 min read
What does the rounding setting in PrestaShop do?
It decides how the store rounds calculation results to cents. The PrestaShop 8 general settings documentation describes two fields: the round mode, meaning which way to round half cents, and the round type, meaning whether to round each item, each order line or the total.
The PrestaShop team shows in its round mode test scenario that different modes give the same price differing by a cent. That matters for totals matching the payment gateway, but it will not turn €53.49 into €53.99. Leave this setting as it is unless you have a specific problem with order totals.
| What you want | How you do it |
|---|---|
| Cents in the cart total match the payment | round mode and round type in Shop Parameters → General |
| The price displays with a .99 ending, but a different one stays in the database | a module that rounds on display |
| The product price has a .99 ending for good | change the product price: by hand, by import or through the chat |
Modules that round on display exist, for example the rounding module from idnovate. Such a module changes the price at the moment it is displayed. In that case, check that the same price reaches the cart, the invoice and the files for price comparison sites.
Which rounding rule to choose
A simple one that you can write down in one sentence. Before the change, answer three questions.
- Which ending? Only .99, or .99 and .49, or whole euros for expensive products.
- Which way? To the nearest ending, always down or always up.
- Where is the limit? For example “never down by more than €1” or “above €200, round to the nearest €10”.
The same 7% rise with different rules. The values are examples:
| Price before | After +7% | Down to .99 | Nearest .99 | Nearest x9.99 or x4.99 |
|---|---|---|---|---|
| €52.00 | €55.64 | €54.99 | €55.99 | €54.99 |
| €129.00 | €138.03 | €137.99 | €137.99 | €139.99 |
| €18.50 | €19.80 | €18.99 | €19.99 | €19.99 |
| €349.00 | €373.43 | €372.99 | €372.99 | €374.99 |
The third row shows the trap: rounding down eats almost the whole rise on a cheap product. So it is worth adding a limit or a different rule for cheap products.
The last column is a rule popular with stores that have a wide price list: prices end in 4.99 or 9.99, so a category has fewer different endings and the product list looks calmer. Which rule you choose depends on your store and margin. What matters is that there is one rule for the whole category and that it is written down, because at the next price rise you will do the same again.
What to watch out for when rounding
Net prices, combinations and promotions. This is where mistakes happen most often.
- Net and gross. The customer sees the gross price, and PrestaShop stores the net price with many decimal places. A rounded net price rarely gives a clean gross price once tax is added.
- Different tax rates. The same product in two countries with different rates will give different gross endings. Decide which country you are rounding for.
- Combination price impacts. A combination with a +€12.30 impact will still have an odd ending after you round the base price. Check those combinations separately.
- Percentage promotions. A 15% discount on €52.99 gives an uneven price again. That is normal, the customer then sees the promotional price next to the struck-through one.
- Announcing a reduction. If you announce a price reduction at the same time, remember the lowest price from the last 30 days. The rules are summarised in this guide to announcing price reductions (in Polish).
We cover the price rise itself, ways of doing it and its pitfalls in the post on bulk price changes in PrestaShop. How to show the price before a reduction is explained in the guide to the strikethrough price.
How to round prices in a conversation with the chat
You give the rule in plain words. Your chat (Claude or ChatGPT) reads the prices, calculates the new gross prices, picks net prices that give a clean ending and shows a table before saving.
You: After the price rise, prices in the Work gloves category have odd endings. Round the gross price to the nearest x9.99 or x4.99, never down by more than €1. Show me a table first.
Your chat: There are 37 products in the category, and 31 have an ending other than .99. The first three, gross prices:
2 products have combinations with a price impact, and their combination endings will stay uneven. I will list them separately.
You: I approve everything except the winter gloves, make those €137.99.
Your chat: Corrected. I'll save the 31 prices after your ‘yes’, and you can undo the whole operation from the change history.
old version: Nitrile gloves 100 pcs: €53.49
new version: Nitrile gloves 100 pcs: €54.99 (+€1.50)
old version: Coated gloves: €19.80
new version: Coated gloves: €19.99 (+€0.19)
old version: Winter gloves: €138.03
new version: Winter gloves: €139.99 (+€1.96)
One operation covers up to 100 products, and the chat changes prices gross or net, as you ask. Price changes need the Sales switch. You turn it on yourself in the module panel and it stays on until you turn it off. Without it, the chat prepares the table as a plan and tells you what to turn on.
In the free TellMyShop Free the chat can go through products and list those with uneven endings, but it saves nothing. In TellMyShop Pro, after the preview and your “yes”, it saves the prices, and the change goes into the change history. TellMyShop never changes taxes. The chat changes the rounding settings in Shop Parameters → General only with the Service switch, but there is usually no need.
Example requests: rounding prices to .99 after a price rise and raising or lowering prices across a category. Plans are on the pricing page, and other guides about prices are on the blog.
Questions and answers
Does PrestaShop round prices to .99 by itself?
No. The rounding settings in PrestaShop decide how the store rounds cents when calculating tax and totals, not what ending a price has. You set .99 endings in the product price: by hand, by import, with a module or in a conversation with the chat.
Why do prices have odd endings after a percentage rise?
Because a percentage of a price produces cents nobody planned. A 7% rise on €49.99 gives €53.49, and on €129 it gives €138.03. So after every percentage rise you need to decide on a rounding rule.
Should I round the net or the gross price?
The gross price, because that is the one the customer sees. PrestaShop stores the net price to several decimal places and calculates the gross price from it. So a good change saves the net price that, once tax is added, gives a clean gross ending.
Is rounding up a new price rise?
Yes, the customer pays more, even if it is only a few dozen cents. That is why many stores round to the nearest ending or down. Agree the rule before the change and check it in the preview on a few expensive products, where the difference is largest.
Will the chat round prices without the Sales switch?
No. Changing prices belongs to the Sales area, which you turn on yourself in the module panel and which stays on until you turn it off. Without it, the chat prepares a before and after price table as a plan, but saves nothing.
PrestaShop is a registered trademark of PrestaShop SA. Claude is a trademark of Anthropic PBC. ChatGPT and OpenAI are trademarks of OpenAI. TellMyShop is not affiliated with these companies.