
- MODX 3
- PHP 8.2
- miniShop3


Установите пакет через Extras → Installer. С 1.1.0-beta1 Package Manager сам откажет на несовместимых версиях; для уверенности обновите зависимости заранее:
| Пакет | Минимум | Для чего нужен |
|---|---|---|
| PHP | 8.2 | Весь backend компонента |
| MODX | 3.0.0 | Ядро |
| MiniShop3 | 1.13.0-beta1 | Response envelope + RateLimitStoreFactory в MS3 Router |
| pdoTools | 3.0.0 | FQN ModxPro\PdoTools\Fetch в сниппете ms3PromoCodeForm |
| VueTools | 1.2.0 | @vuetools/useTheme + ключ vuetools/theme в Import Map |
Phinx-миграции отработают автоматически и создадут таблицы modx_ms3_promo_codes и modx_ms3_promo_code_usages.

WELCOME10.Приветственная скидка 10%.percent. Подпись соседнего поля зависит от типа: Процент для percent, Сумма для fixed.10.all (на всю корзину).
Подробнее об опциях — Управление кодами.
В шаблоне страницы корзины (например, tpl.msCart или собственный чанк) добавьте вызов сниппета:
{'!ms3PromoCodeForm' | snippet}Сниппет выведет форму с полем ввода и кнопкой «Применить». Стили подключит системная настройка ms3promocode.frontend_assets_preset.
WELCOME10 и нажмите «Применить». Цены позиций уменьшатся на 10%, итог пересчитается.
Чтобы применение откатывалось при переходе заказа в «Отменён» (счётчик used_count уменьшится на 1):
ms3promocode.ms3promocode.cancel_statuses.5 («Отменён»); если на магазине добавлены свои — впишите нужные ID.При обратном переходе из этих статусов применение восстанавливается автоматически.
Чтобы менеджер не мог применить или снять код у заказа в определённых статусах:
ms3promocode.lock_statuses.4,5 (в стандартной MiniShop3: 4 — «Отправлен», 5 — «Отменён»).В этих статусах вкладка Промо-код в карточке заказа работает только на просмотр.
APPLE15, тип percent, размер 15.matching (только подпадающие позиции).Скидка распределится пропорционально по позициям этого бренда.
BIG500, тип fixed, размер 500.5000.Если корзина меньше 5000 ₽, покупатель увидит сообщение «Сумма заказа меньше требуемого минимума (5 000 ₽)».
WINTER-####-??.1000.WINTER-4729-KM.