Разработка модуля рекомендательной системы 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка модуля рекомендательной системы 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка модуля рекомендательной системы 1С-Битрикс

Блок «С этим товаром покупают» есть почти в каждом интернет-магазине, но реализован по-разному. Самый простой вариант — ручная привязка в административном интерфейсе — не масштабируется при каталоге от 1 000 позиций. Следующий уровень — «похожие по категории» — работает, но нерелевантен: покупатель мотоцикла видит другие мотоциклы, а не шлемы и перчатки, которые ему действительно нужны. Умная рекомендательная система анализирует поведение покупателей и подбирает товары, которые реально увеличивают средний чек.

Подходы и выбор алгоритма

Три основных подхода к рекомендациям, которые реально применяются в e-commerce на Битрикс:

Collaborative filtering (совместная фильтрация). «Пользователи, купившие X, также купили Y». Требует достаточной истории заказов — работает с каталогом от 500 позиций и объёмом заказов от 1 000/мес. Матрица «пользователь × товар» строится из b_sale_basket и b_sale_order.

Content-based filtering. Рекомендации по схожести характеристик товара: категория, бренд, теги, ценовой диапазон. Работает с первого дня без истории заказов.

Гибридный подход. Для новых товаров (нет истории покупок) используется content-based, для товаров с накопленной статистикой — collaborative. Это оптимальное решение для большинства магазинов.

Архитектура модуля

Сборщик данных. Агент раз в сутки собирает пары «товар A был куплен вместе с товаром B» из b_sale_basket (фильтр: один заказ, оба товара в корзине). Результат — матрица совместных покупок в таблице myvendor_rec_cooc:

CREATE TABLE myvendor_rec_cooc (
    product_a   INT NOT NULL,
    product_b   INT NOT NULL,
    score       FLOAT NOT NULL,       -- нормализованный коэффициент
    updated_at  TIMESTAMP,
    PRIMARY KEY (product_a, product_b)
);

Нормализация score: используется метрика Жаккара (cooccurrence / (count_a + count_b - cooccurrence)), которая учитывает популярность товаров и не завышает рейтинг самых продаваемых позиций.

Блок рекомендаций. Компонент получает ID текущего товара, читает из myvendor_rec_cooc топ-N товаров по score, обогащает данными из b_iblock_element и b_catalog_price, отдаёт в шаблон. Полный запрос занимает 5–10 мс — данные уже предрассчитаны.

Детально: персонализированные рекомендации

Collaborative filtering в описанной выше форме — это рекомендации «к товару». Следующий уровень — персональные рекомендации «для пользователя»: «Мы думаем, вам понравится».

Для зарегистрированных пользователей модуль строит профиль интересов из:

  • истории просмотров (таблица myvendor_rec_view_log, пишется через AJAX при открытии карточки товара)
  • истории заказов из b_sale_order + b_sale_basket
// Запись просмотра товара
\MyVendor\Rec\ViewLogger::log(
    userId: $USER->GetID(),
    productId: (int)$arResult['ID'],
    sessionId: session_id()
);

На основе профиля раз в сутки агент рассчитывает персональный топ-20 товаров и кеширует в myvendor_rec_personal. На странице «Специально для вас» компонент читает этот кеш — никаких тяжёлых вычислений в рантайме.

Контекстные рекомендации

Помимо карточки товара и главной страницы, модуль реализует рекомендации в трёх контекстах:

  • Корзина: «Добавьте к заказу» — товары, часто покупаемые вместе с уже добавленными в корзину
  • Страница категории: похожие, но из смежных категорий
  • Пустые результаты поиска: альтернативы по характеристикам

A/B тестирование блоков

Модуль включает простой механизм A/B тестирования алгоритмов: часть пользователей (по hash от user_id) видит collaborative-рекомендации, другая часть — content-based. Конверсия в клик и покупку фиксируется в myvendor_rec_click_log. Статистика доступна в административном разделе.

Сроки разработки

Масштаб Состав Срок
Базовый Content-based + блок на карточке товара 2–3 недели
Средний + collaborative filtering + корзина + категория 5–7 недель
Полный + персонализация + A/B тест + API для мобайла 9–12 недель

Для запуска collaborative filtering нужна история заказов. Если магазин новый, стартуйте с content-based и переключайтесь на гибридный режим после накопления 500+ заказов.