Skip to content
ms3PromoCode
Промо-коды для MiniShop3 с гибкими правилами, генерацией по маске и интеграцией в позиции заказа
  1. Компоненты
  2. ms3PromoCode
  3. История версий
  4. 1.0.0-beta1

1.0.0-beta1

Дата релиза: 21 апреля 2026

Первый публичный релиз ms3PromoCode — промо-коды для MiniShop3.

Скидки

  • Два типа: процент или фиксированная сумма.
  • Две области применения: вся корзина или только подпадающие под правила позиции.
  • Учёт скидки в позициях — цена со скидкой записывается в msOrderProduct.price. Чек 54-ФЗ, email-уведомления и личный кабинет покупателя показывают корректные суммы автоматически без доработок шаблонов.
  • Точная сумма скидки: копейки от пропорционального распределения автоматически компенсируются — итог совпадает с заявленной суммой до рубля.

Правила таргетинга

  • Включить / исключить конкретные товары.
  • Категории, бренды.
  • Универсальный фильтр по любому полю modx_ms3_products с операторами =, !=, <, <=, >, >=, IN, NOT IN, BETWEEN, LIKE, CONTAINS.
  • Фильтр по опциям товара (цвет, размер, материал и т.п.).
  • Несколько секций объединяются по «И», значения внутри секции — по «ИЛИ».

Жизненный цикл

  • Период действия: даты начала и окончания.
  • Общий лимит применений.
  • Минимальная сумма заказа для применения.
  • Включён / выключен.
  • Автоматические статусы: scheduled, expired, exhausted, disabled.
  • Маскировка disabled → not_found для покупателя — факт существования отключённого кода не раскрывается.

Генерация кодов

  • Ручное создание одного кода.
  • Пакетная генерация по маске: # цифра, ? буква, * оба, литералы.
  • Безошибочный набор символов (без 0/O, 1/I/L).
  • Защита от коллизий, живое превью в админке.

Админ-UI на Vue 3 + PrimeVue 4

  • Список промо-кодов с серверной пагинацией, сортировкой, фильтрами, групповыми действиями.
  • Редактор кода с тремя вкладками: основные параметры, правила, статистика.
  • Раздел «Аналитика»: KPI и детальный журнал использований с фильтрами.
  • Вкладка «Промо-код» прямо в карточке заказа с автопересчётом при изменении состава.

Фронтенд

  • Сниппет ms3PromoCodeForm с SSR-hydration — нет «мигания» формы при загрузке страницы.
  • Готовый чанк ms3promocode_form, переопределяемый через &tpl.
  • Headless JS-API window.ms3PromoCode — apply, remove, validate, current, события.
  • Опциональный UI-слой, монтируется по [data-ms3-promocode="form"].
  • Автоматический перерасчёт корзины после применения / снятия (с возможностью отключения для AJAX-карт).
  • Override-папка assets/components/ms3promocode-overrides/ для замены любых ассетов без правок пакета.

Интеграция с MS3

  • Подписка на msOnAddToCart / msOnChangeInCart / msOnRemoveFromCart — пересчёт скидки при любом изменении корзины.
  • Подписка на msOnCreateOrder — фиксация применения в ms3_promo_code_usages.
  • Подписка на msOnChangeOrderStatus — автоматический откат / восстановление при переходе в отменённые статусы.
  • Поддержка ручного редактирования заказа в Vue-админке MS3 через JS-перехватчик fetch (обходное решение для отсутствующих событий — см. MiniShop3#207).
  • Запись ms3promocode_auto_remove в msOrderLog при автоматическом снятии кода.

Web API

МетодПутьНазначение
POST/api/v1/promo/applyПрименить код к корзине
POST/api/v1/promo/removeСнять применённый код
POST/api/v1/promo/validateПроверить код без записи
GET/api/v1/promo/currentПолучить текущий применённый код

Авторизация / CORS / rate limiting наследуются от MS3-роутера.

Manager API

Собственный коннектор для админки с процессорами:

  • Mgr/PromoCode/{GetList,Get,Create,Update,Remove,Generate,PreviewMask}.
  • Mgr/Order/{ApplyPromo,RemovePromo,GetPromo,Resync}.
  • Helpers для конструктора правил: Mgr/Product/Search, Mgr/Category/Search, Mgr/Vendor/GetList, Mgr/ProductData/GetFields, Mgr/ProductOption/{GetKeys,GetValues}.
  • Mgr/Analytics/{GetKpi,GetLog}.

Установка

  • Phinx-миграции применяются автоматически при установке/обновлении.
  • При удалении пакета таблицы остаются — для сохранения истории.
  • Анонимные метрики установки (PHP/MODX/MS3/DB версии, OS, web-сервер) отправляются один раз на metrics.modx.pro для улучшения совместимости. Без персональных данных, домена и IP.

Системные требования

  • PHP 8.2+
  • MODX Revolution 3.0+
  • MiniShop3 1.10+
  • pdoTools (для Fenom-чанков фронтенд-формы)
  • VueTools (для Vue-админки)