Раздел «Акции и промокоды» находится в меню Dharma Shop. В одной кампании можно добавить сколько нужно промокодов; у каждой строки собственные условия и срок действия, а название и публикация общие. Для управления требуется право «Управлять акциями и промокодами».
В списке кампаний общая колонка «Код / условия» показывает промокоды купонной акции либо пороги и размер скидки для автоматической скидки от суммы. Новый тип акции может предоставить метод listSummary(array $settings, string $codes): string; если метода нет, отображаются доступные коды или тире.
Создать промокод
- Нажмите Создать и задайте название кампании. Для новой кампании по умолчанию выбран тип «Скидка от суммы»; тип и «Промокоды» входят в пакет и включаются при первой установке. Чтобы создать купоны, переключите тип на «Промокоды». Новая кампания остаётся неопубликованной, пока вы отдельно её не опубликуете.
- В повторяемой таблице добавьте строки с кодами. Можно добавить несколько кодов в одну кампанию; каждый код обязан быть уникальным.
- Для каждой строки задайте срок действия. Дата начала включается в период, дата окончания действует до конца дня.
- Выберите категории товаров. Пустой список означает весь каталог. Включите учёт вложенных категорий, если правило должно распространяться на дочерние разделы.
- Задайте описание для покупателя и правила скидки. Тип скидки — процент или фиксированная сумма в валюте магазина. Для процента можно ограничить максимальную сумму.
- При необходимости задайте минимальную сумму подходящих товаров, общий лимит применений и лимит на покупателя. Значение 0 означает «без ограничения».
Если у кода задана минимальная сумма, а в корзине её пока нет, код всё равно прикрепляется, но скидка не действует: покупатель видит сообщение «Код добавлен, но скидка пока не действует» и пояснение под полем кода (условие из описания кода, например «500 ₽ от 3000 ₽»). Скидка включится, когда сумма достигнет минимума.
- Выберите, действует ли конкретный код на товары, цена которых уже снижена. Минимум считается по выбранным категориям; товары со скидкой входят в минимальную сумму, даже если скидка промокода на них выключена.
- Опубликуйте кампанию, когда она готова. Публикация общая для всех кодов кампании: неопубликованная кампания не применяется. Поле промокода в корзине и оформлении показывается, только если есть опубликованный код, доступный посетителю по сроку действия и уровню доступа; уже применённый код остаётся видимым, чтобы его можно было убрать.
В списке кампаний даты не показываются, потому что у каждого кода свой период. Покупатель применяет или убирает код на странице корзины либо в боковой сводке оформления заказа. Скидка пересчитывается сервером по текущим ценам. Лимиты проверяются при применении и каждом пересчёте: для вошедшего покупателя — по аккаунту и e-mail, для гостя — по введённому e-mail. До ввода адреса гостевая скидка с персональным лимитом отмечается как предварительная. Исчерпанный код остаётся в поле для замены или удаления, но скидка исключается из суммы и рядом показывается причина. Контакты сохраняются при применении кода. Лимиты проверяются повторно внутри транзакции заказа и расходуются только после успешного сохранения. В заказ, админку и письмо попадает сохранённая строка скидки.
Скидка от суммы
Для новой кампании этот тип уже выбран. Добавьте повторяемые правила. Для каждого укажите порог и вид скидки: процент или фиксированную сумму. Например: 50 000 ₽ → 5%, 100 000 ₽ → 10% либо 50 000 ₽ → 500 ₽. Сумма товаров берётся по текущим ценам до скидок акций. Применяется только скидка последнего достигнутого порога, а не сумма предыдущих скидок. Фиксированная скидка применяется один раз к заказу и не может превысить оставшуюся сумму товаров.
Скидка применяется автоматически и может действовать вместе с одним промокодом. Сначала применяется промокод, затем автоматические скидки; общий размер скидок ограничен стоимостью товаров, доставка не участвует.
Если включено отображение уровней скидки, в корзине, оформлении заказа и мини-корзине показываются все настроенные пороги: достигнутые выделены, рядом видны текущий уровень и сумма до следующего. Используется шкала с круглыми отметками, начальным уровнем 0% и отдельным блоком «До скидки … осталось …». На страницах корзины и оформления блок оформлен штатными классами Bootstrap и использует цвета шаблона. После последнего порога показывается сообщение о максимальной скидке. Виджет не влияет на расчёт.
Сумма рядом со значком корзины обновляется с учётом этой скидки и других применённых акций; доставка в неё не входит.