Добавление новых валют на странице списков продуктов



Мой клиент хочет отобразить 3 разных формата валюты, которые должны отображаться на странице списка продуктов. Вот снимок экрана для справки.
Currency

Вы видите, что $23.00 на правой стороне? Мой клиент хочет, чтобы значения в евро и индийских рупиях отображались прямо под этим значением в долларах США. Как это сделать. Я взял доллар США в качестве валюты по умолчанию, а индийские рупии и евро в качестве разрешенных валют и импортировал стандартные курсы конвертации с помощью webserviceex. Пожалуйста, помогите мне выбраться.... Я не понимаю, куда мне следует добавить следующую строку кодов...

$baseCode = Mage::app()->getBaseCurrencyCode();      
    $allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies(); 
    $rates = Mage::getModel('directory/currency')->getCurrencyRates($baseCode, array_values($allowedCurrencies));
    var_dump($rates);

Помоги мне

Author: brainReader, 2014-06-16

1 answers

Если у вас есть только простые продукты, это должно быть легко.
Просто добавьте следующий код в app/design/frontend/{package}/{theme}/catalog/product/view/type/default.phtml прямо под $this->getPriceHtml($_product).

<?php
//remember the current currency
$currentCurrency = Mage::app()->getStore()->getCurrentCurrencyCode();
//remember the current currency object
$currentCurrencyObject = Mage::app()->getStore()->getCurrentCurrency();
//get allowed currencies
$allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies();
foreach ($allowedCurrencies as $currency) {
    //skip the current currency
    if ($currency != $currentCurrency) {
        //load the currency object
        $currObject = Mage::getModel('directory/currency')->load($currency);
        //change the store currency
        Mage::app()->getStore()->setCurrentCurrencyCode($currency);
        Mage::app()->getStore()->setCurrentCurrency($currObject);
        //show the price in the new currency
        echo $this->getPriceHtml($_product, false, '-'.$currency);
    }
}
//reset the store currency
Mage::app()->getStore()->setCurrentCurrencyCode($currentCurrency);
Mage::app()->getStore()->setCurrentCurrency($currentCurrencyObject);
?>

Вам также может потребоваться добавить то же самое в app/design/frontend/{package}/{theme}/template/catalog/product/view/price_clone.phtml, но изменить echo $this->getPriceHtml($_product, true, '-'.$currency); на echo $this->getPriceHtml($_product, true, '-clone-'.$currency);

Если у вас есть пользовательские опции, настраиваемые или упакованные продукты, это может не сработать. Скорее всего, вам понадобится пользовательский javascript, чтобы изменить цены при изменении параметров.

[ РЕДАКТИРОВАТЬ]
Ответ выше относится к продукту просмотреть страницу. Но это должно работать и для страницы списка продуктов. Просто добавьте тот же код после того, как будет показана цена. Вы также можете оптимизировать это, чтобы вам не приходилось загружать валюты каждый раз, когда вы показываете продукт в списке.

 1
Author: Marius, 2014-06-16 07:34:47