[msPromoCode] Скидочные промо-коды для miniShop2

- Полная AJAX обработка применения/удаления купона к заказу.
- Промо-код можно добавить не только с основной страницы бекенда. На странице товара также есть вкладка "Промо-коды", при добавлении кода из которой текущий товар сразу привяжется к этому промо-коду. Это очень удобно, когда надо добавить купон только для одного товара.
- Если к купону не привязано ниодного товара или раздела — купон действует на весь магазин.
- Скидку можно указать, как для купона в целом, так и для товара или раздела, привязанного к купону. При этом, чем индивидуальнее будет указана скидка, тем она первостепеннее будет восприниматься компонентом. К примеру, у нас есть купон со скидкой 20%, есть Раздел 1, привязанный к этому купону, со скидкой 80% и есть товар лежащий в Разделе 1, привязанный к этому купону, со скидкой 40%. Для данного товара скидка будет 40%.
- При отправке заказа, ровно как и при открытии страницы со сниппетом [[!mspcForm]], компонент проверяет, действителен ли ещё купон. Если нет, то сообщает об этом юзеру, удаляет купон из формы и обновляет цены. Это делает невозможным воспользоваться купоном:
а) который был отключён,
б) время действия которого завершилось,
в) количество которого закончилось.
- Если заказ был оформлен с промо-кодом, то в бекенде в модальном окне заказа вверху на первой вкладке появится промо-код и сумма скидки.
- JS на странице вызова сниппета [[!mspcForm]] вызывается в конце страницы для того, чтобы ваши колбеки miniShop2, которые могут пересекаться с используемыми в пакете, были клонированы и успешно выполнены.

Демо-сайт msPromoCode
Пакет можно купить в modstore.pro
Для промо-кода можно указать:
- Код купона. Также его можно сгенерировать встроенным инструментом, указав нечто вроде регулярки:
/([a-zA-Z0-9]{4-10})-([A-Z]{4})/ - Скидку. Как в процентах, так и фиксированную, которая будет применена для каждого товара привязанного к купону.
- Количество. Это позволит ограничить кол-во оформленных заказов с данным купоном. Необязательно.
- Дату начала и окончания. Необязательно.
- Привязать список товаров/разделов, которые будут участвовать в промо-акции. Если не указать — будет действовать на весь магазин.
Вся информация по установке и настройке компонента перенесена в документацию.
Комментарии: 87
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Ну, и конечно, к какому купону привязывается подарок- ни кто не знает. ))
Мне кажется, имеет смысл создавать доп. сущность в сессии, чтоб туда записывались цены до промокода, и потом восстанавливались оттуда, а не из таблиц бд… ну или не знаю я)
Причем по одним купонам — все нормально, а по этому ошибка из-за несовпадении сумм.
А что именно из msDiscount не хватает тут?
Плюсом неплохо было бы видеть в таблице купонов сколько раз их активировали ( многоразовые купоны) а еще лучше какие пользователи активировали и к какому заказу.
Указание определенных условий для конкретного многоразового промокода:
— количество товаров в заказе;
— стоимость заказа;
Пример: Скидка 400 грн при заказе двух товаров на общую сумму от 1500 грн.
Павел, протестируй, пожалуйста, этот момент, так как это дает потенциальную дыру для «особо умных» покупателей :)
А то получается, даже если купон уже был применен, то мы можем его повторно применять неограниченное количество раз.
Ну и в словарь добавить фразу «Этот купон уже был применен»
Оперативненько сработал :)
Единственное, цены на товары вне корзины будут такими же, как и без промо-кода, а в корзине цена будет со скидкой.
Пожалуйста, разъясните ситуацию: есть купон, но в качестве скидки указана абсолютная величина.
Как сделать так чтобы скидка применялась к общей сумме, а не к каждому продукту?
Спасибо!
Спасибо.
Пример:
Купон 1 — дата с 10 по 15 число — скидка 20%
Купон 1 — дата с 15 по 20 число — скидка 15 %
Нужно догадаться перезагружать страницу корзины, ну и товар добавился или нет — не видно.
Например на событие mspcOnSetProductDiscount или какое-то другое получать значение скидки, переопределять его и чтобы это всё работало :)
И второй момент — условия для использования купонов супер, но не хватает условия на товарную категорию.
Если выбран товар из одной категории, то скидка будет на доп товар из другой категории.
В остальном все супер. Спасибо за компонент.
выводится, только если промокод был применен для корзины с этим товаром…
Возможно ли связать Ваш компонент с PayAndSee от Володи?
Смысл таков что есть подписка на скрытые ресурсы и нужно при покупке подписки по промокоду давать скидку.
Подскажите, как создать купон так, что бы его могли применить только незарегистрированные пользователи или пользователи состоящие в группе Users?
Дальше можете под себя его кастомизировать…
Возник такой вопрос, есть ли в планах и техническая возможность добавить купоны, которые будут работать конкретные часы? Как я понимаю — это можно добавить в раздел «Условия» для промокода… Не подскажите, где эти условия обрабатываются в файлах?
Спасибо :)
«Счастливые часы», «Обед в шоколаднице» и т.п ситуации :)
А по вопросам:
Время можно брать с сервера (конкретно у нас оно верное, встречал сервера с кривыми настройками). Просто можно дать магазину возможность выбирать часовой пояс и ориентироваться исключительно на него.
Спасибо, буду так решать :)
— промо-код
— размер скидки
— время когда заканчивается его действие
Так же интересует, тоже самое, но уже в карточке товара.
«Один промокод = одно применение для конкретного юзера» — кастом.
Условия акции: при покупке товара1 и товара2 скидка по промокоду на сумму заказа, равная цене товара2.
Такую акцию можно реализовать с помощью данного компонента?
Если да — беру!
Или везде надо дописывать под себя?
Это 1087 строка.
Пример клиента — цены на сайте округляются до рублей, при использовании промокода появляются копейки. По итогу у некоторых заказов сумма корзины со скидкой и сумма стоимости товаров со скидкой отличаются на 1 копейку. Из-за этой разницы получаем ошибку при оплате в Тинькове.