msDiscount 1.1 + MS2.1.11 = Одноразовые скидочные купоны
Наступило лето, народ разъехался по отпускам и продажи в магазинах серьёзно просели. Если, конечно, вы не торгуете кремом для загара и холодным пивом — в этом случае у вас полный порядок.
Подстегнуть продажи помогут одноразовые скидочные купоны, которые появились в большом обновлении msDiscount.
Вы генерируете группы купонов, у которых есть абсолютная или процентная скидка и может быть срок действия. Для отличия одних купонов от других можно использовать уникальные префиксы.
Если дела идут хорошо, и все купоны группы уже разошлись — можно сгенерировать еще, в той же группе. Для этого нужно просто указать больше купонов при редактировании группы и сохранить.
Чтобы не копипастить сотни купонов вручную, предусмотрена выгрузка кодов в формате csv, который открывается всеми нормальными редакторами, включая Excel и LibreOffice.
Выгрузки можно использовать для сбора статистики по активациям и для печати рекламных материалов.
При погашении купона, в него записывается номер заказа miniShop2, для которого он был активирован, и время активации.
Для работы новой версии msDiscount необходимо обновить стабильную версию MS2. Если вы уже пользуетесь 2.2-beta, то можно внести изменения самостоятельно, или подождать, пока парни их импортируют в свою версию.
Изменений немного, но они очень важные. Во первых, появились новые системные события msOnBeforeGetOrderCost и msOnGetOrderCost. Как нетрудно догадаться, они нужны для изменения цены заказа при запросе msOrderHandler::getCost().
Именно эти события использует msDiscount, чтобы влиять на цену при оформлении заказа на странице корзины.
Вам нужно просто добавить новое поле в чанк оформления заказа tpl.msOrder.outer:

Текст сообщения можно поменять в словарях системы.
Если с купоном всё в порядке, то изменение цены выглядит так (gif):

Для работы обновления стоимости заказа, при изменении поля с купоном, вам нужно добавить callback функцию:
Как я уже говорил, при погашении кода, в его свойства записывается номер заказа и отображается в админке. Так вот, этот номер кликабельный, и отсюда следует второе изменение в MS2 — прямые ссылки на заказы в админке.
Теперь при открытии окошка заказа у вас в строке url будет добавляться &order=номерзаказа. При закрытии, этот параметр убирается. А при переходе в панель заказов по url с этим параметром, будет открываться заказ.
Кстати говоря, код купона и скидка также записываются и в поле properties заказа, чтобы можно было потом понять, почему он стоит меньше, чем должен. Это поле не видно в админке, но в БД оно есть.
Вот все изменения в MS2, одним коммитом.
Понятно дело, все страницы в админке msDiscount переписаны на новый лад. Везде можно пользоваться кнопочками, а кое-где даже выделять сразу несколько строк через Ctrl или Shift.
Но это ерунда, когда скидкам можно назначать категории товаров, а не только сами товары. Более того, выбираются все родители товара до 10 уровня вверх (т.е., не только msCategory), и уже из этих ресурсов выбирается максимальная скидка. Понятное дело, скидки на сами товары тоже никто не отменял.
Возможные варианты скидочной деятельности только что приумножились, поэтому не забывайте проверять алгоритм на специальной вкладке в админке.
Несмотря на всю проделанную работу, цена дополнения остаётся прежней — всего 1490 руб. Старые покупатели обновляются бесплатно, как обычно.
Изменений очень много, так что и я жду от вас отзывов по работе дополнения. Если что-то, вдруг, не работает — пишите, не скромничайте, будем исправлять.
Добавил демонстрацию работы скидок в оформление заказов на minishop2.com. А вот рабочие коды, проверяйте!
Подстегнуть продажи помогут одноразовые скидочные купоны, которые появились в большом обновлении msDiscount.
Вы генерируете группы купонов, у которых есть абсолютная или процентная скидка и может быть срок действия. Для отличия одних купонов от других можно использовать уникальные префиксы.
Если дела идут хорошо, и все купоны группы уже разошлись — можно сгенерировать еще, в той же группе. Для этого нужно просто указать больше купонов при редактировании группы и сохранить.
Чтобы не копипастить сотни купонов вручную, предусмотрена выгрузка кодов в формате csv, который открывается всеми нормальными редакторами, включая Excel и LibreOffice.
Выгрузки можно использовать для сбора статистики по активациям и для печати рекламных материалов.
При погашении купона, в него записывается номер заказа miniShop2, для которого он был активирован, и время активации.
Обновление miniShop2
Для работы новой версии msDiscount необходимо обновить стабильную версию MS2. Если вы уже пользуетесь 2.2-beta, то можно внести изменения самостоятельно, или подождать, пока парни их импортируют в свою версию.
Изменений немного, но они очень важные. Во первых, появились новые системные события msOnBeforeGetOrderCost и msOnGetOrderCost. Как нетрудно догадаться, они нужны для изменения цены заказа при запросе msOrderHandler::getCost().
Именно эти события использует msDiscount, чтобы влиять на цену при оформлении заказа на странице корзины.
Вам нужно просто добавить новое поле в чанк оформления заказа tpl.msOrder.outer:
<div class="form-group input-parent">
<label class="col-sm-4 control-label" for="coupon_code">Скидочный купон</label>
<div class="col-sm-6">
<input type="coupon_code" id="coupon_code" placeholder="XXXXX-XXXX-XXXX-XXXX" name="coupon_code" value="[[+coupon_code]]" class="form-control [[+errors.coupon_code]]">
</div>
</div>При добавлении кода купона к заказу он проходит проверку и если что не так, то вы получите ошибку, а поле не сохранится. В общем, как обычно у заказов miniShop2.
Текст сообщения можно поменять в словарях системы.
Если с купоном всё в порядке, то изменение цены выглядит так (gif):

Для работы обновления стоимости заказа, при изменении поля с купоном, вам нужно добавить callback функцию:
<script type="text/javascript">
miniShop2.Callbacks.Order.add.ajax.done = function(res) {
var res = res.responseJSON;
if (typeof(res.data['coupon_code']) != 'undefined') {
miniShop2.Order.getcost();
};
};
</script>Можно прописать её хоть сразу после вызова [[!msOrder]].Как я уже говорил, при погашении кода, в его свойства записывается номер заказа и отображается в админке. Так вот, этот номер кликабельный, и отсюда следует второе изменение в MS2 — прямые ссылки на заказы в админке.
Теперь при открытии окошка заказа у вас в строке url будет добавляться &order=номерзаказа. При закрытии, этот параметр убирается. А при переходе в панель заказов по url с этим параметром, будет открываться заказ.
Кстати говоря, код купона и скидка также записываются и в поле properties заказа, чтобы можно было потом понять, почему он стоит меньше, чем должен. Это поле не видно в админке, но в БД оно есть.
Вот все изменения в MS2, одним коммитом.
Другие изменения
Понятно дело, все страницы в админке msDiscount переписаны на новый лад. Везде можно пользоваться кнопочками, а кое-где даже выделять сразу несколько строк через Ctrl или Shift.
Но это ерунда, когда скидкам можно назначать категории товаров, а не только сами товары. Более того, выбираются все родители товара до 10 уровня вверх (т.е., не только msCategory), и уже из этих ресурсов выбирается максимальная скидка. Понятное дело, скидки на сами товары тоже никто не отменял.
Возможные варианты скидочной деятельности только что приумножились, поэтому не забывайте проверять алгоритм на специальной вкладке в админке.
Заключение
Несмотря на всю проделанную работу, цена дополнения остаётся прежней — всего 1490 руб. Старые покупатели обновляются бесплатно, как обычно.
Изменений очень много, так что и я жду от вас отзывов по работе дополнения. Если что-то, вдруг, не работает — пишите, не скромничайте, будем исправлять.
Обновлено 17.06.2015
Добавил демонстрацию работы скидок в оформление заказов на minishop2.com. А вот рабочие коды, проверяйте!
MXPRO-Y51T-ADPC-VR36 MXPRO-QL78-9Y57-5B3P MXPRO-CSB1-KLW6-7X0R MXPRO-8GF6-TWBL-5EM6 MXPRO-VVA3-T3VQ-RX07 MXPRO-1ICA-A8FF-Y2J5 MXPRO-7XBJ-QKQI-8NRF MXPRO-F0WE-G2LF-I821 MXPRO-1X7J-GO17-I15F MXPRO-8QWW-T95J-M2JG MXPRO-3P20-DSHU-4FS3 MXPRO-4O00-PUFD-Q6XQ MXPRO-ADSV-VLRO-1KF4 MXPRO-2NOW-S7PN-LGD0 MXPRO-0J4G-GSWG-WF1H MXPRO-RJWI-T1DM-ES8X MXPRO-POA0-UDRL-MLRS MXPRO-4EZQ-KRX1-1KAL MXPRO-BDXG-WW4C-A42V MXPRO-8K6L-WO4Q-TT73Если кончатся — пишите в комментариях, добавлю еще.
Комментарии: 20
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.



Если у человека есть купон на скидку — какая еще может быть замануха? Он просто набирает заказ, рассчитывая на неё.
Я такого нигде не видел, если честно.
www.jcrew.com
Будут покупки новой версии компонента, добавлю и промокоды.
А и один момент, чтоб не создавать отдельную тему.
Просьба вынести подключение скрипта и стиля из msdBuyNow в настройки как у всех компонентов, а то после обновления приходиться опять коментить эти строки в сниппете, так как используются свои стили и скрипты. Спасибо.
Если промокод многоразовый будет, то еще одна покупка будет…
в плагине msDiscount
т.е. проверяю по коду,… и если этой промокод, то просто не закрываю его