Работа с валютами

Модуль расширенного управления меню для битрикс

Октябрь 25, 2019

Теги: Магазин

Работа с валютам - получение списка, валюты заказа, корзины, конвертация и пр.

Получение массива валют, включая языковые параметры для текущего языка:


$currencyList = \Bitrix\Currency\CurrencyManager::getCurrencyList();

/*
Array
(
    [RUB] => RUB (Рубль)
    [USD] => USD (Доллар США)
    [EUR] => EUR (Евро)
)
*/

Также можно получить список валют и их курсов простыми методами ORM (а языковые параметры получаются при помощи CurrencyLangTable):


$rsCurrency = \Bitrix\Currency\CurrencyTable::getList();

while(
$currency=$rsCurrency->fetch())
{
    
print_r($currency);
}
/*
Array
(
    [CURRENCY] => EUR
    [AMOUNT_CNT] => 1
    [AMOUNT] => 38.9800
    [SORT] => 300
    [DATE_UPDATE] => Bitrix\Main\Type\DateTime Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2013-07-02 23:39:30.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [NUMCODE] => 
    [BASE] => N
    [CREATED_BY] => 
    [DATE_CREATE] => 
    [MODIFIED_BY] => 
    [CURRENT_BASE_RATE] => 38.980000000000
)
Array
(
    [CURRENCY] => RUB
    [AMOUNT_CNT] => 1
    [AMOUNT] => 1.0000
    [SORT] => 100
    [DATE_UPDATE] => Bitrix\Main\Type\DateTime Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2013-07-02 23:39:30.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [NUMCODE] => 
    [BASE] => Y
    [CREATED_BY] => 
    [DATE_CREATE] => 
    [MODIFIED_BY] => 
    [CURRENT_BASE_RATE] => 1.000000000000
)
Array
(
    [CURRENCY] => USD
    [AMOUNT_CNT] => 1
    [AMOUNT] => 30.3300
    [SORT] => 200
    [DATE_UPDATE] => Bitrix\Main\Type\DateTime Object
        (
            [value:protected] => DateTime Object
                (
                    [date] => 2013-07-02 23:39:30.000000
                    [timezone_type] => 3
                    [timezone] => Europe/Moscow
                )

        )

    [NUMCODE] => 
    [BASE] => N
    [CREATED_BY] => 
    [DATE_CREATE] => 
    [MODIFIED_BY] => 
    [CURRENT_BASE_RATE] => 30.330000000000
)
*/

Метод ORM для получения таблицы курсов валют:


$rsCurrencyRate = \Bitrix\Currency\CurrencyRateTable::getList();

while(
$currencyRate=$rsCurrencyRate->fetch())
{
    
print_r($currencyRate);
}

Получение идентификатора базовой валюты:


$baseCurrency = \Bitrix\Currency\CurrencyManager::getBaseCurrency(); // string(3) "RUB"

Получение валюты заказа из объекта заказа:


$currency $order->getCurrency();

Получение валюты позиции корзины из объекта позиции корзины:


$currency $basketItem->getCurrency();

Очистка кеша валют:


\Bitrix\Currency\CurrencyManager::clearCurrencyCache('ru');

← Переход к списку