Pull to refresh

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

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

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

image

После остановки курса приступим к дописыванию кода. Для этого открываем логику нашего компонента (к примеру 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;


Сохраняем и любуемся в пользовательской части сайта отображением валюты в удобном для посетителей виде.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.