Модуль для OpenCart и ocStore

Курсы ЦБ РФ

  • OpenCart 4
Версия 1.0.1
Курсы ЦБ РФ

Курсы ЦБ РФ для 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 и т. д.); начальное значение курса не важно — его заменит первое обновление.

Установка

  1. Расширения → Установщик → «Загрузить» — файл cbr_rates_oc4.ocmod.zip (имя не менять: OpenCart 4 берёт из него код расширения) → «Установить».
  2. Расширения → Расширения, тип «Курсы валют» → «Установить» у «Курсы ЦБ РФ», затем «Редактировать»: включите статус и сохраните.
  3. Система → Настройки → Локализация → «Движок курсов валют» → «Курсы ЦБ РФ», сохраните. Сразу после сохранения курсы обновятся.

Ядро не изменяется, 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 сначала требует удалить компонент, а вместе с ним стираются настройки — наценку тогда нужно задать заново.

Характеристики

Совместимость и технические требования.

Совместимость
  • OpenCart 4
Версии PHP
  • PHP 8.2

Версии и обновления

Текущая версия и условия получения обновлений.

Текущая версия1.0.1

История изменений появится вместе со следующими версиями.

Отзывы покупателей

Подтверждённых отзывов пока нет.

Вопросы продавцу

Уточните совместимость и возможности до покупки. Не публикуйте пароли и доступы к магазину.

Пока нет вопросов. Уточните совместимость или возможности модуля.
43
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.