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

Фронтенд

Фронтенд ms3PromoCode состоит из двух уровней:

УровеньОписание
Headless-ядроГлобальный объект window.ms3PromoCode — apply / remove / validate / current / события
UI-слойГотовая форма ввода, монтируется по [data-ms3-promocode="form"]

UI-слой — опциональный. Headless-ядро может работать без него — для собственных JS-интеграций (Vue/React/Svelte/любой SPA).

Что подключается

Управляется системной настройкой ms3promocode.frontend_assets_preset:

ПресетПодключаемые файлы
core_uiHeadless + UI + CSS (по умолчанию)
coreТолько headless — для собственных SPA-интеграций
noneНичего — шаблон сам подключает нужные файлы

Файлы пакета

assets/components/ms3promocode/
├── css/web/
│   └── ms3promocode.css            # стили UI-формы
├── js/web/
│   ├── core/
│   │   ├── ApiClient.js            # HTTP-обёртка
│   │   └── PromoCodeAPI.js         # маппинг на REST-эндпоинты
│   ├── ms3promocode.headless.js    # глобал window.ms3PromoCode
│   ├── ui/
│   │   └── PromoCodeUI.js          # класс готовой UI-формы
│   └── ms3promocode.js             # auto-mount UI на data-атрибуты

Разделы

ДокументОписание
Шаблон формыЧанк, data-атрибуты, override-папка
JS APIwindow.ms3PromoCode — методы и события

Сценарии использования

1. Готовая форма «из коробки»

Пресет core_ui (по умолчанию). В шаблоне корзины:

fenom
{'!ms3PromoCodeForm' | snippet}

Всё работает — форма видна, применение/снятие через клик мышью, цены пересчитываются.

2. Своя форма, наша логика

Пресет core_ui, в шаблоне свой HTML с data-ms3-promocode="form" и нужными data-ms3pc-state="empty/applied" блоками. UI-слой подхватит её автоматически.

См. Шаблон формы.

3. Полный headless

Пресет core — UI-слой не загружается. Вы пишете свой компонент (Vue/React) и используете window.ms3PromoCode.apply(...) напрямую.

См. JS API.