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. Итог в корзине и на оформлении обновляется автоматически; шаблоны менять не нужно.

Установка
  1. Установите пакет через Extras → Installer
  2. Включите плагин ms3FirstTimeBuyerDiscount и привяжите к событию msOnGetCartCost
  3. В Настройках (область ms3firsttimebuyerdiscount) задайте: ftb_enabled = да, ftb_discount_type = percent или fixed, ftb_discount_value = 10 или 500
  4. Опционально: в шаблоне страницы оформления добавьте [[!ms3ftbDiscountBanner]] для плашки
Требования
  • MODX Revolution >= 3.0.0
  • PHP >= 8.1.0
  • MiniShop3 (события корзины, модель msOrder, настройка ms3_status_for_stat)
Документация: ms3firsttimebuyerdiscount

Компонент на модерации в modstore.pro. Стартовая цена действует ограниченное время.

Буду рад обратной связи и постараюсь оперативно реагировать на баги и предложения.
Иван Бочкарев
5 часов назад
modx.pro
63
+2
Поблагодарить автора Отправить деньги

Комментарии: 4

Николай Савин
49 минут назад
0
Ох и названия у тебя — прям одно длинее другого
    Иван Бочкарев
    37 минут назад
    0
    Я старался, но можно сделать сокращенно ms3FTBDiscount.

    Что будет, когда выпущу ms3BOGOGenerator =) — BOGO-акции для MiniShop3.

    Применяет акции «Купи N — получи M»: правила задаются в системной настройке (JSON), скидка учитывается в стоимости корзины через события msOnBeforeGetCartCost и msOnGetCartCost.
      Николай Савин
      30 минут назад
      0
      ms3Welcome, ms3FirstOrder, ms3NewBuyer, ms3WelcomeDiscount, ms3Debut
        Иван Бочкарев
        28 минут назад
        0
        Так как уже выложил — оставлю так, далее будем сокращать названия.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4