Skip to content
ms3Discounts
Правила скидок для MiniShop3. Без промокодов
  • MODX 3
  • PHP 8.2
  • miniShop3
  • Vue 3
  1. Компоненты
  2. ms3Discounts
  3. Рецепты
  4. Скидка после активации

Скидка после активации ​

Результат: правило хранится включённым, но скидка применяется только после программной активации. Так подключаются промокоды и купоны из внешних модулей.

Шаги ​

  1. Откройте Компоненты → Скидки и нажмите Новая скидка.
  2. Заполните Название, например «Промокод на 15%».
  3. В поле Применяется к выберите область акции или оставьте «Все товары».
  4. В поле Скидка введите размер, например 15.
  5. Раскройте Дополнительные условия и включите переключатель Только после активации.
  6. Нажмите Сохранить. Запомните ID правила из таблицы скидок.

Активация из кода ​

Внешний модуль активирует скидку через сервис ms3discounts_activator:

php
$activator = $modx->services->get('ms3discounts_activator');
$activator->activateDiscount(12, 'promocode');

Список активированных ID хранится в сессии покупателя. После активации измените состав корзины для пересчёта. Подробности и отключение: Интеграция.

Как это работает ​

Без активации правило не участвует в расчёте ни в корзине, ни на витрине. В панели Проверить такое правило отклоняется с причиной «Нужна активация». После вызова activateDiscount правило работает как обычное: учитывает условия, расписание и политики.

Если не работает ​

  • Скидка не применилась после активации: измените состав корзины или перейдите к оформлению для запуска пересчёта.
  • Активация слетает: список хранится в сессии. У нового посетителя или после очистки сессии активировать нужно заново.
  • Правило сработало без активации: проверьте, что переключатель Только после активации включён именно у этого правила.

См. также ​