Skip to content
  1. Компоненты
  2. msDiscount
  3. Купоны

Купоны

Одноразовые купоны на скидку предназначение для снижения стоимости всей корзины покупок.

Вы самостоятельно генерируете группы купонов, у которых есть абсолютная или процентная скидка, и может быть срок действия. Для отличия одних купонов от других можно использовать уникальные префиксы.

Если все купоны группы закончились - можно сгенерировать еще, в той же группе. Для этого нужно просто указать больше купонов при редактировании группы и сохранить.

Чтобы не копировать сотни купонов в блокнотик руками, предусмотрена выгрузка кодов в формате csv, который открывается всеми нормальными редакторами, включая MS Excel и Libre Office. Выгрузки можно использовать для сбора статистики по активациям или печати рекламных материалов.

При погашении купона, в него записывается номер заказа miniShop2, для которого он был активирован, и время активации.

Добавление купонов в заказ

Для работы c купонами нужна стабильная версия miniShop2.1.11. Если вы пользуетесь 2.2-beta, то можно внести изменения самостоятельно, или подождать, пока они будут добавлены разработчиками.

Чтобы покупатель мог ввести свой код при оформлении заказа, вам нужно добавить новое поле в чанк его оформления.

В miniShop2.2 это tpl.msOrder.outer:

modx
<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">
  </div>
</div>

А в версии 2.4 это tpl.msOrder:

fenom
<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="{$order.coupon_code}" class="form-control">
  </div>
</div>

Пример для стандартной вёрстки Bootstrap 3.

При добавлении кода купона к заказу он проходит проверку и если что не так, то вы получите ошибку, а поле не сохранится.

Текст сообщения можно поменять в словарях системы.

Если с купоном всё в порядке, то изменение цены выглядит так (gif):

Для работы обновления стоимости заказа, при изменении поля с купоном, вам нужно добавить callback функцию MS2.

Старый код, для магазина версии 2.2:

js
$(document).ready(function () {
  miniShop2.Callbacks.Order.add.ajax.done = function (res) {
    var res = res.responseJSON;
    if (typeof res.data.coupon_code !== 'undefined' || !res.success) {
      miniShop2.Order.getcost();
    };
  };
});

Новый код, для магазинов версии 2.4 и выше:

js
$(document).ready(function () {
  miniShop2.Callbacks.add('Order.add.ajax.done', 'msdiscount', function (res) {
    var res = res.responseJSON;
    if (typeof res.data.coupon_code !== 'undefined' || !res.success) {
      miniShop2.Order.getcost();
    };
  });
});

Код можно прописать в скриптах сайта, или прямо в чанке оформления заказа.