ms3FirstTimeBuyerDiscount - автоматическая скидка на первый заказ

Автоматическая скидка на первый заказ — без купонов и ручных действий. Повышает конверсию новых клиентов.
Скидка и настройки
- Скидка применяется только при 0 оплаченных заказов (статусы из ms3_status_for_stat MiniShop3)
- Тип скидки: процент (percent) или фиксированная сумма (fixed) — настройка в панели
- Включение/выключение одним флажком (ftb_enabled) — без правки кода
- Опция совмещения с другими скидками корзины (ftb_allow_combination)
- Сниппет [[!ms3ftbDiscountBanner]]
- Отображает заголовок, сумму экономии и подсказку «Заполните email или телефон — скидка применится автоматически»
- Для гостей: при изменении email/телефона — плашка скрывается, если по контакту уже есть заказы
- Лексикон для перевода заголовка, подписи и подсказки
- Событие ftbOnBeforeApply — отменить скидку (returnedValues['apply'] = false) или подменить базовую сумму (returnedValues['cost']) по условию (доставка, оплата, группа)
- Событие ftbOnApply — логирование, отправка в CRM/аналитику (user_id, discount_amount, cost_before, cost_after)
- Подмена сервиса в DI (ms3ftb_discount) — своя логика isEligible, calculateDiscount, getPaidOrdersCount
MiniShop3 при расчёте стоимости корзины вызывает событие msOnGetCartCost. Плагин компонента получает текущую сумму, проверяет: скидка включена и у пользователя 0 оплаченных заказов (по истории MiniShop3). Если да — пересчитывает стоимость с учётом процента или фиксированной скидки и возвращает новую сумму в MiniShop3. Итог в корзине и на оформлении обновляется автоматически; шаблоны менять не нужно.
Установка
- Установите пакет через Extras → Installer
- Включите плагин ms3FirstTimeBuyerDiscount и привяжите к событию msOnGetCartCost
- В Настройках (область ms3firsttimebuyerdiscount) задайте: ftb_enabled = да, ftb_discount_type = percent или fixed, ftb_discount_value = 10 или 500
- Опционально: в шаблоне страницы оформления добавьте [[!ms3ftbDiscountBanner]] для плашки
- MODX Revolution >= 3.0.0
- PHP >= 8.1.0
- MiniShop3 (события корзины, модель msOrder, настройка ms3_status_for_stat)
Компонент на модерации в modstore.pro. Стартовая цена действует ограниченное время.
Буду рад обратной связи и постараюсь оперативно реагировать на баги и предложения.
Поблагодарить автора
Отправить деньги
Комментарии: 4
Ох и названия у тебя — прям одно длинее другого
Я старался, но можно сделать сокращенно ms3FTBDiscount.
Что будет, когда выпущу ms3BOGOGenerator =) — BOGO-акции для MiniShop3.
Применяет акции «Купи N — получи M»: правила задаются в системной настройке (JSON), скидка учитывается в стоимости корзины через события msOnBeforeGetCartCost и msOnGetCartCost.
Что будет, когда выпущу ms3BOGOGenerator =) — BOGO-акции для MiniShop3.
Применяет акции «Купи N — получи M»: правила задаются в системной настройке (JSON), скидка учитывается в стоимости корзины через события msOnBeforeGetCartCost и msOnGetCartCost.
ms3Welcome, ms3FirstOrder, ms3NewBuyer, ms3WelcomeDiscount, ms3Debut
Так как уже выложил — оставлю так, далее будем сокращать названия.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.