Tak, od tego zacząłem poszukiwania.
W tych opcjach można ustawić tylko zaokrąglanie do dwóch miejsc po przecinku, a ja muszę ceny zaokrąglać do 50 groszy zawsze w górę czyli 15.946 ma zaokrąglić do 16.00 a nie 15.95.
Gdyby zaokrąglanie było do pełnych złotówek to też można ustawić aby ceny wyświetlały się bez miejsc po przecinku, natomiast w moim przypadku nie mogę tego zrobić.
Być może rozwiązaniem jest modyfikacja pliku tools.php z katalogu classes a dokładniej tych dwóch funkcji:
/**
* Return price converted
*
* @param float $price Product price
* @param object|array $currency Current currency object
* @param boolean $to_currency convert to currency or from currency to default currency
* @param Context $context
* @return float Price
*/
public static function convertPrice($price, $currency = null, $to_currency = true, Context $context = null)
{
static $default_currency = null;
if ($default_currency === null)
$default_currency = (int)Configuration::get('PS_CURRENCY_DEFAULT');
if (!$context)
$context = Context::getContext();
if ($currency === null)
$currency = $context->currency;
elseif (is_numeric($currency))
$currency = Currency::getCurrencyInstance($currency);
$c_id = (is_array($currency) ? $currency['id_currency'] : $currency->id);
$c_rate = (is_array($currency) ? $currency['conversion_rate'] : $currency->conversion_rate);
if ($c_id != $default_currency)
{
if ($to_currency)
$price *= $c_rate;
else
$price /= $c_rate;
}
return $price;
}
/**
*
* Convert amount from a currency to an other currency automatically
* @param float $amount
* @param Currency $currency_from if null we used the default currency
* @param Currency $currency_to if null we used the default currency
*/
public static function convertPriceFull($amount, Currency $currency_from = null, Currency $currency_to = null)
{
if ($currency_from === $currency_to)
return $amount;
if ($currency_from === null)
$currency_from = new Currency(Configuration::get('PS_CURRENCY_DEFAULT'));
if ($currency_to === null)
$currency_to = new Currency(Configuration::get('PS_CURRENCY_DEFAULT'));
if ($currency_from->id == Configuration::get('PS_CURRENCY_DEFAULT'))
$amount *= $currency_to->conversion_rate;
else
{
$conversion_rate = ($currency_from->conversion_rate == 0 ? 1 : $currency_from->conversion_rate);
// Convert amount to default currency (using the old currency rate)
$amount = Tools::ps_round($amount / $conversion_rate, 2);
// Convert to new currency
$amount *= $currency_to->conversion_rate;
}
return Tools::ps_round($amount, 2);
}