Купоны

01 мая 2019, 07:00

Купоны

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

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

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

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

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

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

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

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

В miniShop2.2 это 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">
    </div>
</div>

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

<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:

<script type="text/javascript">
    $(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();
            };
        };
    })
</script>

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

<script type="text/javascript">
    $(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();
            };
        });
    });
</script>

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