Курсы ЦБ РФ
Курсы ЦБ РФ для OpenCart 4
Расширение типа «Курсы валют» для OpenCart 4.1.0.4. Берёт ежедневные официальные курсы Банка России и пересчитывает значения всех валют магазина относительно основной валюты — рубля или любой другой из списка ЦБ РФ. Для магазинов, которые показывают цены в нескольких валютах или ведут учёт в рублях: штатные источники курсов OpenCart (Европейский центробанк, fixer.io) курс рубля не публикуют.
Что умеет
- Загружает ежедневный XML Банка России (
www.cbr.ru/scripts/XML_daily.asp) с учётом номинала каждой валюты. - Пересчитывает значения валют через рубль при любой основной валюте магазина: RUB, USD, EUR, CNY и другие из списка ЦБ РФ. Валюты, которых нет у Банка России, не трогает.
- Наценка в процентах к курсу каждой валюты, кроме основной (дробные и отрицательные значения допустимы; по умолчанию 0 — официальные курсы).
- Обновление по заданию планировщика «currency», кнопкой «Обновить курсы» в списке валют, кнопкой «Обновить сейчас» на странице расширения, при добавлении и изменении валюты и при сохранении настроек.
- Панель не ждёт сайт Банка России: OpenCart 4.1.0.4 вызывает движок курсов после сохранения любых настроек, поэтому по таким событиям курсы загружаются не чаще раза в час и не дольше 5 секунд, а в остальное время значения пересчитываются по последним загруженным курсам.
- При смене основной валюты в настройках магазина сразу пересчитывает все курсы от новой валюты, даже когда сайт Банка России недоступен, — цены на витрине не расходятся (в OpenCart 4.1.0.4 без модуля курсы после такой смены один раз считались бы от прежней валюты).
- Блок «Последнее обновление» на странице расширения: время, дата курсов, перечень обновлённых валют или текст ошибки.
- Ошибки записываются в журнал магазина строкой
CBR rates: …без повторов от фоновых попыток; запись успешных загрузок включается отдельным переключателем.
Как считаются курсы
OpenCart хранит у каждой валюты «значение» — сколько единиц этой валюты даёт одна единица основной валюты магазина. Расширение делит рублёвый курс основной валюты на рублёвый курс данной валюты и умножает на (1 + наценка / 100). Основная валюта всегда получает значение 1.
Пример: основная валюта RUB, доллар по Банку России 80 ₽, наценка 0 — значение USD = 0,0125 (товар за 8000 ₽ стоит 100 $). При наценке 2 % значение USD = 0,01275 (102 $). Если основная валюта USD, значение RUB = 80 (при наценке 2 % — 81,6).
Настройка
Расширения → Расширения → Курсы валют → Курсы ЦБ РФ → Редактировать. Три настройки: статус, наценка в процентах и запись успешных обновлений в журнал. На той же странице — блок «Последнее обновление», кнопка «Обновить сейчас», ссылка на список валют и адрес задания планировщика. Вкладка «Руководство» открывает полное руководство пользователя внутри панели.
Коды валют в Система → Локализация → Валюты должны совпадать с кодами Банка России (USD, EUR, CNY и т. д.); начальное значение курса не важно — его заменит первое обновление.
Установка
- Расширения → Установщик → «Загрузить» — файл
cbr_rates_oc4.ocmod.zip(имя не менять: OpenCart 4 берёт из него код расширения) → «Установить». - Расширения → Расширения, тип «Курсы валют» → «Установить» у «Курсы ЦБ РФ», затем «Редактировать»: включите статус и сохраните.
- Система → Настройки → Локализация → «Движок курсов валют» → «Курсы ЦБ РФ», сохраните. Сразу после сохранения курсы обновятся.
Ядро не изменяется, OCMOD и обновление модификаторов не требуются. Права на страницу расширения получает группа пользователя, который нажал «Установить»; другим группам их выдают в Система → Пользователи → Группы пользователей.
Для ежедневного обновления планировщик хостинга должен раз в час или чаще открывать адрес магазина index.php?route=cron/cron; задание «currency» включено в OpenCart по умолчанию.
Входит в состав OCM Store
Расширение входит в бесплатную русскую сборку OpenCart 4.1.0.4 OCM Store: там оно уже установлено и выбрано движком курсов сразу после установки магазина. Отдельный пакет нужен для обычного OpenCart 4.1.0.4.
Обновление
OpenCart 4.1.0.4 не даёт удалить пакет в Установщике, пока установлен компонент, а удаление компонента стирает его настройки. Поэтому есть два способа:
- С сохранением настроек (рекомендуется): распакуйте архив и загрузите его содержимое (
install.json, папкиadmin,catalog,system) по FTP в папкуextension/cbr_rates_oc4/магазина с заменой файлов. Больше ничего делать не нужно; в Установщике у пакета останется прежний номер версии — на работу это не влияет. - Через Установщик: Расширения → Расширения → Курсы валют → «Удалить» у «Курсы ЦБ РФ» (настройки сбросятся), затем в Установщике у пакета «Деинсталлировать» и «Удалить», загрузите и установите новый архив, снова установите компонент и задайте наценку. Движок курсов в настройках магазина остаётся выбранным.
Удаление
Сначала выберите другой движок (или пустое значение) в Система → Настройки → Локализация. Затем Расширения → Расширения → Курсы валют → «Удалить» у «Курсы ЦБ РФ» и Расширения → Установщик → удалить пакет. Настройки и событие расширения удаляются; значения валют остаются такими, какими были на момент последнего обновления.
Совместимость и ограничения
- OpenCart 4.1.0.4, PHP 8.2, тема Default — проверено. Нужны расширения PHP cURL и DOM.
- OpenCart 4.0.x, ocStore 4 и сторонние сборки не проверялись.
- Курсы на дату, история курсов, другие источники (НБУ, НБРБ), округление до заданного шага и обновление чаще суток в этой версии не поддерживаются.
- Настройки общие для всех магазинов мультимагазина, как у штатных движков курсов.
Список изменений
1.0.1 — сохранение настроек в панели больше не ждёт сайт Банка России: по событиям OpenCart курсы загружаются не чаще раза в час с коротким ожиданием, в остальное время и при недоступности сайта значения пересчитываются по последним загруженным курсам; новая наценка применяется сразу после сохранения; повторные ошибки не засоряют журнал; в руководстве — раздел об обновлении модуля.
1.0.0 — первый выпуск: расширение типа «Курсы валют», пересчёт через рубль при любой основной валюте, наценка, обновление по планировщику и кнопкам, пересчёт при смене основной валюты, блок «Последнее обновление», журнал, руководство во вкладке.
FAQ Вопросы и Ответы
Основная валюта магазина — доллар или евро, а не рубль. Модуль подойдёт?
Да. Курс каждой валюты берётся к рублю, а значения считаются относительно основной валюты магазина: основная валюта всегда равна 1, остальные пересчитываются через рубль. Основная валюта должна быть в списке Банка России.
Как часто обновляются курсы?
Автоматически раз в сутки заданием планировщика «currency» (планировщик хостинга должен вызывать `index.php?route=cron/cron`), а также при добавлении и изменении валюты и при сохранении настроек (по таким событиям — не чаще раза в час, без ожидания в панели), кнопкой «Обновить курсы» в списке валют и кнопкой «Обновить сейчас» на странице расширения.
Что делает наценка?
Прибавляет указанный процент к курсу каждой валюты, кроме основной: покупатель, который платит в иностранной валюте, платит на этот процент больше официального курса. 0 — официальные курсы, допустимы дробные и отрицательные значения.
Что будет, если сайт Банка России недоступен?
Цены не сломаются: значения валют останутся по последним загруженным курсам, новая валюта и смена основной валюты посчитаются по ним же, а страницы панели не будут ждать ответа. Ошибка запишется в журнал магазина строкой «CBR rates: …» (без повторов) и покажется в блоке «Последнее обновление».
Как обновить модуль, не потеряв настройки?
Загрузить файлы новой версии по FTP поверх папки `extension/cbr_rates_oc4/`. Через Установщик OpenCart 4.1.0.4 сначала требует удалить компонент, а вместе с ним стираются настройки — наценку тогда нужно задать заново.
Характеристики
Совместимость и технические требования.
Версии и обновления
Текущая версия и условия получения обновлений.
История изменений появится вместе со следующими версиями.
Отзывы покупателей
Подтверждённых отзывов пока нет.
Вопросы продавцу
Уточните совместимость и возможности до покупки. Не публикуйте пароли и доступы к магазину.