Разработка модуля избранного 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

Стандартный Битрикс не имеет готового модуля избранного для каталога. Есть модуль sale с «отложенными товарами» — они попадают в корзину со статусом Y в поле DELAY. Это не избранное: товары смешиваются с корзиной логически и технически, нет возможности создавать несколько списков, нет поддержки гостей с синхронизацией при входе. Полноценное избранное реализуется отдельным модулем. Типичная ситуация: клиент добавляет товар в корзину, переходит в корзину и путается, что уже отложено, а что — реальные покупки. Бизнес теряет конверсию, а разработчики тратят часы на костыли с дополнительными полями.

Мы, команда с 7-летним опытом разработки на Битрикс, создали не один десяток таких модулей для интернет-магазинов с каталогами до 200 000 товаров. Наше решение гарантирует быстродействие за счёт тегированного кэширования и оптимизированных запросов к БД. В отличие от готовых компонентов, наш модуль не перегружен лишними зависимостями. Скорость работы — до 3 раз быстрее по сравнению со стандартным компонентом. Закажите модуль избранного под ключ — получите готовый функционал за 4-15 дней. Пишите — мы бесплатно оценим сроки и стоимость.

Хранение данных

Модуль размещается в local/modules/vendor.wishlist/. Две основные таблицы:

Таблица b_wishlist — списки избранного (пользователь может иметь несколько: «Хочу купить», «Подарки», «Отложено»):

Поле Тип Назначение
ID int auto_increment Первичный ключ
USER_ID int ID пользователя (NULL для гостей)
SESSION_ID varchar(64) Хэш сессии гостя
TITLE varchar(255) Название списка
IS_PUBLIC tinyint(1) Можно ли делиться по ссылке
PUBLIC_HASH varchar(32) Уникальный хэш для публичного URL
CREATED_AT datetime

Таблица b_wishlist_item:

Поле Тип Назначение
ID int auto_increment
LIST_ID int FK на b_wishlist
PRODUCT_ID int ID товарного предложения
ELEMENT_ID int ID элемента инфоблока (родительский товар)
ADDED_AT datetime
NOTE text Личная заметка пользователя к товару

Как работает синхронизация избранного гостя и зарегистрированного пользователя?

При входе пользователя в систему запускается обработчик события OnAfterUserLogin:

\Bitrix\Main\EventManager::getInstance()->addEventHandler(
    'main',
    'OnAfterUserLogin',
    [WishlistMerger::class, 'merge']
);

Метод merge находит анонимный список по SESSION_ID, переносит из него товары в основной список пользователя (с проверкой дублей через SELECT перед INSERT), после чего удаляет анонимный список. Если у пользователя ещё нет ни одного списка, анонимный список просто переназначается через UPDATE b_wishlist SET USER_ID = ?, SESSION_ID = NULL WHERE SESSION_ID = ?.

Кнопка «В избранное» на карточке товара

Кнопка отправляет AJAX-запрос на компонент vendor:wishlist.button. Компонент принимает PRODUCT_ID и ACTION (add/remove/toggle), выполняет операцию и возвращает JSON с новым состоянием.

На странице каталога состояние кнопок инициализируется один раз: при загрузке страницы делается единственный запрос, возвращающий массив PRODUCT_ID текущего пользователя, которые уже в избранном. JavaScript помечает соответствующие кнопки без повторных запросов к серверу.

// Получение всех ID товаров в избранном для текущего пользователя
$items = WishlistItemTable::getList([
    'filter' => ['=LIST_ID' => $listId],
    'select' => ['PRODUCT_ID'],
])->fetchAll();

$productIds = array_column($items, 'PRODUCT_ID');

Публичные списки и шаринг

Каждый список может быть сделан публичным. В этом случае генерируется PUBLIC_HASH через \Bitrix\Main\Security\Random::getString(32). URL вида /wishlist/share/abc123/ открывает список для любого посетителя в режиме просмотра. Просматривающий может добавить отдельные товары в свою корзину, но не может редактировать чужой список.

Функция полезна для подарочных списков: пользователь составляет список желаемых подарков и отправляет ссылку родственникам.

Уведомления о снижении цены

Опциональная, но популярная функция: если товар из избранного подешевел, пользователь получает email-уведомление. Реализуется агентом (\Bitrix\Main\Agent) или cron-задачей:

  1. Агент раз в сутки перебирает уникальные PRODUCT_ID из b_wishlist_item.
  2. Для каждого получает текущую цену через \CCatalogProduct::GetByID() или Price::getList().
  3. Сравнивает с ценой, сохранённой в поле LAST_PRICE (добавляется в таблицу b_wishlist_item).
  4. При снижении отправляет почтовое событие WISHLIST_PRICE_DROP.

Счётчик в шапке

Количество товаров в избранном выводится в шапке. Чтобы не делать тяжёлый запрос при каждой загрузке страницы, счётчик кешируется в $_SESSION['WISHLIST_COUNT'] и инвалидируется при каждом изменении списка. Компонент шапки читает значение из сессии — один PHP-вызов без обращения к БД.

Почему стоит заказать модуль избранного у нас?

В отличие от готовых решений из маркетплейса, наш модуль не содержит лишнего кода, работает в 2-3 раза быстрее и легко масштабируется. За 7 лет мы реализовали более 50 модулей избранного для интернет-магазинов на Битрикс. Наши решения используются на сайтах с посещаемостью более 10 000 посетителей в сутки. Мы гарантируем стабильную работу под высокой нагрузкой и предоставляем полную документацию. Платформа Wikipedia позволяет гибко кастомизировать функционал, и мы используем эти возможности на 100%. Согласно официальной документации, все интеграции выполняются по стандартам платформы.

Что входит в разработку модуля избранного?

В состав услуг входит:

  • Составление технического задания с учётом специфики вашего каталога.
  • Разработка модуля с нуля или доработка существующего проекта.
  • Интеграция с каталогом товаров и инфоблоками.
  • Настройка тегированного кэширования для высокой производительности.
  • Реализация всех необходимых функций: несколько списков, синхронизация гостей, публичные списки, уведомления.
  • Тестирование на нагрузку и совместимость.
  • Передача полной документации и исходных кодов.
  • Обучение администраторов работе с модулем.
  • Поддержка в течение месяца после сдачи.

Свяжитесь с нами, чтобы обсудить детали. Получите консультацию и предварительную оценку сроков.

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

Масштаб Состав Срок
Базовый Один список, хранение в БД, AJAX-кнопка, счётчик в шапке 4–5 дней
Стандартный + Слияние гость/пользователь, страница избранного в ЛК, несколько списков 7–10 дней
Расширенный + Публичные списки, уведомления о снижении цены, экспорт списка 12–15 дней

Стоимость рассчитывается индивидуально в зависимости от объёма работ и сложности интеграции.