Вопрос

Мы столкнулись со странной ошибкой вычислений в нашей настройке Magento.

Magento 1.7.0.2 с PHP 5.4

calculations

На изображении выше вы видите два практически одинаковых продукта.Однако верхний продукт имеет общее количество строк 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 распределяет округление между предметами. Использование общей строки не должно создавать разные суммы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top