Клиент кладёт в корзину дрель, а свёрла, биты и кейс к ней ищет уже у конкурента — потому что вы их не предложили. Каждая карточка товара без грамотного блока «с этим покупают» — это упущенный дополнительный чек. При этом руками проставить связи на тысячах товаров невозможно: пока вы дойдёте до конца каталога, начало устареет. Ответ — автоподбор сопутствующих товаров алгоритмом.
В этой статье разберём, как на 1С-Битрикс автоматически подбирать сопутствующие товары: какие алгоритмы бывают, откуда брать данные о совместных покупках, как считать связи в фоне и не тормозить каталог и, главное, как измерить, что подбор реально приносит деньги. Внедрение и обкатку такой логики мы делаем в рамках автоматизации на 1С.
Коротко
- Сопутствующие (cross-sell) и аналоги (up-sell) — разные механики; их нельзя смешивать.
- Базовый и самый окупаемый алгоритм — ассоциативные правила «вместе покупают» по истории заказов.
- Тяжёлый расчёт связей выносят в фон (агент/cron), а витрина отдаёт готовые рекомендации из кэша.
- Эффект обязательно измеряют A/B-тестом: доля заказов с рекомендацией, средний чек, атрибутированная выручка.
Зачем магазину сопутствующие товары
Сопутствующие товары решают одну из самых дешёвых задач роста выручки — увеличение среднего чека без привлечения нового трафика. Клиент уже пришёл, уже выбрал, уже готов платить; предложить ему логичное дополнение стоит вам почти ничего, а конверсия таких предложений заметно выше, чем у «холодных» рекламных показов.
Важно, что хорошие рекомендации воспринимаются не как навязывание, а как забота: покупатель дрели действительно нуждается в свёрлах, а покупатель принтера — в бумаге и картриджах. Когда магазин подсказывает нужное вовремя, растёт и чек, и удовлетворённость. Плохие же рекомендации (случайные или нерелевантные) работают против доверия, поэтому качество подбора важнее его наличия.
Cross-sell против up-sell: не путать
Прежде чем настраивать алгоритмы, надо чётко развести два разных механизма — их путают чаще всего.
| Параметр | Cross-sell (сопутствующие) | Up-sell (аналоги/дороже) |
|---|---|---|
| Что предлагает | Дополнение к товару | Замену или версию получше |
| Пример | К дрели — свёрла | Вместо дрели — более мощную |
| Когда показывать | После выбора, в корзине | Пока клиент выбирает, в карточке |
| Цель | Увеличить чек | Поднять маржу с позиции |
| Алгоритм | «Вместе покупают» | Схожесть + цена выше |
Если показывать аналоги в момент добавления в корзину, вы сеете сомнение: клиент уже выбрал, а вы предлагаете «а может, другой?» — и он уходит перевыбирать. И наоборот: сопутствующие в карточке до выбора отвлекают. Поэтому первое решение — не алгоритм, а места и моменты показа для каждой механики.
Ручные связи и их предел
Самый простой способ задать сопутствующие товары в Битрикс — ручные товарные связи через свойство инфоблока типа «Привязка к элементам». Товару вручную указывают, что показывать рядом. Это даёт полный контроль и хорошо работает для витринных, маркетинговых пар, где важна точность.
Но у ручного подхода жёсткий потолок:
- Не масштабируется. На тысячах SKU проставить связи вручную нереально.
- Устаревает. Ассортимент меняется, а связи остаются от прошлого сезона.
- Субъективен. Контент-менеджер угадывает, что покупают вместе, вместо опоры на реальные данные.
Поэтому разумная стратегия — гибрид: ручные связи для приоритетных пар и новинок, а массовый подбор отдать алгоритму, который опирается на факты — реальные заказы.
Алгоритм «вместе покупают»
Базовый и самый окупаемый метод — ассоциативные правила, известные как анализ рыночной корзины (market basket analysis). Идея проста: если два товара часто оказываются в одних и тех же заказах, они сопутствующие.
Алгоритм оперирует тремя понятиями:
- Поддержка (support). Как часто пара встречается вместе относительно всех заказов.
- Достоверность (confidence). Насколько вероятно, что при покупке A купят и B.
- Лифт (lift). Насколько связь сильнее случайной — ключевая метрика, отсекающая «просто популярные» товары.
Именно лифт спасает от типичной ошибки: без него алгоритм будет всем подряд предлагать пакет или самый ходовой товар, потому что тот встречается в большинстве заказов. Лифт же выделяет настоящие связи. Такой расчёт объясним и предсказуем — вы всегда можете показать, на каких заказах основана рекомендация.
Контентный подбор по характеристикам
Ассоциативный алгоритм молчит там, где нет истории — по новым товарам и редким позициям. Здесь выручает контентный подбор: рекомендации строятся не по заказам, а по схожести самих товаров — категории, бренду, характеристикам, ценовому диапазону.
В Битрикс это удобно ложится на инфоблоки: у товаров есть свойства и привязка к разделам, по которым легко находить «похожие» и «дополняющие» позиции. Контентный метод хорош как запасной для холодного старта и как дополнение к поведенческому: он всегда даёт хоть какие-то разумные рекомендации, даже без единого заказа. Минус — он не «знает» реального поведения покупателей, поэтому в связке с ассоциативным его роль вспомогательная.
Коллаборативная фильтрация
Следующий уровень — коллаборативная фильтрация: «клиенты, похожие на вас, покупали также». Она смотрит не на пары товаров, а на профили покупателей: находит клиентов со схожим поведением и рекомендует то, что брали они. Так строят персональные рекомендации, а не просто «к этому товару».
Коллаборативная фильтрация мощнее, но требовательнее: ей нужен объём данных, аккуратная обработка разреженности и заметно больше вычислений. Для большинства магазинов правильный путь — начать с ассоциативных правил, получить эффект, накопить данные и уже потом решать, оправдан ли переход к персонализации. Тяжёлые расчёты часто выносят в отдельный сервис, который общается с сайтом по API — про безопасную организацию такого обмена мы писали в статье про REST, вебхуки и безопасность в Битрикс.
Данные из истории заказов Битрикс
Топливо для любого поведенческого алгоритма — история заказов модуля «Интернет-магазин». Состав каждого оформленного заказа — это готовая рыночная корзина. Данные достают через D7-запросы к таблицам заказов и их позиций, аккуратно, чтобы не мешать работе витрины.
На что обратить внимание при подготовке данных:
- Только оформленные заказы. Брошенные корзины шумят — берут завершённые (а лучше оплаченные) заказы.
- Глубина истории. Слишком старые заказы отражают неактуальный ассортимент; обычно берут скользящее окно последних месяцев.
- Товар против предложения. Связи чаще строят на уровне товара-родителя, а не конкретного SKU, иначе данные распыляются.
- Возвраты. Отменённые и возвращённые заказы разумно исключать — это не настоящие совместные покупки.
Правильная выборка данных через объектную модель важнее, чем кажется: неоптимальные запросы к большим таблицам заказов легко положат базу. Как грамотно работать с ORM и запросами, мы разбираем в материале про D7 ORM в Битрикс.
Пересчёт в фоне и хранение связей
Главный архитектурный принцип автоподбора — разделить расчёт и показ. Анализ заказов тяжёлый, его нельзя выполнять в момент открытия карточки. Поэтому связи считают заранее, в фоне, и складывают в готовый вид.
- Фоновый расчёт. Cron-скрипт (надёжнее агента) ночью или несколько раз в день пересчитывает связи по свежим заказам.
- Хранение результата. Готовые пары «товар — сопутствующие» кладут в отдельную таблицу или highload-блок.
- Кэш на витрине. Блок рекомендаций читает готовые связи и кэшируется, поэтому отдаётся мгновенно.
- Инвалидация. После пересчёта кэш блока сбрасывается, чтобы показать свежие рекомендации.
Где и как показывать рекомендации
Место показа не менее важно, чем алгоритм. Одни и те же рекомендации в разных точках дают разный эффект:
- Карточка товара. Блок «с этим товаром покупают» — классика, работает почти всегда.
- Корзина. Самый сильный момент для cross-sell: клиент уже платит, добавить мелочь легко.
- Страница «товар добавлен». Всплывающее «не забудьте» после добавления в корзину.
- Письмо после заказа. Допродажа расходников и аксессуаров через триггерную рассылку.
Технически блоки строят на штатных компонентах каталога, которым на вход подают список ID из рассчитанных связей. Ограничивайте число позиций (3–6), не показывайте недоступные товары и не дублируйте то, что уже в корзине — это базовая гигиена, без которой даже хороший алгоритм выглядит неряшливо.
Реализация на 1С-Битрикс пошагово
Собрать автоподбор на 1С-Битрикс можно понятной последовательностью шагов:
- Определите механики и места. Разведите cross-sell и up-sell, выберите точки показа.
- Подготовьте выборку заказов. D7-запрос по оформленным заказам за скользящее окно, на уровне товара.
- Посчитайте связи. Ассоциативные правила с метрикой лифта, отсечение «просто популярных».
- Добавьте контентный запас. Для холодного старта — подбор по категории и характеристикам.
- Сложите результат. Готовые пары в отдельную таблицу или highload-блок.
- Настройте фон. Cron пересчитывает связи по расписанию и сбрасывает кэш блоков.
- Выведите блоки. Компоненты каталога получают ID из связей, с лимитом и фильтром доступности.
- Запустите измерение. A/B-тест и метрики выручки от рекомендаций.
Если алгоритмическая часть выносится в отдельный сервис или модуль, полезны наши материалы про разработку модуля Битрикс и про CI/CD и деплой, чтобы выкатывать изменения алгоритма безопасно.
Как измерять выручку от подбора
Автоподбор без измерения — это вера, а не бизнес. Чтобы понимать отдачу, нужны конкретные метрики и честное сравнение с контролем.
| Метрика | Что показывает |
|---|---|
| Доля заказов с рекомендацией | Насколько часто блок реально срабатывает |
| Средний чек: с блоком vs без | Прямой прирост выручки на заказ |
| Атрибутированная выручка | Деньги, принесённые именно блоком |
| CTR блока | Релевантность рекомендаций для клиента |
Золотой стандарт — A/B-тест: часть трафика видит рекомендации, часть нет, и вы честно сравниваете средний чек и выручку. Так вы отделяете эффект алгоритма от общего роста продаж. Стратегически именно измерение превращает автоподбор из «модной фичи» в управляемый рычаг выручки, которым можно осознанно крутить.
Частые ошибки
- Смешали cross-sell и up-sell. Аналоги лезут в корзину, сопутствующие — в карточку выбора, всё мешает.
- Нет метрики лифта. Алгоритм рекомендует «просто популярное» — пакет и бестселлер всем подряд.
- Считают на лету. Тяжёлый анализ заказов при каждом хите роняет каталог.
- Игнорируют холодный старт. Новые товары остаются без рекомендаций.
- Показывают недоступное. В блоке висят товары не в наличии или уже лежащие в корзине.
- Берут брошенные корзины. Данные зашумлены незавершёнными заказами.
- Не измеряют. Блок есть, а окупается он или нет — неизвестно.
Чек-лист внедрения
- Механики разведены. Cross-sell и up-sell работают в своих местах и моментах.
- Данные чистые. В расчёт идут оформленные заказы за адекватное окно, без возвратов.
- Алгоритм с лифтом. Ассоциативные правила отсекают «просто популярное».
- Холодный старт закрыт. Контентный подбор и ручные связи для новинок.
- Расчёт в фоне. Cron считает связи по расписанию, результат в отдельном хранилище.
- Витрина из кэша. Блоки отдаются мгновенно, показывают только доступное.
- Измерение включено. A/B-тест и метрики выручки настроены и отслеживаются.
Вывод
Автоподбор сопутствующих товаров — один из самых дешёвых способов поднять средний чек: клиент уже пришёл и уже платит, нужно лишь вовремя предложить нужное. На 1С-Битрикс это собирается из доступных кирпичей — истории заказов, инфоблоков, агентов и cron, компонентов каталога — без экзотики. Начните с ассоциативного алгоритма «вместе покупают» по вашим заказам: он объясним, окупаем и почти всегда даёт результат.
Ключевых принципа два: считать связи в фоне и показывать из кэша, а эффект — обязательно измерять A/B-тестом. Тогда автоподбор перестаёт быть «красивым блоком» и становится управляемым рычагом выручки. А по мере накопления данных к базовому алгоритму можно добавить контентный подбор для новинок и персонализацию — уже с понятной отдачей.