Разработка системы рекомендаций товаров 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка системы рекомендаций товаров 1С-Битрикс
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1321
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    914
  • 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
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    810
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    709
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Вы теряете до 30% выручки, если в вашем интернет-магазине на 1С-Битрикс нет персонализированных рекомендаций. Покупатель приходит за конкретным товаром, но не видит сопутствующих позиций, не получает предложений на основе своих интересов — и уходит к конкурентам. Мы решаем эту задачу, внедряя системы рекомендаций, которые увеличивают средний чек на 15–25% и конверсию в покупку. Опыт 10+ лет, сертифицированные специалисты, гарантия результата.

Почему персонализация так эффективна?

Персонализированные рекомендации работают потому, что снижают когнитивную нагрузку на покупателя. Вместо того чтобы перебирать сотни товаров, он видит только релевантные варианты. Алгоритмы анализируют поведение пользователя — просмотры, добавления в корзину, покупки — и подбирают то, что с высокой вероятностью заинтересует именно его. Сравните: по данным нашей практики, collaborative filtering даёт CTR на 30% выше, чем content-based, при наличии 1000+ действий на товар. Исследование McKinsey показывает, что персонализация повышает выручку на 10-30%.

Как алгоритмы рекомендаций повышают конверсию?

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

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

function getContentBasedRecommendations(int $productId, int $limit = 10): array {
    $product  = \CIBlockElement::GetByID($productId)->GetNext();
    $iblockId = $product['IBLOCK_ID'];
    $price    = \CPrice::GetBasePrice($productId)['PRICE'];
    $sectionId = $product['IBLOCK_SECTION_ID'];

    // Товары из той же категории в ценовом диапазоне ±30%
    $result = \CIBlockElement::GetList(
        ['RAND' => 'ASC'],
        [
            'IBLOCK_ID'          => $iblockId,
            'IBLOCK_SECTION_ID'  => $sectionId,
            '!ID'                => $productId,
            '>=CATALOG_PRICE_1'  => $price * 0.7,
            '<=CATALOG_PRICE_1'  => $price * 1.3,
            'ACTIVE'             => 'Y',
        ],
        false,
        ['nPageSize' => $limit],
        ['ID', 'NAME', 'DETAIL_PAGE_URL', 'PREVIEW_PICTURE']
    );

    $items = [];
    while ($item = $result->GetNext()) {
        $items[] = $item;
    }
    return $items;
}

Алгоритм прост в реализации и работает моментально, но не учитывает вкусы конкретного пользователя.

Collaborative filtering — «пользователи, которые смотрели этот товар, также смотрели...» Требует накопленной истории просмотров и покупок, но даёт более персонализированные рекомендации. Собираем данные из:

  • b_sale_basket и b_sale_order — реальные покупки.
  • Кастомная таблица custom_product_views — просмотры карточек.
  • b_sale_fuser — гостевые пользователи.

Производительность коллаборативной фильтрации на 30% выше content-based по CTR при наличии 1000+ действий на товар.

Матричная факторизация (ALS/SVD) — продвинутый алгоритм, требует библиотек (Python: implicit, surprise). Выносим расчёт рекомендаций в отдельный микросервис на Python, результаты сохраняем в Redis/PostgreSQL, Битрикс только читает. Такой подход даёт прирост CTR до 12% на крупных каталогах.

Сбор поведенческих данных

// Трекинг просмотра товара
// Вызывается в шаблоне компонента catalog.element
$userId  = $USER->GetID() ?: 0;
$fuserId = (int)\Bitrix\Sale\Fuser::getId();

$db->query("
    INSERT INTO custom_product_views (product_id, user_id, fuser_id, viewed_at)
    VALUES (?, ?, ?, NOW())
    ON DUPLICATE KEY UPDATE view_count = view_count + 1, viewed_at = NOW()
", [$productId, $userId, $fuserId]);
CREATE TABLE custom_product_views (
    id         SERIAL PRIMARY KEY,
    product_id INT NOT NULL,
    user_id    INT DEFAULT 0,
    fuser_id   INT NOT NULL,
    view_count INT DEFAULT 1,
    viewed_at  DATETIME,
    UNIQUE KEY uk_product_fuser (product_id, fuser_id),
    INDEX idx_fuser (fuser_id),
    INDEX idx_product (product_id)
);

Расчёт «пользователи также смотрели»

-- Товары, которые чаще всего смотрят вместе с товаром $productId
SELECT
    v2.product_id,
    COUNT(DISTINCT v2.fuser_id) AS co_views
FROM custom_product_views v1
JOIN custom_product_views v2
    ON v1.fuser_id = v2.fuser_id
    AND v2.product_id != v1.product_id
    AND v2.viewed_at BETWEEN DATE_SUB(v1.viewed_at, INTERVAL 1 HOUR)
                         AND DATE_ADD(v1.viewed_at, INTERVAL 1 HOUR)
WHERE v1.product_id = :productId
GROUP BY v2.product_id
ORDER BY co_views DESC
LIMIT 20;

Результаты кешируются в Redis на 6–24 часа. Пересчитываются агентом Битрикс ночью по всем популярным товарам.

Персонализация для авторизованного пользователя

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

function getPersonalizedRecommendations(int $userId, int $limit = 12): array {
    // Последние просмотренные категории пользователя
    $recentCategories = getRecentUserCategories($userId, 5);

    // Товары из этих категорий, которые он ещё не смотрел
    return \CIBlockElement::GetList(
        ['CATALOG_PRICE_1' => 'ASC'],
        [
            'IBLOCK_ID'         => CATALOG_IBLOCK_ID,
            'IBLOCK_SECTION_ID' => $recentCategories,
            '!ID'               => getViewedProductIds($userId),
            'ACTIVE'            => 'Y',
        ],
        false,
        ['nPageSize' => $limit],
        ['ID', 'NAME', 'DETAIL_PAGE_URL', 'PREVIEW_PICTURE']
    );
}

Административное управление рекомендациями

Система позволяет:

  • Просматривать статистику кликов по рекомендациям (CTR каждого алгоритма).
  • Добавлять ручные рекомендации (пинкоды) для отдельных товаров.
  • Исключать товары из рекомендаций (распроданные, сезонные).
  • A/B тестировать алгоритмы: половина пользователей видит content-based, половина — collaborative.

Сравнение подходов по времени и эффекту

Алгоритм Время реализации Охват данных CTR (в среднем)
Content-based 2–3 дня Нет истории 3–5%
Collaborative (SQL) 3–5 дней 1000+ действий 6–9%
SVD-микросервис 5–7 дней 10000+ действий 8–12%

Сроки

Компонент Срок
Сбор данных о просмотрах и покупках 2–3 дня
Content-based рекомендации 2–3 дня
Collaborative filtering (SQL-подход) 3–5 дней
Кеширование + агент пересчёта 1–2 дня
Персонализация для авторизованных 2–3 дня
Административная панель + A/B тест 3–4 дня
Тестирование 2–3 дня

Итого: 2.5–3.5 недели для полной системы. Content-based рекомендации без персонализации — 1 неделя.

Что входит в работу

  • Документация по API рекомендаций и схеме данных.
  • Доступ к админ-панели управления рекомендациями.
  • Обучение сотрудников (администрирование, A/B тесты).
  • Поддержка 2 месяца после запуска (исправление ошибок, донастройка).

Как мы внедряем систему: пошаговый план

  1. Анализ данных — оцениваем объём каталога, историю просмотров и покупок, определяем целевые страницы для размещения рекомендаций.
  2. Выбор алгоритма — на основе анализа выбираем content-based, collaborative или гибридный подход. Для небольших магазинов часто достаточно content-based, для крупных — коллаборативная фильтрация с collaborative filtering.
  3. Интеграция сбора данных — внедряем трекинг просмотров и покупок через кастомные таблицы и события Битрикс.
  4. Разработка рекомендательных блоков — создаём компоненты для вывода рекомендаций на каталоге, карточке товара, в корзине.
  5. Кеширование и агенты — настраиваем Redis для быстрого доступа и агенты Битрикс для ночного пересчёта.
  6. A/B тестирование — запускаем тестирование разных алгоритмов для сбора статистики.
  7. Деплой и обучение — развёртываем на продакшене, обучаем сотрудников работе с админ-панелью.
Типичные ошибки при внедрении
  • Недостаток данных для collaborative filtering — если у вас менее 1000 действий на товар, коллаборативная фильтрация будет работать хуже content-based. Начинайте с простого подхода и накапливайте историю.
  • Игнорирование кеширования — без Redis или аналогичного быстрого хранилища запросы к базе могут замедлить страницу. Мы используем тегированное кеширование Битрикс.
  • Неправильный выбор окна совместных просмотров — в расчётах «также смотрели» важно ограничить интервал времени (например, 1 час), иначе будут попадать случайные товары.

Закажите разработку системы рекомендаций и увеличьте продажи. Наша команда реализовала системы рекомендаций для 20+ интернет-магазинов на Битрикс. Оценим ваш проект за 1 рабочий день. Получите консультацию — свяжитесь с нами для расчёта стоимости и сроков.