Коротко
Matsesta (matsesta.shop) — интернет-магазин натуральной косметики российского производства на 1С-Битрикс с решением Аспро: Лайтшоп. Магазин запускал акцию «подарок за сумму заказа», чтобы поднять средний чек.
| Сумма товаров после скидок и промокодов | Что получает покупатель |
|---|---|
| от 1 000 ₽ | набор миниатюр топовых средств |
| от 3 000 ₽ | бесплатная доставка |
| от 5 000 ₽ | набор SUPREME — уход для любого состояния кожи |
Покупатель должен видеть, сколько осталось до подарка, выбирать его прямо в корзине и получать вместе с заказом. Магазину важно, чтобы подарок нельзя было взять сверх условий: дважды, ниже порога или через промокод. У десктопной и мобильной версий сайта Matsesta разные шаблоны, и акция должна одинаково работать в обоих.
Нет. В 1С-Битрикс есть правила работы с корзиной — встроенный инструмент акций, который умеет добавить товар-подарок при выполнении условия. Но правило само по себе акцию не делает. В шаблоне Аспро: Лайтшоп не хватает остального:
Отдельная история — мобильная версия. У Аспро: Лайтшоп она работает на своём шаблоне, и доработку десктопа не видит.
Мы сформулировали пять задач с проверяемым результатом:
Мы построили акцию на стандартных правилах корзины Битрикса и дописали к ним четыре слоя: блок выбора подарка, ограничение количества, проверку при оформлении и оптимизацию запросов. Ниже — каждый слой отдельно.
Подарки и пороги Matsesta заведены в стандартных правилах работы с корзиной: отдельное правило для миниатюр, для SUPREME и для бесплатной доставки. Так магазин управляет акцией из админки, а весь наш код читает условия оттуда же. Правила промокодов применяются раньше подарочных, а сумму после всех скидок финально проверяет обработчик при оформлении заказа — он и решает, положен ли подарок.
Под корзиной появился блок «Выберите подарки» с кнопкой «Выбрать» и подсказка, сколько осталось до следующего подарка. Блок обновляется без перезагрузки страницы: покупатель добавил товар — подарок появился, удалил — подарок ушёл.
Компонент подарков в десктопном шаблоне Аспро: Лайтшоп отвечает данными в формате JSON (структурированные данные, из которых скрипт сам собирает карточки). В мобильном шаблоне тот же компонент отвечает готовой HTML-разметкой карточек. Скрипт, написанный под один формат, на другой версии показывал пустой блок.
Нашли мы это, когда повторили запросы с мобильным User-Agent (строкой, по которой сайт понимает, с какого устройства пришёл посетитель) в отдельных гостевых сессиях. В коде этой разницы не видно, только в живом ответе сервера. Итоговый скрипт принимает оба формата, а все четыре файла (десктоп и мобильный, обычный и сжатый) одинаковые.
«Доработку под Аспро мы теперь проверяем на обоих шаблонах сразу, даже если правили один. Десктопный и мобильный шаблоны похожи только снаружи: один и тот же компонент Битрикса отвечает в них по-разному, и это видно лишь в живом ответе сервера», — Евгений Панарин, программист 1С-Битрикс, 360i Digital.
Подарок в корзине Matsesta ограничен одной штукой в двух местах:
Перед сохранением нового заказа сервер Битрикса сверяет сумму оплачиваемых товаров с порогом каждого подарка. Подарки и пороги он читает из тех же правил корзины. Если маркетолог добавит третий подарок или сдвинет порог, защита подхватит изменения сама. Покупатель с подарком ниже порога увидит понятное сообщение: «Подарок доступен при сумме товаров от N ₽».
Если правила по какой-то причине не прочитались, заказ с подарком не пропускается, а ошибка пишется в лог. Отказ, а не пропуск — осознанный выбор: тихая утечка бесплатных наборов обходится дороже одной заметной ошибки.
После каждого пересчёта корзины Битрикс генерирует три события, и блок подарков поначалу отправлял запрос на каждое. Запросы одного посетителя Битрикс обрабатывает строго по очереди, поэтому лишние запросы задерживали следующий пересчёт. На телефоне при нескольких нажатиях «+» итог корзины догонял строки товаров за 10–15 секунд — владелец магазина снял это на видео.
Решение — один запрос на все три события. Второй не уходит, пока не вернулся первый. Если корзина успела измениться, скрипт переспрашивает один раз с актуальными данными. Теперь на пересчёт уходит один запрос за 0,3–0,4 секунды, а корзина отвечает примерно за 0,7 секунды.
Перед выкладкой код проходит автотесты: 31 проверка защиты на реальных правилах сайта, тест обоих форматов ответа на записанных живых ответах, тест очереди запросов и тест совпадения шаблонов.
На рабочий сайт мы выкладывали через PHP-консоль — инструмент админки Битрикса, который выполняет код прямо на сервере. Каждое изменение шло одной командой: проверка версии файла на сервере → резервная копия → запись во временный файл и мгновенная замена → сверка контрольных сумм. Ядро Битрикса и модули Аспро мы не трогали — только шаблоны сайта и подключаемый файл. Обновления Аспро: Лайтшоп доработку не затрут.
Главная сложность — разные форматы ответа в двух шаблонах Аспро. Остальные всплыли на тестах и проверке заказов:
Matsesta получила акцию, которая выдаёт подарки по порогам на компьютере и телефоне и не даёт их обойти.
| Что получил магазин | Как работает |
|---|---|
| Выбор подарка | блок под корзиной, кнопка «Выбрать», на компьютере и телефоне |
| Пороги | 1 000 ₽ — миниатюры, 3 000 ₽ — доставка, 5 000 ₽ — SUPREME, после скидок и промокодов |
| Количество подарка | 1 штука: в интерфейсе, корзине и заказе |
| Защита оформления | заказ с подарком ниже порога не создаётся |
| Управление | пороги и подарки меняются в админке без программиста |
| Скорость | 1 запрос подарков на пересчёт, 0,3–0,4 с; отклик корзины ~0,7 с вместо 10–15 с |
Сценарий на рабочем сайте 16 октября 2026 года: 6 608 → 4 130 → 6 608 → 826 ₽. Подарки добавляются, убираются и возвращаются без перезагрузки. При 1 316 ₽ предлагаются миниатюры, при 6 440 ₽ — SUPREME, нажатие «+» у подарка оставляет одну штуку. Заказы при проверке не оформлялись: влияние акции на средний чек мы оценим по данным первого месяца.
Покупатель видит, сколько осталось до подарка, выбирает его в один клик и получает с заказом. Лишние наборы магазин больше не раздаёт. А чтобы сдвинуть порог или добавить третий подарок, маркетологу хватит одного правила в админке — программист не нужен.
Над акцией работали программист 1С-Битрикс 360i Digital и владелец магазина. Доводка механики до рабочего состояния заняла один рабочий день — 16 октября 2026 года.
Команда:
Инструменты:
1С-Битрикс, Аспро: Лайтшоп (десктопный и мобильный шаблоны), правила работы с корзиной, PHP-консоль админки, инструменты разработчика браузера, автотесты на PHP и Node.js, Claude Code и Codex под контролем разработчика.
Акцию «подарок за сумму заказа» в Аспро: Лайтшоп не включить галочкой в админке: правило корзины Битрикса нужно дополнить блоком выбора, ограничением количества и проверкой при оформлении, а потом проверить всё это на десктопном и мобильном шаблонах. Для Matsesta мы собрали механику из четырёх слоёв, и теперь магазин меняет условия акции сам.
Если в вашем магазине на Битриксе подарки не доходят до заказов или корзина тормозит после доработок — напишите нам. Разберём, на каком звене теряется подарок, и доведём механику до рабочего состояния.