Неправильное округление в корзине
Цены в магазине задаются в уе, выводятся в рублях. с обновлением до shop script 6 все цены красиво округляются, но в корзине идет несоответствие:
итоговая цена за 3 единицы товара не соответствует цене за ед. товара * 3(итоговая цена даже за 1 единицу товара не всегда совпадает). я так понимаю, что сначала берется цена в у.е. - умножается на 3 - а потом только округляется? также и итоговая сумма заказа не равна сумме всех товаров:
выходит путаница в корзине, как это можно исправить? все цены выводятся через {shop_currency_html}
6 ответов
Пожалуйста, подскажите, какую тему дизайна вы используете? Если возможно, опубликуйте здесь код из шаблона cart.html, который отвечает за вывод строки в списке товаров корзины. Вот так этот фрагмент выглядит в теме дизайна «Дефолт 2.0» (из шаблона cart.html):
<div class="col w2 item-qty align-center nowrap"><span class="gray">×</span> <input type="text" name="quantity[{$item.id}]" value="{$item.quantity}" class="qty{if !empty($item.error)} error{/if}"></div>
<div class="col w1 item-remove"><a class="delete" href="#" title="[`Remove from cart`]"><i class="icon16 remove"></i></a></div>
<div class="col w3 align-center item-total nowrap">{shop_currency_html($item.full_price, true)}</div>
Код {shop_currency_html($item.full_price, true)} отображает округленную сумму заказанного количества товаров, которая рассчитывается сначала округлением, а затем умножением (а не наоборот). Возможно, в вашей теме дизайна значение в колонке "Цена" нужно считать как-то иначе, а не так, как прописано в вашем шаблоне сейчас.
Аналогичная проблема...
Проверил, у нас вывод из шаблона cart.html именно такой:
{shop_currency_html($item.full_price, true)}
Озвучу (повторю) свою проблему:
Итоговая цена за 10 единиц товара не соответствует цене за ед. товара * 10
Вводная: Цены у нас в евро, на витрине: в рублях
Сейчас магазин shop-script работает так.:
Вариант 1: берется цена в у.е. -> умножается на 10 , а потом переводится в рубли и только потом округляется до 0.01!
Вариант 2: берется цена в у.е. ->переводится в рубли,НЕ округляется, умножается на 10 , и только потом округляется до 0.01!
А должно быть так: берется цена в у.е,переводится в рубли, округляется до 0.01, затем умножается на 10
Поддержка проблему подтвердила, однако сроки устранения называть не берется.. Т.е когда поправят неизвестно.
В связи с этим вопрос: может быть как то можно эту проблему решить по другому ?
Округление до 0,01 это тоже самое что округления нет, поэтому и проблема.
Это интерфейсная ошибка настроек (пункт нужно было назвать без округления), из-за которой и происходит недопонимание.
Попробуйте поставить округление до 0,1 и увидите, что когда округление работает, то оно работает правильно.
При переводе цен в основную валюту: округлять до 0,1
Здесь ?
А как же быть с округлением до 0,01 ? В принципе пока не использовать ?
Проверил.
При переводе цен в основную валюту: округлять до 0,1 - да, так нормально работает..
А в поддержке об этом не знают )) Вы из разных ведомств что ли ?
Спасибо,что хоть тут адекватные специалисты..
А то,в поддержке один ответ: "Проблема есть, решим к кратчайшие сроки.." А чего конкретно делать- не говорят..
Обновился shop-script.
Исправили ошибку с округлением.
Округление до 0.01 теперь работает корректно. То ли совпало, то ли и прям так быстро стали решать проблемы..
Действительно : "решим в кратчайшие сроки". Молодцы в общем.