Идея пришла от клиента: в рознице у кассы лежат ароматизаторы, салфетки, клей — то, что берут не задумываясь. На сайте такого места не было. Нужен был блок, который подставляет такие товары там, где покупатель уже принял решение, — на странице оформления заказа.
Три сложности
Состав подборки формируется в 1С, а не руками на сайте. Забирали его через сервис сегментов, сопоставляли коды 1С с товарами каталога, отсеивали неактивное и то, чего нет в наличии.
Производительность. Первая версия считала персональные цены пятнадцати товаров прямо в момент отрисовки и разогнала оформление заказа с 0,4 до 11 секунд. На странице, где человек уже готов платить, это недопустимо.
Подборка вырождалась. Сегмент из 1С отдавал много однотипного — в блоке подряд выстраивались семь ароматизаторов одного бренда.
Что сделали
Вынесли блок в отдельный фоновый запрос: страница открывается сразу, подборка подгружается следом. Добавили ротацию по неделям, исключение того, что уже лежит в корзине, и ограничение «не больше двух позиций из одной товарной группы» — теперь в пятнадцати позициях около восьми разных групп. Отдельно ужали вёрстку карточек, чтобы блок не вытеснял форму заказа за пределы первого экрана.
Результат
Оформление заказа вернулось к 0,4 секунды, блок работает для всех клиентов. Статистики по приросту среднего чека пока нет: функция запущена в конце октября 2026 года, выводы будем делать по первому полному месяцу.
Статья была полезна?