In some cases of catalog price rules i have noticed, that the final price after rule being applied is rounded incorrectly.
Example:
Nett Price for one unit: 22.67 EUR
Rule: 50% of original price
Final price: 11.000
It should be:11.335
Changing rule to 47%
Final price: 12.000
It should be 12.0151
This rule is applied to 2 categories, some products are ok, some with above problems, I can’t find the clue.
IMPORTANT the problem occur if more than one rule is applied for the same product, even if they have "no further rule processing" enabled.
Any ideas? I assume the problem is with the "stop further rule processing".
If it is limitation to community edition, please let me know at least.
Best Answer
Had exactly same issue. If final price was ending with .50 or lower, it would drop the decimal part, and if .51 and higher, it would keep it.
This started happening as we updated from magento CE 1.9.0.1 to 1.9.2.4.
After spending a day digging, I found that it happens in mysql. Portion of the sql code that produces error:
The line that was causing the error was:
@price := @price
The solution is to edit the file
app/code/core/Mage/CatalogRule/Model/Action/Index/Refresh.php
, in method_calculatePrice()
around line 440:replace with: