Skip to content
ms3PromoCode
ms3PromoCode
Промо-коды для MiniShop3 с гибкими правилами, генерацией по маске и интеграцией в позиции заказа
  • MODX 3
  • PHP 8.2
  • miniShop3
  1. Компоненты
  2. ms3PromoCode
  3. Системные настройки

Системные настройки ​

Все настройки — в пространстве имён ms3promocode (Система → Настройки).

Полный список ​

НастройкаПо умолчаниюОписание
ms3promocode.frontend_assets_presetcore_uiПресет подключаемых JS/CSS (см. ниже).
ms3promocode.cancel_statuses(пусто)CSV ID статусов заказа, при переходе в которые откатывается применение кода.
ms3promocode.lock_statuses(пусто)CSV ID статусов заказа, в которых вкладка «Промо-код» заблокирована для редактирования.

Подробно ​

ms3promocode.frontend_assets_preset ​

Выбирает, какие JS/CSS подключать на странице — через событие OnLoadWebDocument.

ЗначениеЧто подключается
core_uiHeadless-ядро + UI-слой + CSS. Готовая форма из коробки.
coreТолько headless-ядро. Для собственного JS-фронтенда поверх API.
noneНичего. Шаблон подключает нужные файлы сам.

Любое другое значение (например, опечатка core_ui_full) приведёт к режиму core: UI-слой не подключится, в логах ошибки не будет.

Подсказка

Для большинства магазинов подходит core_ui — форма работает без настройки. core — если у магазина свой JS-фронтенд (Vue/React/Svelte) и собственная форма поверх API. none — для полного контроля над подключением файлов.

ms3promocode.cancel_statuses ​

Когда заказ переходит в один из перечисленных здесь статусов, плагин:

  • Помечает запись в ms3_promo_code_usages как cancelled (ставит cancelled_at).
  • Декрементирует счётчик used_count у соответствующего промо-кода.

При обратном переходе из этих статусов в любой другой — действие откатывается:

  • cancelled_at снимается.
  • used_count инкрементируется.

Формат — CSV ID статусов. Для стандартной установки MiniShop3 это обычно 5 (статус «Отменён»):

5

Стандартные статусы MiniShop3 (ms3_order_statuses):

IDСтатус
1Черновик
2Новый
3Оплачен
4Отправлен
5Отменён

Если на магазине статусы переименованы или добавлены свои — укажите нужные ID.

Если настройка пуста — откат не происходит, использования не отменяются.

ms3promocode.lock_statuses ​

Когда заказ находится в одном из перечисленных статусов, вкладка «Промо-код» в карточке заказа:

  • Не позволяет применить новый код.
  • Не позволяет снять применённый код.
  • Показывает уведомление «Текущий статус заказа не позволяет менять промо-код.»

Формат — CSV ID статусов:

4,5

Это полезно для статусов «Отправлен», «Оплачен», «Отменён» (см. таблицу стандартных статусов выше) — когда состав/сумма заказа считается финальной.

Системные настройки MS3, которые используются ​

Помимо собственных, ms3PromoCode читает несколько настроек MiniShop3:

НастройкаГде используется
ms3_currency_symbolФорматирование сумм скидки в формах и сообщениях ошибок
ms3_currency_positionПрефикс/постфикс символа валюты (before/after)

Примеры ​

Минимальная конфигурация (магазин «из коробки») ​

ms3promocode.frontend_assets_preset = core_ui
ms3promocode.cancel_statuses = 5
ms3promocode.lock_statuses = 4,5

Headless-проект (свой JS поверх API) ​

ms3promocode.frontend_assets_preset = core

UI-слой (готовая форма) не загружается, доступен только глобальный window.ms3PromoCode.

Полный контроль над загрузкой ассетов ​

ms3promocode.frontend_assets_preset = none

В шаблоне страницы корзины подключите скрипты вручную:

html
<link rel="stylesheet" href="/assets/components/ms3promocode/css/web/ms3promocode.css">
<script src="/assets/components/ms3promocode/js/web/core/ApiClient.js"></script>
<script src="/assets/components/ms3promocode/js/web/core/PromoCodeAPI.js"></script>
<script src="/assets/components/ms3promocode/js/web/ms3promocode.headless.js"></script>
<script src="/assets/components/ms3promocode/js/web/ui/PromoCodeUI.js"></script>
<script src="/assets/components/ms3promocode/js/web/ms3promocode.js"></script>