Настройка корзины интернет-магазина 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка корзины интернет-магазина 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • 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С-Битрикс — не просто список товаров. Это объект \Bitrix\Sale\Basket, связанный с заказом, скидками, правилами доставки и пользовательской сессией. Грамотная настройка корзины напрямую влияет на конверсию: от скорости загрузки мини-корзины до логики слияния при авторизации. Разберём ключевые механики, правила скидок и приёмы кросс-продаж.

Компонент sale.basket.basket

Стандартный компонент sale.basket.basket отвечает за полную страницу корзины. Его параметры задают поведение:

  • COLUMNS_LIST — какие колонки отображать (изображение, название, количество, цена, удалить).
  • HIDE_COUPON — скрыть поле купона, если промо-акции не используются.
  • QUANTITY_FLOAT — разрешить дробное количество (для весовых товаров).
  • PRICE_VAT_SHOW_VALUE — показывать НДС отдельной строкой.
  • AUTO_CALCULATION — пересчитывать корзину при каждом изменении количества без перезагрузки страницы.

Компонент работает через AJAX: при изменении количества отправляется запрос к \Bitrix\Sale\Compatible\BasketCompatibility или напрямую к \Bitrix\Sale\Basket::refresh(), пересчитываются скидки, обновляется итог.

Отложенные товары — встроенная функция корзины. Товар со свойством DELAY = Y не участвует в расчёте стоимости и доставки, но остаётся в b_sale_basket. Переключение между отложенным и активным состоянием выполняется методом \Bitrix\Sale\BasketItem::setField('DELAY', 'Y').

Мини-корзина

Мини-корзина (sale.basket.basket.line) обычно размещается в шапке сайта. Она показывает количество товаров и сумму. Основная проблема — производительность. Компонент по умолчанию обращается к базе при каждом хите. На высоконагруженных проектах это решается:

  • Кэшированием на стороне клиента — данные корзины сохраняются в localStorage и обновляются только при действиях пользователя.
  • Подгрузкой через отложенный AJAX-запрос после загрузки страницы (lazy load).
  • Использованием composite cache с исключением блока корзины из кэша через \Bitrix\Main\Page\Frame.

Правила скидок корзины

Скидки в Битрикс делятся на скидки каталога (применяются к товару до корзины) и правила корзины (sale.discount). Правила корзины — мощный инструмент, работающий на уровне заказа.

Правило корзины состоит из условий и действий:

Условия — что должно выполниться:

  • Сумма корзины больше N.
  • В корзине есть товар из раздела X.
  • Количество товаров определённого свойства больше Y.
  • Купон активирован.
  • Пользователь принадлежит группе Z.

Действия — что происходит при выполнении условий:

  • Скидка N% на весь заказ.
  • Скидка на конкретный товар или раздел.
  • Подарок (добавление товара с нулевой ценой).
  • Бесплатная доставка (через флаг DELIVERY_DISCOUNT).

Порядок применения скидок задаётся через приоритеты. Скидки с одинаковым приоритетом применяются совместно; с разным — последовательно, причём каждая следующая рассчитывается от уже скидочной цены. Флаг «Прекратить применение» останавливает цепочку — полезно для эксклюзивных акций.

Частая ошибка — конфликт скидок каталога и корзины. По умолчанию Битрикс не суммирует их: если товар уже имеет скидку каталога, правило корзины может не применяться. Поведение задаётся в настройках модуля saleТип пересчёта скидок.

Кросс-продажи в корзине

Кросс-продажи (cross-sell) на странице корзины повышают средний чек. В Битрикс реализуются несколькими способами:

Через свойство товара «Сопутствующие» — привязка товаров на уровне инфоблока. Компонент catalog.recommended.products выводит их рядом с корзиной. Просто в настройке, но требует ручного заполнения связей.

Через автоматические рекомендации — модуль bigdata (Персонализация) анализирует поведение пользователей и подбирает товары на основе коллаборативной фильтрации. Настраивается в разделе Маркетинг → Персонализация. Работает только при достаточном объёме данных (минимум несколько тысяч заказов).

Через правила корзины с подарком — создаёте правило: «при покупке товара из раздела А — предложить товар из раздела Б со скидкой 50%». Пользователь видит предложение прямо в корзине и может принять его одним кликом.

Для максимальной эффективности кросс-продажи комбинируются: автоматические рекомендации для основной массы товаров и ручные связи для маржинальных позиций.

Слияние корзины при авторизации

Когда неавторизованный пользователь добавляет товары в корзину, они привязаны к FUSER_ID — анонимному идентификатору из куки. После авторизации Битрикс вызывает \Bitrix\Sale\Fuser::getIdByUserId() и выполняет слияние:

  1. Товары из анонимной корзины переносятся в корзину пользователя.
  2. Если товар уже есть в обеих корзинах — количество суммируется.
  3. Скидки пересчитываются для объединённой корзины.

Слияние происходит автоматически через обработчик события OnAfterUserLogin. Проблемы возникают, когда кастомная авторизация (SSO, внешний OAuth) обходит стандартный механизм. В этом случае нужно явно вызвать \Bitrix\Sale\Fuser::update() для объединения идентификаторов.

Настройка шагов оформления

Переход из корзины к оформлению заказа контролируется компонентом sale.order.ajax. Его можно настроить на пошаговое оформление (отдельные страницы для доставки, оплаты, подтверждения) или на одностраничное (all-in-one). Практика показывает, что одностраничное оформление даёт конверсию на 15-20% выше, но требует больше работы с валидацией на клиенте.

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