Торговля и Склад · 10 мин
Как настроить корзину в 1С-Битрикс
Настройка корзины в 1С-Битрикс: компонент sale.basket.basket, свойства товаров, скидки, доставка и типичные ошибки. Практическое руководство для администраторов.
Корзина в 1С-Битрикс — это не отдельная страница, а связка компонентов, настроек модуля «Интернет-магазин» и шаблона сайта. Корректная работа корзины зависит от трёх вещей: правильно размещённого компонента sale.basket.basket, настроенных типов цен и складского учёта, а также корректных правил скидок. Если хотя бы один элемент настроен неправильно, покупатель увидит пустую корзину, неверную цену или ошибку при оформлении заказа.
Материал рассчитан на администраторов и контент-менеджеров, которые настраивают магазин через административную панель без правки PHP-кода. Все действия выполняются в разделах «Магазин» и «Настройки», а также в визуальном редакторе страниц. Перед началом убедитесь, что у вашей учётной записи есть права на управление модулем «Интернет-магазин» и настройку компонентов.
Отдельно стоит понимать различие редакций: полноценная корзина с оформлением заказа доступна в редакциях, где присутствует модуль «Интернет-магазин» (sale). В редакции «Старт» модуля нет, и корзину придётся реализовывать сторонними средствами — это частая причина «неработающей» корзины у начинающих пользователей.
Проверка предварительных условий
Прежде чем размещать компонент корзины, убедитесь, что базовая инфраструктура магазина готова. Откройте раздел «Настройки → Модули» и проверьте, что модуль «Интернет-магазин (sale)» установлен. Затем перейдите в «Магазин → Настройки → Типы цен» и убедитесь, что создан хотя бы один базовый тип цены и он привязан к группам пользователей, включая неавторизованных посетителей.
Второе условие — каталог товаров. Инфоблок каталога должен быть помечен как торговый каталог в настройках модуля «Торговый каталог», а у товаров должны быть заполнены цены и, при включённом складском учёте, остатки. Товар без цены либо не добавится в корзину, либо добавится с нулевой стоимостью — в зависимости от настроек.
Создание страницы корзины и размещение компонента
Создайте в структуре сайта раздел, например /personal/cart/, и добавьте в него страницу index.php. Откройте страницу в визуальном редакторе и разместите компонент «Корзина» (sale.basket.basket) из группы «Магазин». Это основной компонент, который выводит список товаров, позволяет менять количество, применять купоны и удалять позиции.
В параметрах компонента обратите внимание на несколько ключевых настроек. Параметр «Путь к странице оформления заказа» должен указывать на страницу с компонентом оформления заказа (обычно /personal/order/make/ с компонентом sale.order.ajax). Опция «Использовать AJAX» делает обновление корзины без перезагрузки страницы — включайте её, если шаблон это поддерживает. Режим «Отложенные товары» позволяет покупателю переносить позиции в список «Отложено».
После сохранения откройте страницу в публичной части под обычным посетителем, добавьте товар из каталога и проверьте, что он появляется в корзине. Если корзина пуста, хотя товар добавлялся, чаще всего проблема в сессиях, куках или в конфликте шаблона с AJAX-режимом.
- 1Создайте раздел /personal/cart/ и страницу index.php в нём
- 2Разместите компонент sale.basket.basket через визуальный редактор
- 3Укажите в параметрах путь к странице оформления заказа
- 4Включите AJAX-режим, если шаблон его поддерживает
- 5Добавьте тестовый товар и проверьте отображение в корзине
- 6Проверьте изменение количества, удаление и применение купона
Настройка кнопки «В корзину» и мини-корзины
Добавление товара в корзину происходит из каталога: в шаблоне компонента catalog или catalog.element используется ссылка с параметром action=ADD2BASKET и идентификатором товара, либо AJAX-вызов через JS-библиотеку Битрикса. Если кнопка «Купить» не работает, проверьте, что в настройках инфоблока каталога включена опция «Является торговым каталогом» и у товара есть доступная цена.
Мини-корзина в шапке сайта реализуется компонентом sale.basket.basket.line. Он показывает количество товаров и сумму, а по клику ведёт на страницу корзины. Разместите его в header шаблона сайта и укажите путь к полной корзине. Учтите, что при включённом композитном кэше число товаров в мини-корзине может отображаться с задержкой — для таких блоков используется динамическая область шаблона.
Цены, скидки и купоны в корзине
Итоговая стоимость в корзине формируется из типа цены, доступного пользователю, и применённых скидок. Правила работы с корзиной настраиваются в разделе «Магазин → Скидки → Правила работы с корзиной». Здесь можно задать скидку от суммы заказа, процента на конкретные товары, накопительные программы и подарочные условия. Каждое правило имеет приоритет и опцию «Прекратить применение скидок» — неверный порядок правил частая причина двойных или, наоборот, пропавших скидок.
Купоны создаются внутри правила работы с корзиной на вкладке «Купоны». Чтобы поле ввода купона отображалось, в параметрах компонента корзины должна быть включена соответствующая опция. Проверяйте сроки действия купонов и привязку к группам пользователей: купон, ограниченный зарегистрированными покупателями, не сработает у гостя без объяснения причин.
Доставка, оплата и связь с оформлением заказа
Корзина сама по себе не рассчитывает доставку — это делает компонент оформления заказа sale.order.ajax. Однако корректность расчёта зависит от настроек в разделе «Магазин → Настройки → Службы доставки». Создайте хотя бы одну службу доставки, привяжите её к местоположениям и укажите ограничения по весу и сумме заказа. У товаров в каталоге должны быть заполнены вес и габариты, иначе расчёт стоимости доставки будет некорректным.
Платёжные системы настраиваются в разделе «Магазин → Настройки → Платёжные системы» и привязываются к типам плательщиков. Проверьте, что хотя бы одна платёжная система доступна для каждого типа плательщика (физическое и юридическое лицо), иначе на шаге оплаты покупатель увидит пустой список.
Типы плательщиков и свойства заказа задаются в «Магазин → Настройки → Список типов плательщиков» и «Свойства заказа». Минимальный набор для физического лица: ФИО, телефон или email, адрес доставки. Свойства должны быть привязаны к типу плательщика, иначе они не появятся на форме оформления.
Как проверить результат
Товар появляется в корзине с верной ценой и количеством
Корзина пуста или цена отличается от каталога
Сумма пересчитывается сразу, скидки применяются корректно
Сумма не меняется или скидка пропадает
Доступны способы доставки и оплаты, заказ создаётся
Пустой список доставки/оплаты или ошибка на последнем шаге
Типичные проблемы и их диагностика
Самая распространённая жалоба — «товар не добавляется в корзину». Причины по частоте: у товара нет цены доступного типа, товар деактивирован или у него нулевой остаток при включённом контроле остатков, ошибка в шаблоне кнопки покупки, проблемы с сессиями PHP на сервере. Проверяйте по цепочке: цена → остаток → активность → работа кнопки в консоли браузера.
Вторая типичная ситуация — корзина «обнуляется» при переходе между страницами. Это почти всегда признак проблем с куками или сессиями: некорректные настройки домена кук в «Настройки → Главный модуль», работа сайта одновременно по www и без www без редиректа, либо агрессивное кэширование на стороне хостинга или CDN.
Третья группа проблем — расхождение цен между каталогом и корзиной. Обычно виноваты правила скидок с неочевидными условиями, разные типы цен для авторизованных и гостей, либо включённый НДС, который в каталоге показан в цене, а в корзине выделен отдельной строкой.
Как выбрать действие
Ограничения и когда нужен разработчик
Стандартными средствами без программирования настраиваются: состав полей корзины, скидки и купоны, отложенные товары, связка с оформлением заказа, базовый внешний вид через настройки шаблона. Этого достаточно для большинства типовых магазинов.
К разработчику придётся обратиться, если нужны: нестандартный пересчёт цен по сложной формуле, интеграция корзины с внешними сервисами, кастомная логика комплектации товаров, существенная переделка шаблона компонента. Правка файлов компонента напрямую в папке /bitrix/components/ недопустима — изменения будут стёрты при обновлении. Шаблоны копируются в папку шаблона сайта, бизнес-логика выносится в обработчики событий.
Что важно запомнить
Рабочая корзина в 1С-Битрикс — это компонент sale.basket.basket на отдельной странице, корректные типы цен и остатки, продуманные правила скидок и настроенные службы доставки с платёжными системами. Любые изменения проверяйте полным тестовым заказом от добавления товара до оплаты.
Частые вопросы
Почему корзина показывает старое количество товаров после добавления?
Чаще всего причина в композитном или файловом кэше: блок мини-корзины закэширован вместе со страницей. Вынесите мини-корзину в динамическую область шаблона и сбросьте кэш. Также проверьте, нет ли кэширования на уровне хостинга или CDN.
Можно ли разрешить покупку без регистрации?
Да. В настройках модуля «Интернет-магазин» включите опцию разрешения оформления заказа без регистрации, а в параметрах компонента sale.order.ajax — автоматическую регистрацию пользователя при оформлении. Убедитесь, что группа неавторизованных пользователей имеет доступ к типу цены.
Как добавить поле купона, если его нет в корзине?
Откройте параметры компонента sale.basket.basket и включите опцию показа поля ввода купона. Затем проверьте, что в разделе «Магазин → Скидки» создано правило работы с корзиной с активными купонами — без правила ввод кода ни к чему не приведёт.
Товар добавляется в корзину с нулевой ценой — в чём причина?
У товара не заполнена цена для типа цен, доступного текущему пользователю, либо в настройках торгового каталога разрешена покупка при отсутствии цены. Заполните базовую цену и проверьте права групп пользователей на типы цен в разделе «Магазин → Настройки → Типы цен».
Как перенести настройки корзины на другой сайт?
Правила скидок, типы цен и службы доставки можно выгрузить через встроенные механизмы экспорта в соответствующих разделах модуля «Интернет-магазин». Настройки компонентов переносятся вместе со страницами и шаблоном сайта. После переноса обязательно проверьте привязки к инфоблокам и местоположениям — они могут отличаться.
Почему скидка не применяется к отдельным товарам?
Проверьте условия правила работы с корзиной: ограничения по разделам, свойствам товара, группам пользователей и срокам действия. Также посмотрите приоритеты правил — правило с более высоким приоритетом и включённой опцией прекращения применения скидок блокирует остальные.