Промокоды в скрипте интернет-магазина считаются в корзине до оплаты. В админке задаёте код, тип скидки, срок, лимиты. Без правил промо из рекламы улетает в минус: один код на всех без срока, и вы раздаёте товар почти бесплатно дольше, чем планировали.
Checkout, куда встраивается поле кода — оплата. Общий магазин — мануал.
Поля, которые должны быть у купона
- Код (нормализуйте регистр:
SALE10=sale10). - Тип: процент или фиксированная сумма.
- Дата начала и окончания (с часовым поясом сервера — не забудьте).
- Минимальная сумма корзины.
- Лимит использований всего и на одного покупателя/email.
- Ограничение по категориям/товарам — если нужно.
- Флаг активности (выключить без удаления).
Для бесплатной доставки отдельным типом удобнее, чем «скидка 350₽» наугад: иначе при смене тарифа доставки промо врёт. Доставка — зоны и тарифы.
Где считать скидку
Считайте на сервере при применении и ещё раз при создании заказа. Клиентский JS только для отображения. Иначе кто-то подменит итог в запросе. Порядок:
- Сумма товаров (с учётом вариантов SKU).
- Скидка по промокоду по правилам.
- Доставка (если промо не «бесплатная доставка»).
- Итог к оплате.
В заказе админки храните: код, сумму скидки, итог. Через месяц бухгалтер спросит, почему чек не сходится с витриной — ответите строкой заказа, не воспоминаниями.
Тесты перед рассылкой кода
- Валидный код уменьшает итог и виден в корзине.
- Просроченный — отказ с текстом, не молчание.
- Ниже минимальной суммы — отказ.
- Повторное использование при лимите 1 — отказ.
- Скидка попала в заказ админки.
- Онлайн-платёж создался уже на сумму со скидкой.
- Удаление кода из корзины возвращает полную сумму.
Если платёж в ЮKassa создали до применения промо — получите расхождение. Либо запретите менять корзину после перехода к оплате, либо пересоздавайте платёж. Вебхуки — ЮKassa.
Антиабьюз
- Не публикуйте один вечный код в подвале сайта «на всякий».
- Лимитируйте на email/телефон, не только на сессию.
- Для крупных скидок — одноразовые коды пачкой.
- Следите за регистрацией новых аккаунтов под один заказ с промо.
- Исключайте и без того уценённые товары, если маржа нулевая.
Промокод — маркетинговый инструмент, не дыра в прайсе. Согласуйте с тем, кто отвечает за маржу, до запуска таргета.
Операционка в админке
Удобный экран: список кодов, сколько раз применён, сумма скидок, кнопка «выключить». Выгрузка использований по заказам спасает при разборе конфликтов «мне не применилось». Менеджерам иногда нужен ручной промо «компенсация» — лучше отдельный тип с логированием, чем правка суммы заказа руками в БД.
Связка с витриной
Каталог и карточка могут показывать плашку «-15% по коду…», но источник истины — корзина. Не дублируйте старую цену зачёркнутой, если скидка только по коду: люди злятся на кассе. Честная механика: цена как есть + поле промо.
Продукт магазина — PHP MySQL, свой хостинг — ecommerce. Промокоды без срока и лимита — быстрый путь в минус; с правилами и повторной проверкой на сервере — нормальный рычаг для рассылок и рекламы.
Сценарии из жизни магазинов
Несколько шаблонов, которые заводил чаще всего:
- WELCOME10 — 10% первому заказу, 1 использование на телефон, 14 дней.
- CART3000 — 300₽ от суммы 3000, без категорий-исключений.
- FREESHIP — бесплатная доставка курьером по городу на выходные.
- Пачка одноразовых кодов для блогеров — каждый код на 1 заказ.
Для блогеров отдельно трейчу UTM и код: иначе не поймёте, что сработало. Коды не называю так же, как публичные UTM-метки — путаница в отчётах обеспечена.
Совместимость с ручными скидками
Если менеджер может «подкрутить цену» в заказе, зафиксируйте приоритет: либо промокод, либо ручная скидка, не обе сразу без правила. В истории заказа пишите, кто применил ручную. Иначе отчёт по промо врать будет всегда. Для оптовых клиентов иногда выгоднее отдельный прайс, чем вечный код OPT20 в телеге — секретные коды живут недолго.
- Выключили акцию — код деактивирован, не удалён (история заказов жива).
- Опечатка в рассылке — заведите alias-код на те же правила.
- Стоп-лист товаров (новинки без скидки) проверяйте до релиза письма.
Перед большой рассылкой прогоняю один заказ сам на копии и один на проде мелким чеком. Дешевле, чем тысяча писем с мёртвым кодом и горящая поддержка с утра понедельника.
Отчёт для маркетинга
Маркетингу нужны не ощущения, а таблица: код, число заказов, сумма скидок, средний чек до/после, доля отмен. Без этого спорят «промо не работает» на пустом месте. Выгрузку из админки или SQL-view готовлю заранее, до запуска акции. Промокоды в скрипте интернет-магазина — нормальный инструмент, когда срок, лимит и серверный пересчёт на месте, а после акции вы можете показать цифры, а не переписку в чате.
Не держите десятки пересекающихся акций одновременно на старте. Один понятный код отрабатывает лучше зоопарка из пяти «секретных» условий. Когда команда привыкнет к дисциплине купонов, усложните: категории, первую покупку, бесплатную доставку. До дисциплины — только минус к марже и хаос в поддержке.
Коммуникация кода в рекламе
В креативе указывайте срок и условие минимума суммы, не только сам код. Иначе поддержка отвечает на «почему не применилось» сотню раз. Промокоды в интернет-магазине скрипта должны совпадать с обещанием рекламы буква в букву. Если условие сложное — упростят код, а не наоборот.
Служебные коды для блогеров и компенсации помечайте префиксом в админке, чтобы не смешивать с публичными в отчётах. Выключили публикацию — выключите код тем же днём. Хвосты вечных купонов из старых сторис живут удивительно долго и бьют по марже. Дисциплина названия и срока важнее размера скидки.
Перед крупной акцией согласуйте стоп-лист и потолок скидки с закупкой. После акции выключите код в тот же день и киньте в чат короткий отчёт: заказы, сумма скидок, отмены. Без закрытия хвоста старые сторис продолжают вести людей с мёртвым ожиданием скидки.
Частые вопросы
Промокоды в интернет-магазине скрипт?
Промокод без срока и лимита быстро уходит в минус. Задайте правила до рекламы.
Сколько времени занимает «Промокоды в скрипте магазина»?
Ориентир по тексту мануала — около 5 мин. На практике зависит от хостинга и подготовки базы.
Нужен ли отдельный сервер?
Для большинства скриптов достаточно хостинга или VDS с PHP и MySQL. Подбор сервера — в разделе VDS и требованиях к PHP/MySQL.
Готовый магазин без wordpress?
Разбор рядом в мануале по этому запросу. готовый магазин без wordpress
Как настроить корзину и оплату в скрипте магазина?
Разбор рядом в мануале по этому запросу. как настроить корзину и оплату в скрипте магазина