Skip to content
  1. Компоненты
  2. msCurrency
  3. Начало работы

Быстрый старт

За 15–20 минут можно подключить мультивалютность: справочник валют, курсы и пересчёт цены на карточке.

Требования

ТребованиеВерсия
MODX Revolution3.0+
PHP8.2+
MiniShop3установлен
pdoTools3.x (для примеров Fenom)
VueToolsдля пункта меню «Валюты (msCurrency)»

Шаг 1: Установка пакета

  1. Подключите ModStore.
  2. Extras → Installer → Download ExtrasmsCurrencyDownloadInstall.
  3. Убедитесь, что установлен MiniShop3.
  4. Настройки → Очистить кэш.

Пакет: msCurrency на modstore.pro.

После установки

ЭлементОжидание
Сервис mscurrencyВ $modx->services / через msc_get_service()
СниппетыmsCurrency, msCurrencyPrice, msCurrencyPrices, msCurrencyCart, msCurrencyGetOrder, mscLexiconScript
Плагиныmscurrency_frontend, mscurrency_product_price, mscurrency_cart_display и др. — включены
Таблицыmsc_currency, msc_providers, msc_provider_links
Базовая валютаRUB (если справочник пуст — создаётся резолвером)
Меню MS3Валюты (msCurrency)

Шаг 2: Курсы валют

  1. MiniShop3 → Валюты (msCurrency).
  2. На вкладке Валюты проверьте RUB (базовая), USD, EUR — при необходимости включите Активна.
  3. На вкладке Поставщики курсов включите ЦБ РФ (по умолчанию уже активен).
  4. Нажмите Синхронизировать курсы.

Отдельный API-ключ для ЦБ РФ не нужен — используются открытые XML-котировки ЦБ. Подробнее: Управление валютами.

Шаг 3: Системные настройки

Настройки → Системные настройки, фильтр mscurrency.

Для первого запуска достаточно значений по умолчанию:

КлючЗначение по умолчаниюСмысл
mscurrency_selected_currency_default0Валюта при первом заходе — базовая
mscurrency_order_price_modebaseКорзина и заказ в базовой валюте. Переключатель только на витрине
mscurrency_default_providercbr_ruCron обновляет через ЦБ РФ

Если нужно, чтобы корзина и заказ шли в валюте покупателя, поставьте mscurrency_order_price_mode = user. Полный список ключей: Системные настройки.

Шаг 4: Переключатель в шаблоне

В шапке сайта или на карточке товара (некэшированно):

fenom
{'!msCurrency' | snippet : ['tpl' => 'tpl.msCurrency']}
modx
[[!msCurrency? &tpl=`tpl.msCurrency`]]

Чанк tpl.msCurrency идёт в пакете. Для своего дизайна скопируйте чанк и укажите своё имя в tpl.

Для отладки вызовите сниппет с пустым tpl. Он выведет таблицу плейсхолдеров msc.*:

fenom
{'!msCurrency' | snippet : ['tpl' => '']}
modx
[[!msCurrency? &tpl=``]]

Шаг 5: Цена на карточке товара

На шаблоне msProduct замените вывод [[+price]] на конвертацию:

fenom
<span class="product-price">
  {'!msCurrencyPrice' | snippet : ['price' => $price, 'pid' => $_modx->resource.id]}
</span>
modx
<span class="product-price">
  [[!msCurrencyPrice?
    &price=`[[!+price]]`
    &pid=`[[*id]]`
  ]]
</span>

Плагин mscurrency_product_price на событии msOnGetProductPrice подставляет цену в выбранной валюте. То же работает для плейсхолдеров MS3, если вы используете стандартные чанки товара без отдельного сниппета.

Шаг 6: Проверка

ДействиеОжидание
Открыть карточку товараВиден переключатель валют
Выбрать USD / EURЦена пересчитывается
Плейсхолдер msc.codeКод выбранной валюты ([[!+msc.code]] / {$_modx->getPlaceholder('msc.code')})
Добавить в корзинуПри base — сумма в базовой валюте. При user — в выбранной
Оформить заказВ properties заказа есть блок msc с кодом валюты

Дальше

  • Интеграция — корзина, заказ, цена товара в своей валюте, платёжные системы
  • Сниппет msCurrencyPrices — таблица цен во всех валютах
  • mFilter — фильтр каталога по цене в валюте пользователя
  • FAQ — если курсы не обновляются или админка не открывается