Настройка корзины интернет-магазина 1С-Битрикс
Владельцы магазинов на 1С-Битрикс часто жалуются на низкую конверсию именно на этапе корзины. Типичные проблемы: медленная загрузка мини-корзины, конфликты скидок, потеря товаров при авторизации. Такие ошибки могут стоить до 30% выручки. Наш 10-летний опыт показывает: грамотная настройка корзины 1С-Битрикс способна увеличить конверсию на 15-30% без лишних вложений. В этой статье разберём ключевые механики — от скидок и кросс-продаж до слияния корзин и оптимизации производительности. Дополним их конкретными примерами и пошаговым руководством.
Почему корзина в 1С-Битрикс — это не просто список товаров?
Корзина в 1С-Битрикс — это объект \Bitrix\Sale\Basket, тесно связанный с заказом, скидками, правилами доставки и пользовательской сессией. Малейшая ошибка в настройке может привести к падению конверсии на 10-20%. Мы разберём компоненты sale.basket.basket, sale.basket.basket.line, механизмы слияния корзин и правила корзины (sale.discount). Также затронем интеграцию с 1С CommerceML и фискализацию по 54-ФЗ.
Компонент sale.basket.basket
Стандартный компонент sale.basket.basket отвечает за полную страницу корзины. Его параметры задают поведение и влияют на UX. Ниже — рекомендуемые значения для большинства проектов:
| Параметр | Описание | Рекомендуемое значение |
|---|---|---|
| COLUMNS_LIST | Какие колонки отображать (изображение, название, количество, цена, удалить) | ["PROPERTY_IMG", "NAME", "QUANTITY", "PRICE", "DELETE"] |
| HIDE_COUPON | Скрыть поле купона, если промо не используются | Y |
| QUANTITY_FLOAT | Разрешить дробное количество (для весовых товаров) | N, если товары штучные |
| PRICE_VAT_SHOW_VALUE | Показывать НДС отдельной строкой | Y для B2B |
| AUTO_CALCULATION | Пересчитывать корзину при каждом изменении количества без перезагрузки | Y |
Компонент работает через AJAX: при изменении количества отправляется запрос к \Bitrix\Sale\Compatible\BasketCompatibility или напрямую к \Bitrix\Sale\Basket::refresh(), пересчитываются скидки, обновляется итог.
Отложенные товары — встроенная функция корзины. Товар со свойством DELAY = Y не участвует в расчёте стоимости и доставки, но остаётся в b_sale_basket. Переключение между отложенным и активным состоянием выполняется методом \Bitrix\Sale\BasketItem::setField('DELAY', 'Y').
Как ускорить мини-корзину в 3 раза?
Мини-корзина (sale.basket.basket.line) обычно размещается в шапке сайта. Она показывает количество товаров и сумму. Основная проблема — производительность. Компонент по умолчанию обращается к базе при каждом хите. На высоконагруженных проектах мы используем:
- Кэширование на стороне клиента — данные корзины сохраняются в
localStorageи обновляются только при действиях пользователя. Это снижает нагрузку на сервер в 3-5 раз. - Подгрузка через отложенный AJAX-запрос после загрузки страницы (lazy load).
- Использование composite cache с исключением блока корзины из кэша через
\Bitrix\Main\Page\Frame.
Сравнение: хранение корзины в сессии даёт время загрузки мини-корзины около 200 мс, а localStorage — всего 40 мс. Разница в 5 раз — localStorage в 5 раз быстрее сессии. Дополнительно можно настроить тегированное кэширование, чтобы инвалидировать кэш только при изменении корзины.
Как избежать конфликтов скидок каталога и корзины?
Скидки в Битрикс делятся на скидки каталога (применяются к товару до корзины) и правила корзины (sale.discount). Правила корзины — мощный инструмент, работающий на уровне заказа.
Правило корзины состоит из условий и действий:
- Условия — что должно выполниться: сумма корзины больше N, в корзине есть товар из раздела X, количество товаров определённого свойства больше Y, купон активирован, пользователь принадлежит группе Z.
-
Действия — что происходит при выполнении условий: скидка N% на весь заказ, скидка на конкретный товар или раздел, подарок (добавление товара с нулевой ценой), бесплатная доставка (через флаг
DELIVERY_DISCOUNT).
Порядок применения скидок задаётся через приоритеты. Скидки с одинаковым приоритетом применяются совместно; с разным — последовательно, причём каждая следующая рассчитывается от уже скидочной цены. Флаг «Прекратить применение» останавливает цепочку — полезно для эксклюзивных акций.
Частая ошибка — конфликт скидок каталога и корзины. По умолчанию Битрикс не суммирует их: если товар уже имеет скидку каталога, правило корзины может не применяться. Поведение задаётся в настройках модуля sale → Тип пересчёта скидок. Мы всегда проверяем этот параметр и выставляем «Суммировать с предыдущими», чтобы избежать неожиданных результатов.
Как увеличить средний чек с помощью кросс-продаж?
Кросс-продажи (cross-sell) на странице корзины повышают средний чек. В Битрикс реализуются несколькими способами. Сравним их в таблице:
| Метод | Сложность | Скорость внедрения | Эффективность |
|---|---|---|---|
| Ручные привязки (свойство «Сопутствующие») | Низкая | 1-2 часа | Средняя, до 10% роста |
| Автоматические рекомендации (BigData) | Высокая | 2-3 дня при наличии данных | Высокая, до 25% роста |
| Правила корзины с подарком | Средняя | 4-6 часов | Средняя, до 15% роста |
Для максимальной эффективности кросс-продажи комбинируются: автоматические рекомендации для основной массы товаров и ручные связи для маржинальных позиций. В наших проектах такой подход даёт прирост среднего чека на 15-20%.
Как настроить слияние корзин при авторизации?
Когда неавторизованный пользователь добавляет товары в корзину, они привязаны к FUSER_ID — анонимному идентификатору из куки?
После авторизации Битрикс вызывает \Bitrix\Sale\Fuser::getIdByUserId() и выполняет слияние:
- Товары из анонимной корзины переносятся в корзину пользователя.
- Если товар уже есть в обеих корзинах — количество суммируется.
- Скидки пересчитываются для объединённой корзины.
Слияние происходит автоматически через обработчик события OnAfterUserLogin. Проблемы возникают, когда кастомная авторизация (SSO, внешний OAuth) обходит стандартный механизм. В этом случае нужно явно вызвать \Bitrix\Sale\Fuser::update() для объединения идентификаторов.
Типичные ошибки при настройке корзины:
- Не выставлен тип пересчёта скидок на «Суммировать с предыдущими» → конфликты.
- Мини-корзина не кэшируется → нагрузка на БД.
- Не настроено слияние для кастомной авторизации → потеря товаров.
- Отсутствует связь служб доставки и платёжных систем в sale.order.ajax → ошибки при оформлении.
Пошаговое руководство настройки правил корзины
- Перейдите в раздел «Маркетинг → Скидки и купоны» и создайте новое правило корзины.
- Задайте название и активность. Выберите тип скидки: процент, фиксированная сумма, подарок или бесплатная доставка.
- Настройте условия: сумма корзины, группа пользователя, наличие товара из раздела.
- Установите приоритет (чем выше, тем раньше применяется). Для эксклюзивных акций включите «Прекратить применение».
- Выберите тип пересчёта скидок: «Суммировать с предыдущими» — это предотвратит конфликты.
- Укажите действие: например, «Скидка 10% на весь заказ при сумме от 5 000 руб.».
- Сохраните и проверьте в корзине.
Настройка шагов оформления заказа
Переход из корзины к оформлению заказа контролируется компонентом sale.order.ajax. Его можно настроить на пошаговое оформление (отдельные страницы для доставки, оплаты, подтверждения) или на одностраничное (all-in-one). Практика показывает, что одностраничное оформление даёт конверсию на 15-20% выше, но требует больше работы с валидацией на клиенте.
Ключевые параметры: DELIVERY_TO_PAYSYSTEM — связь служб доставки с платёжными системами, SHOW_NOT_CALCULATED_DELIVERIES — показывать ли доставки, для которых не удалось рассчитать стоимость. Также важно настроить обработчики платёжных систем (ЮKassa, Сбер, АТОЛ) и фискализацию по 54-ФЗ через ОФД. Для корректного обмена с 1С CommerceML убедитесь, что корзина корректно передаёт реквизиты заказа.
Интеграция корзины с 1С и агенты
При обмене с 1С через CommerceML корзина должна правильно отображать остатки и цены. Мы настраиваем агенты для периодической синхронизации, чтобы данные всегда были актуальны. Тегированное кэширование (через Bitrix\Main\Page\Frame) позволяет инвалидировать кэш корзины при изменении цены или остатка товара. Это снижает количество запросов к базе на 40%.
Что входит в настройку корзины под ключ?
Мы предоставляем полный комплекс работ:
- Аудит текущей конфигурации корзины и производительности.
- Настройка компонентов sale.basket.basket и sale.basket.basket.line.
- Создание правил корзины (скидки, подарки, бесплатная доставка).
- Настройка кросс-продаж и рекомендаций.
- Интеграция с платёжными системами и 1С.
- Оптимизация скорости работы корзины.
- Документация по настройкам, обучение ваших менеджеров.
- Гарантия на работу — 6 месяцев.
Источник: официальная документация 1С-Битрикс — dev.1c-bitrix.ru
Гарантии и опыт
Более 500 успешных проектов. Сертифицированные специалисты (1С-Битрикс Professional). Средний прирост конверсии после нашей настройки — 22%. При обороте в 10 млн рублей это дополнительные 2.2 млн в год. Получите консультацию по настройке корзины без риска — мы оценим ваш проект бесплатно. Свяжитесь с нами, чтобы обсудить детали. Подробнее о процессе работы можно узнать на Wikipedia.







