Конвертация валюты в Bitrix

23 октября 2011 г.

Иногда возникает необходимость чтобы цены товаров в интернет-магазине в панели администратора указывались не в родной валюте, а в иностранной, но вывод на сайте и расчет происходил в национальной валюте (например: товар закупается за рубежом в евро, а продается на территории страны в рублях и для удобства в панели администратора цена указывается в той валюте, за которую он был закуплен).

Перед кастомизацией компонента необходимо создать курсы валют по которым будет происходить конвертация валют. Заходим: Панель Администратора -> Настройки -> Валюты -> Курсы валют и устанавливаем необходимый нам курс (см. ниже).

Курсы валют Bitrix

После остановки курса приступим к дописыванию кода. Для этого открываем логику нашего компонента (к примеру catalog.section), предварительно скопировав его в пользовательскую директория «имя сайта»/bitrix/components/«ваша директория»/«имя компонента» и дописываем туда необходимый код после строчки

$arItem["PRICES"] = CIBlockPriceTools::GetItemPrices

наш код:

foreach($arItem["PRICES"] as $key1=>$PRICE)
{
foreach($PRICE as $key2=>$value)
{
if (!in_array($key2,Array('CAN_ACCESS','CAN_BUY','CURRENCY','ID','VALUE_NOVAT','VALUE_VAT',
'VATRATE_VALUE','DISCOUNT_VALUE_NOVAT','DISCOUNT_VALUE_VAT','DISCOUNT_VATRATE_VALUE',
'VALUE','DISCOUNT_VALUE')))
$ModPRICE[$key1][$key2]=CurrencyFormat(CCurrencyRates::ConvertCurrency(doubleval($value), $PRICE['CURRENCY'], "RUB"),"RUB");
elseif (in_array($key2,Array('VALUE_NOVAT','VALUE_VAT','VATRATE_VALUE','DISCOUNT_VALUE_NOVAT',
'DISCOUNT_VALUE_VAT','DISCOUNT_VATRATE_VALUE','VALUE','DISCOUNT_VALUE')))
$ModPRICE[$key1][$key2]=round(CCurrencyRates::ConvertCurrency(doubleval($value), $PRICE['CURRENCY'], "RUB"),-1);
elseif ($key2=='CURRENCY') $ModPRICE[$key1][$key2]="RUB";
else $ModPRICE[$key1][$key2]=$value; 
}
$ModPRICE[$key1]["PRINT_VALUE"]=CurrencyFormat($ModPRICE[$key1]["VALUE"],"RUB");
$ModPRICE[$key1]["PRINT_DISCOUNT_VALUE"]=CurrencyFormat($ModPRICE[$key1]["DISCOUNT_VALUE"],"RUB");
} 
$arItem["PRICES"]=$ModPRICE; 

Сохраняем и любуемся в пользовательской части сайта отображением валюты в удобном для посетителей виде.

Теги:
рубрика Сайтостроение