Странные расчеты с ценой товара в порядке
-
16-10-2019 - |
Вопрос
Мы столкнулись со странной ошибкой вычислений в нашей настройке Magento.
Magento 1.7.0.2 с PHP 5.4
На изображении выше вы видите два практически одинаковых продукта.Однако верхний продукт имеет общее количество строк 24,99, а второй продукт — 25,00.
Я знаю, что Magento 1.8 решает множество ошибок округления, но решает ли он эту?Мы не можем установить Magento 1.8, это очень специализированный магазин, а версия 1.8 все еще находится в стадии альфа-версии.
У нас есть ощущение, что это как-то связано с PHP 5.4, в настоящее время мы изучаем это с помощью виртуальной машины, я надеялся, что кто-нибудь здесь лучше поймет, почему это происходит или как мы можем решить эту проблему.
Если вам нужна дополнительная информация, я буду рад рассказать вам больше.Заранее спасибо.
Решение 2
Я временно внедрил обходной путь для этой проблемы.Я считаю, что эта проблема исправлена в версии 1.8, но обновление не представляется возможным, и я не могу легко найти точный код, который мне нужен, чтобы это исправить.
Поэтому вместо этого я просто заставил его опустить _deltaRound
функция.Я знаю, что это может вызвать другие проблемы, поэтому используйте на свой страх и риск.
приложение/код/ядро/Маг/Налог/Модель/Продажи/Итог/Цитата/Промежуточный итог.php:596
protected function _deltaRound($price, $rate, $direction, $type='regular')
{
return $price; // Workaround for 9.99 bug
if ($price) {
$rate = (string) $rate;
$type = $type . $direction;
app/code/core/Mage/Tax/Model/Sales/Total/Quote/Tax.php:724
protected function _deltaRound($price, $rate, $direction, $type='regular')
{
return $price; // 99 cents workaround
if ($price) {
$rate = (string) $rate;
$type = $type . $direction;
Другие советы
Ты используешь System > Configuration > Tax > Calculation Settings > Tax Calculation Method Based On > Total
? Если да, это может объяснить различные суммы на идентичные продукты, поскольку Magento распределяет округление между предметами. Использование общей строки не должно создавать разные суммы.