Блок «Схожие по характеристикам» (Аналоги) в карточке товара Bitrix — как сделать автоподбор

Задача клиента

У клиента интернет-магазин на 1С-Битрикс. В карточке товара не было блока с альтернативными товарами — покупатель, если не находил то, что искал, просто уходил, а магазин терял продажу, хотя нужный или похожий товар мог быть в наличии.

Стандартного решения «из коробки», которое устроило бы клиента, не было: обычные блоки «Похожие товары» в Bitrix либо показывают товары просто из того же раздела без учёта характеристик, либо требуют ручной привязки, что нереально при большом каталоге.

Что нужно было сделать

Реализовать блок «Схожие по характеристикам» — товары, которые совпадают с текущим по значениям конкретных свойств, а не просто находятся в одном разделе. В интерфейсе сайта блок называется короче и привычнее для покупателя — «Аналоги»; «Схожие по характеристикам» здесь и далее — рабочее название механики, которое точнее описывает, как именно она устроена.

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

Схема блока Аналоги в карточке товара Bitrix

Как решали

Логика сравнения. Товары сравнивались в пределах одного раздела каталога — это упростило задачу: у товаров внутри раздела набор свойств примерно одинаковый (одна и та же товарная категория — одни и те же характеристики для сравнения). Схожесть определялась по совпадению значений конкретных свойств между товарами.

Почему расчёт вынесен в фон, а не считается «на лету». Если сравнивать товары в момент открытия карточки — это лишняя нагрузка на базу при каждом просмотре страницы, особенно в разделах с большим количеством товаров. Поэтому расчёт схожести был вынесен в cron-задачу (агент Bitrix), которая ночью проходит по каталогу, пересчитывает связи между товарами и сохраняет готовый результат. Днём карточка товара просто отображает уже посчитанные данные — без дополнительной нагрузки на сайт в рабочие часы, когда на сайте больше всего посетителей.

Итог для клиента. Блок работает в проде, обновляется автоматически каждую ночь и не требует ручного участия менеджеров — при появлении новых товаров или изменении характеристик связи пересчитываются сами.

Схема работы

  1. Cron-задача (агент Bitrix) — запускается ночью по расписанию
  2. Обход товаров по разделам — каталог проходится раздел за разделом
  3. Сравнение значений свойств — товар сравнивается с товаром внутри своего раздела
  4. Сохранение результата — готовые связи между товарами записываются заранее
  5. Карточка товара днём — просто показывает уже готовый список, без пересчёта на лету

Ночью — вся тяжёлая работа, днём — только быстрое чтение готовых данных, без нагрузки на сайт в рабочее время.

Cron-задача (агент Bitrix) Запускается ночью по расписанию Обход товаров по разделам Каталог проходится раздел за разделом Сравнение значений свойств Внутри раздела, товар с товаром Сохранение результата Готовые связи между товарами Карточка товара днём Показывает готовый список без пересчёта Ночь: расчёт в фоне День: только чтение готовых данных, без нагрузки на сайт
Схема ночного пересчёта блока «Аналоги»

Результат

Что получили в результате:

  • в карточке товара появился рабочий блок альтернатив, которого раньше не было вообще;
  • решение работает автономно, без нагрузки на сайт в дневное время;
  • клиент не тратит время команды на ручное сопоставление товаров.

Похожая задача?

Если у вас интернет-магазин на Bitrix, Yii2 или Laravel и есть похожая потребность — автоматизировать вывод похожих, сопутствующих или рекомендованных товаров — посмотрите услуги по разработке и доработке сайтов или напишите напрямую: admin@precord.ru.

Рубрики: PHP Bitrix

Если есть вопросы, что-то в статье не понятно или нашли ошибку, напишите об этом в комментариях, все комментарии читаются и по возможности материал будет доработан.
Читайте также
Как добавить свою вкладку в карточку элемента СРМ?

Как добавить свою вкладку в карточку элемента СРМ?

Вкладки в карточках элементов CRM очень удобное решение. В этой статье разберем как добавить свою вкладку в карточку элемента CRM...

Подключить bitrix без подключения шаблона сайта

Подключить bitrix без подключения шаблона сайта

В статье приводится пример кода подключения bitrix без подключения шаблона сайта. Так же описано когда это может пригодится.

Bitrix сбросить буфер вывода

Bitrix сбросить буфер вывода

Функция RestartBuffer() в Bitrix используется для сброса буфера вывода. Она позволяет прервать вывод страницы на определенном этапе выполнения скрипта и...

Bitrix подключить модуль

Bitrix подключить модуль

Так как bitrix состоит из большого количества различных модулей, знать как их правильно подключать просто необходимо.

Bitrix регистрация своего события

Bitrix регистрация своего события

В статье приводится пример регистрации собственного события в bitrix и добавления на него обработчика.

Как в bitrix получить параметры запроса

Как в bitrix получить параметры запроса

Из этой статьи вы узнаете, какие классы и методы в bitrix помогут получить данные запроса без использования глобальных переменных. Это...

Комментарии

Комментариев пока нет
Данный сайт использует файлы cookies. Продолжая просмотр сайта, вы соглашаетесь с использованием файлов cookies.
ОК