Автоматическое обновление курсов валют с НБРБ с домножением на коэффициент
Иногда возникает ситуация, при которой необходимо хранить цены в каталоге в одной валюте, например в российских рублях (RUB), а отображать на сайте - в другой валюте, к примеру, в белорусских рублях (BYN).
В Битриксе есть встроенная система курсов валют, которая может хранить курсы и автоматически пересчитывать цены на товары в каталоге. Но у данного инструмента есть несколько недостатков: курсы берутся в Центробанка России, нет штатного автоматического обновления по расписанию, нельзя домножать на коэффициент.
Конечно, есть модули, которые могут частично решить данный вопрос, но можно сделать гораздо проще, написав одну несложную функцию в init.php и повесив ее выполнение на агента. В этом случае можно получать курсы валют откуда угодно, и регламент обновления курсов можно поставить любой.
Алгоритм действий:
- Вводим константу - коэффициент домножения курса
- Подключаемся по API к НБРБ и в соответствии с требованиями задачи получаем данные в JSON формате
- Конвертируем JSON в массив и используем данные из него
- Домножаем полученные значения на коэффициент и округляем до четвертого знака после запятой включительно
- Обновляем нужные курсы на сайте с помощью метода Update класса CCurrency
- Сбрасываем кэш сайта, чтобы пересчет каталога по новому курсу стал доступен посетителям сайта
Таким образом на проекте можно получить постоянное обновление цен в каталоге с привязкой к курсу валют и домножением на коэффициент. Трудоемкость решения задачи - около 2 часов.