Иногда хочется вывести пользователю цену на продукт в разных валютах. На равне с рублём, показать рядышком ещё и автоматически конвертированную цену в евро или долларах.
Это не реализовано в стандартной сборке, но в классе currency есть встроенная функция convert:
public function convert($value, $from, $to)
Она используется, когда вы выбираете сменить валюту в шапке сайта на Opencart. Конвертация из рублей в доллары происходит так:
$this->currency->convert($product_info['price'], 'RUS', 'USD')
Для примера реализуем вывод цены в евро (аналогично для долларов) на странице карточки товара (по умолчанию используем валюту рубли). Не забудьте, что в backend'е Opencart надо добавить и включить валюту доллара.
catalog/view/theme/default/template/product/product.tpl (около 38-й строки):
<span><?php echo $price; ?></span>
после добавляем строчку
<span id="price_2"><?php echo $price_2; ?></span>
Дальше в catalog/controller/product/product.tpl (строка 227):
if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
после добавляем строчку
$this->data['price_2'] = "(€ ".round($this->currency->convert($product_info['price'], 'RUB', 'EUR'), '2').")";
} else {
$this->data['price'] = false;
}