frontend_products и shopRounding

1

Вопрос к разработчикам webasyst.

Меняем цены через хук frontend_products.
При вызове таких стандартных методов как shopCart->total или shopCart->items внутри соотв. моделей делаются округления, согласно настроек.
Одно но.
В shopRounding::roundSkus($skus) округление цены обёрнуто в наличие условия $convert_currency.

$convert_currency = $product_currency != $frontend_currency && !empty($curs[$frontend_currency]['rounding']) && !empty($curs[$product_currency]);
<skip>
if ($convert_currency) {
    $sku[$k] = $sku['frontend_'.$k] = shopRounding::roundCurrency($sku['frontend_'.$k], $frontend_currency);
}


При ситуации разных валют товара и витрины - округление есть. Всё ок.
При ситуации одинаковой валюты товара и витрины нужно самому в обработчике хука предварительно округлять цену.
Чтобы не думать об этом, может исправить на однозначное округление?

Это касается именно "online-манипуляций" ценами - при сохранении продукта в админке( и пр.стандартные манипуляции) всё округляется и так.


P.S. пока писал, заметил
в shopCartItemsModel->getByCode проверка rounding_enabled есть
$rounding_enabled && shopRounding::roundSkus($skus, $products);
а в shopCartItemsModel->total нет, просто идет вызов shopRounding::roundSkus($skus)





3 комментария

  • +1
    Михаил Морозов  (welldi) Михаил Морозов (welldi) 13 сентября 2016 09:23 #

    В раздел ошибок стоит перенести сие ;).

    • +1
      Николай Иванов Николай Иванов 13 сентября 2016 10:00 #

      На усмотрение модераторов.
      Если это действительно ошибка - то пусть перенесут в ошибки.

    • +1
      Николай Иванов Николай Иванов 13 сентября 2016 10:55 #

      При валюте товара равной основной валюте магазина округлений не производится. Почему то раньше этот факт моим мозгом игнорировался. С такой точки зрения логика использования $convert_currency понятна. Иначе бы цена в бэкенде отличалась от цены на витрине для основной валюты. Что конечно же было бы неправильно при ценообразовании как у "эльдорадо".
      С другой стороны, если, например, человек сознательно выставил у RUB округление до 10-ки, то логично было бы ожидать, что цены везде будут автоматически округлятся(при сохранении товара, при импорте и т.д.)?

      Шел третий день...код плагина из изначального монстра с костылями и непонятками, стал компактным и понятным даже мне, его разработчику -)

      Добавить комментарий

      Чтобы добавить комментарий, зарегистрируйтесь или войдите