Централизованно округлить цены можно установкой формата округления для Shop_Controller. В файл bootstrap.php, в корне, добавьте для округления до десятых:
Shop_Controller::instance()->floatFormat("%.1f");
До целых:
Shop_Controller::instance()->floatFormat("%.0f");
Округление до тысяч, сотен, десятков
Чтобы цена товара в интернет-магазине не была отпугивающей, иногда нужно округлить её до целых десятков. Округление осуществляется с помощью хука на событие
Shop_Item_Controller.onAfterCalculatePrice, вносимого в bootstrap.php
class Shop_Price_Observer
{
static public function round($price)
{
/*
-3 — до тысяч
-2 — до сотен
-1 — до десятков
*/
return round($price, -3);
}
static public function onAfterCalculatePrice($object, $args)
{
$aPrice = $object->getAPrice();
$aPrice['price_discount'] = self::round($aPrice['price_discount']);
$object->setAPrice($aPrice);
}
}
Core_Event::attach('Shop_Item_Controller.onAfterCalculatePrice', array('Shop_Price_Observer', 'onAfterCalculatePrice'));