Manuals
RU EN

Продукты · 39

Промокоды в скрипте магазина

Продукты 5 мин чтения

Промокоды в скрипте интернет-магазина считаются в корзине до оплаты. В админке задаёте код, тип скидки, срок, лимиты. Без правил промо из рекламы улетает в минус: один код на всех без срока, и вы раздаёте товар почти бесплатно дольше, чем планировали.

Checkout, куда встраивается поле кода — оплата. Общий магазин — мануал.

Поля, которые должны быть у купона

  • Код (нормализуйте регистр: SALE10 = sale10).
  • Тип: процент или фиксированная сумма.
  • Дата начала и окончания (с часовым поясом сервера — не забудьте).
  • Минимальная сумма корзины.
  • Лимит использований всего и на одного покупателя/email.
  • Ограничение по категориям/товарам — если нужно.
  • Флаг активности (выключить без удаления).

Для бесплатной доставки отдельным типом удобнее, чем «скидка 350₽» наугад: иначе при смене тарифа доставки промо врёт. Доставка — зоны и тарифы.

Где считать скидку

Считайте на сервере при применении и ещё раз при создании заказа. Клиентский JS только для отображения. Иначе кто-то подменит итог в запросе. Порядок:

  1. Сумма товаров (с учётом вариантов SKU).
  2. Скидка по промокоду по правилам.
  3. Доставка (если промо не «бесплатная доставка»).
  4. Итог к оплате.

В заказе админки храните: код, сумму скидки, итог. Через месяц бухгалтер спросит, почему чек не сходится с витриной — ответите строкой заказа, не воспоминаниями.

Скидки на варианты. Если цена живёт на SKU, процент считается от выбранного варианта, не от «базовой» карточки. См. варианты.

Тесты перед рассылкой кода

  • Валидный код уменьшает итог и виден в корзине.
  • Просроченный — отказ с текстом, не молчание.
  • Ниже минимальной суммы — отказ.
  • Повторное использование при лимите 1 — отказ.
  • Скидка попала в заказ админки.
  • Онлайн-платёж создался уже на сумму со скидкой.
  • Удаление кода из корзины возвращает полную сумму.

Если платёж в ЮKassa создали до применения промо — получите расхождение. Либо запретите менять корзину после перехода к оплате, либо пересоздавайте платёж. Вебхуки — ЮKassa.

Антиабьюз

  1. Не публикуйте один вечный код в подвале сайта «на всякий».
  2. Лимитируйте на email/телефон, не только на сессию.
  3. Для крупных скидок — одноразовые коды пачкой.
  4. Следите за регистрацией новых аккаунтов под один заказ с промо.
  5. Исключайте и без того уценённые товары, если маржа нулевая.

Промокод — маркетинговый инструмент, не дыра в прайсе. Согласуйте с тем, кто отвечает за маржу, до запуска таргета.

Операционка в админке

Удобный экран: список кодов, сколько раз применён, сумма скидок, кнопка «выключить». Выгрузка использований по заказам спасает при разборе конфликтов «мне не применилось». Менеджерам иногда нужен ручной промо «компенсация» — лучше отдельный тип с логированием, чем правка суммы заказа руками в БД.

Связка с витриной

Каталог и карточка могут показывать плашку «-15% по коду…», но источник истины — корзина. Не дублируйте старую цену зачёркнутой, если скидка только по коду: люди злятся на кассе. Честная механика: цена как есть + поле промо.

Продукт магазина — PHP MySQL, свой хостинг — ecommerce. Промокоды без срока и лимита — быстрый путь в минус; с правилами и повторной проверкой на сервере — нормальный рычаг для рассылок и рекламы.

Сценарии из жизни магазинов

Несколько шаблонов, которые заводил чаще всего:

  1. WELCOME10 — 10% первому заказу, 1 использование на телефон, 14 дней.
  2. CART3000 — 300₽ от суммы 3000, без категорий-исключений.
  3. FREESHIP — бесплатная доставка курьером по городу на выходные.
  4. Пачка одноразовых кодов для блогеров — каждый код на 1 заказ.

Для блогеров отдельно трейчу UTM и код: иначе не поймёте, что сработало. Коды не называю так же, как публичные UTM-метки — путаница в отчётах обеспечена.

Совместимость с ручными скидками

Если менеджер может «подкрутить цену» в заказе, зафиксируйте приоритет: либо промокод, либо ручная скидка, не обе сразу без правила. В истории заказа пишите, кто применил ручную. Иначе отчёт по промо врать будет всегда. Для оптовых клиентов иногда выгоднее отдельный прайс, чем вечный код OPT20 в телеге — секретные коды живут недолго.

  • Выключили акцию — код деактивирован, не удалён (история заказов жива).
  • Опечатка в рассылке — заведите alias-код на те же правила.
  • Стоп-лист товаров (новинки без скидки) проверяйте до релиза письма.

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

Отчёт для маркетинга

Маркетингу нужны не ощущения, а таблица: код, число заказов, сумма скидок, средний чек до/после, доля отмен. Без этого спорят «промо не работает» на пустом месте. Выгрузку из админки или SQL-view готовлю заранее, до запуска акции. Промокоды в скрипте интернет-магазина — нормальный инструмент, когда срок, лимит и серверный пересчёт на месте, а после акции вы можете показать цифры, а не переписку в чате.

Не держите десятки пересекающихся акций одновременно на старте. Один понятный код отрабатывает лучше зоопарка из пяти «секретных» условий. Когда команда привыкнет к дисциплине купонов, усложните: категории, первую покупку, бесплатную доставку. До дисциплины — только минус к марже и хаос в поддержке.

Коммуникация кода в рекламе

В креативе указывайте срок и условие минимума суммы, не только сам код. Иначе поддержка отвечает на «почему не применилось» сотню раз. Промокоды в интернет-магазине скрипта должны совпадать с обещанием рекламы буква в букву. Если условие сложное — упростят код, а не наоборот.

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

Перед крупной акцией согласуйте стоп-лист и потолок скидки с закупкой. После акции выключите код в тот же день и киньте в чат короткий отчёт: заказы, сумма скидок, отмены. Без закрытия хвоста старые сторис продолжают вести людей с мёртвым ожиданием скидки.

Частые вопросы

Промокоды в интернет-магазине скрипт?

Промокод без срока и лимита быстро уходит в минус. Задайте правила до рекламы.

Сколько времени занимает «Промокоды в скрипте магазина»?

Ориентир по тексту мануала — около 5 мин. На практике зависит от хостинга и подготовки базы.

Нужен ли отдельный сервер?

Для большинства скриптов достаточно хостинга или VDS с PHP и MySQL. Подбор сервера — в разделе VDS и требованиях к PHP/MySQL.

Готовый магазин без wordpress?

Разбор рядом в мануале по этому запросу. готовый магазин без wordpress

Как настроить корзину и оплату в скрипте магазина?

Разбор рядом в мануале по этому запросу. как настроить корзину и оплату в скрипте магазина

Раздел
Скрипт интернет-магазина

От каталога до оплаты и доставки — контур ecommerce на PHP/MySQL.