На практике магазин на сайте уже открыт, а покупатель жалуется: кнопка "В корзину" не работает, на странице корзины пусто или оформление обрывается на доставке. По запросу "корзина битрикс" половина статей ведёт в облачный CRM, а вам нужна корзина интернет-магазина в 1С-Битрикс: Управление сайтом. Ниже — пошаговая настройка компонентов sale.basket.basket и sale.order.ajax от каталога до письма покупателю. После чтения вы пройдёте тестовый заказ и поймёте, готов ли магазин к рекламе.
Корзина магазина на CMS — это модуль sale и компоненты sale.basket.basket, sale.basket.basket.line и sale.order.ajax на вашем сайте. Это не CRM-корзина удалённых контактов и не обработка заказов в админке после оформления. Сначала проверьте тип цен с правом покупки, затем страницу /personal/cart/ с PATH_TO_ORDER, checkout с доставкой и оплатой, и только потом запускайте трафик.
Типичная ошибка: владелец интернет-магазина на Битрикс полчаса ищет раздел CRM в облачном портале, а покупатели не могут оформить заказ — на каталоге нет рабочей кнопки "Купить". Например, не настроены типы цен с правом «Разрешена покупка» и не размещён компонент sale.basket.basket на странице корзины. Если магазин ещё не запущен, начните с пошагового плана запуска интернет-магазина — без активного модуля sale и каталога с ценами корзина не заработает.
Статья только про checkout CMS на своём хостинге. Если вы искали корзину в облачном CRM — это не наш продукт; здесь настраивают корзину магазина на своём домене.
Настройте корзину: sale.basket.basket и мини-корзину в шапке
Корзина интернет-магазина - это временный список товаров, который хранит модуль sale для текущего посетителя. За отображение отвечают штатные компоненты, а не разделы CRM. Если после смены шаблона корзины счётчик в шапке показывает старое — сбросьте composite и managed cache по гайду: очистить кэш битрикс и resize cache.
| Компонент | Где размещают | Задача |
|---|---|---|
| sale.basket.basket | Страница /personal/cart/ | Полный список товаров, количество, итог, кнопка "Оформить заказ" |
| sale.basket.basket.line | Шапка сайта | Мини-корзина: счётчик и сумма без перехода на отдельную страницу |
| sale.order.ajax | Страница /personal/order/ | Одностраничное оформление: покупатель, доставка, оплата |
В визуальном редакторе путь к корзине: Магазин > Корзина > Корзина. Официальная справка: sale.basket.basket. Ключевой параметр - PATH_TO_ORDER: URL страницы checkout, обычно /personal/order/.
Мини-корзину в шаблон шапки добавляют через bitrix:sale.basket.basket.line с теми же путями к корзине и оформлению. Без неё покупатель не видит, что товар добавился, и уходит с сайта.
Делайте: задайте одинаковые пути в корзине, мини-корзине и checkout. Не делайте: ищите настройки корзины в CRM-портале — там другой продукт.
Разместите страницу корзины и checkout: поля покупателя
Страница корзины и оформление заказа - две разные страницы, связанные параметрами компонентов.
- Создайте или проверьте страницу /personal/cart/ и разместите на ней
bitrix:sale.basket.basket. - В параметрах компонента укажите
PATH_TO_ORDERна страницу checkout, например /personal/order/. - На странице checkout разместите
bitrix:sale.order.ajax; в нём задайтеPATH_TO_BASKETобратно на корзину. - Откройте Настройки магазина → Настройка формы оформления заказа и проверьте поля для типов плательщиков "Физическое лицо" и "Юридическое лицо".
- Добавьте свойство Местоположение - без него блок доставки на checkout часто пустой.
- Если корзина и checkout на одной странице, включите
BASKET_WITH_ORDER_INTEGRATION = Y- итог пересчитывается синхронно через JS.
Схема пути покупателя:
Каталог → "В корзину" → /personal/cart/ → "Оформить заказ" → sale.order.ajax → оплата → письмо покупателю
Подробнее про поля checkout - в учебном курсе по форме оформления. Поле купона на checkout включайте параметром SHOW_COUPONS = Y, а сами правила скидок настраивайте отдельно - см. гайд по скидкам и промокодам.
Делайте: после смены параметров сбрасывайте кеш компонентов. Не делайте: оставляйте checkout без свойства "Местоположение" - доставка не появится.
Проверьте кнопку "Купить" на каталоге и карточке товара
Если кнопки "Купить" нет, товар не попадает в корзину.
Клик ничего не делает — проблема ещё до checkout. Чаще всего виноваты типы цен, а не сам компонент корзины.
На catalog.section и catalog.element проверьте:
- PRICE_CODE - код типа цен, например "BASE";
- ACTION_VARIABLE - имя переменной добавления в корзину;
- флаг CAN_BUY у товара - если false, кнопка скрыта.
Типичная причина CAN_BUY=false: в настройках типа цен пустой список CAT_PRICES или нет права "Разрешена покупка" для группы "Все пользователи (включая неавторизованных)". Путь: Магазин > Настройки > Типы цен. Обсуждение на форуме: CAN_BUY всегда false.
Тест добавления: откройте каталог в режиме инкогнито, нажмите "В корзину", перейдите на /personal/cart/ - товар и сумма должны совпасть. Если пусто - проверьте остатки на складе и активность модуля sale.
Делайте: тестируйте с гостевой сессии, как реальный покупатель. Не делайте: проверяйте корзину только из-под администратора - у админа другие права на цены.
Настройте параметры магазина для checkout: доставка и оплата
Корзина показывает товары и сумму, но финальный заказ создаётся только когда на checkout выбраны доставка и оплата. Базовые настройки - в Магазин > Настройки магазина: валюта, НДС, типы плательщиков.
| Блок на checkout | Если пустой | Куда идти |
|---|---|---|
| Доставка | Нет служб или не задано местоположение | настройка доставки на сайте |
| Оплата | Нет активных платёжных систем | подключение оплаты |
| Купон | Поле скрыто | SHOW_COUPONS=Y; правила - в статье про скидки |
На этапе B35 достаточно убедиться, что блоки не пустые. Детальную настройку служб доставки и платёжных систем не дублируем - для этого есть отдельные гайды по ссылкам выше.
Минимальная сумма заказа, ограничения по весу и региону задаются в правилах корзины и шаблоне sale.order.ajax. Если checkout показывает предупреждение о сумме - сначала доберите тестовый заказ до порога, потом снова проверяйте.
Делайте: перед запуском рекламы прогоните checkout с тестовой платёжной системой. Не делайте: путайте настройку страницы корзины с обработкой заказов в админке - это тема обработки заказов после оформления.
Пройдите чек-лист: тестовый заказ, письма и Метрика
Готовность магазина проверяют не глазами в админке, а полным циклом покупки.
- Откройте сайт в инкогнито и добавьте тестовый товар с каталога.
- На /personal/cart/ проверьте состав, количество и итоговую сумму.
- Нажмите "Оформить заказ", заполните поля, выберите доставку и оплату.
- Завершите заказ - в Магазин > Заказы появится запись со статусом N ("Принят").
- Проверьте почтовое событие покупателю и письмо администратору.
- В Яндекс.Метрике настройте цель "Добавление в корзину" по клику на кнопку или URL корзины.
- После запуска смотрите отчёт Магазин > Отчёты > Брошенные корзины - он показывает, где покупатели уходят.
Если товар не добавляется - сбросьте кеш, проверьте CAN_BUY и типы цен. Если корзина пустая после клика - сверьте PATH_TO_ORDER и сессию. Если checkout виден при пустой корзине - известный edge-case при BASKET_WITH_ORDER_INTEGRATION; обновите страницу или разнесите компоненты на разные URL.
Нужна помощь с настройкой checkout под ваш каталог - напишите через форму контактов, разберём цепочку от кнопки "Купить" до письма покупателю.
Автор: Максим Мольков, разработчик 1С-Битрикс.
Источники: официальная документация 1С-Битрикс (dev.1c-bitrix.ru) и практика внедрений на CMS.
Частые вопросы
Где настроить страницу корзины в Битрикс?
Создайте страницу, например /personal/cart/, и разместите компонент bitrix:sale.basket.basket через визуальный редактор (Магазин > Корзина > Корзина). В параметрах укажите PATH_TO_ORDER на страницу оформления. Мини-корзину в шапку добавьте через sale.basket.basket.line.
Почему товар не добавляется в корзину?
Проверьте тип цен: право "Разрешена покупка" для неавторизованных, заполненный CAT_PRICES, остатки на складе и PRICE_CODE в catalog.section. Частая причина - CAN_BUY=false из-за пустых настроек цены. Тестируйте в режиме инкогнито.
Чем корзина отличается от правил скидок?
Корзина - UI и компоненты sale.basket.*, куда попадают товары. Правила скидок и промокоды считают скидку на этапе оформления. Поле купона на checkout включают SHOW_COUPONS=Y, а сами правила настраивают отдельно в модуле скидок.
Как проверить, что оформление заказа работает?
Пройдите тестовый заказ: каталог → корзина → sale.order.ajax → оплата. В админке заказ со статусом N, покупателю приходит письмо. Дополнительно настройте цель "Добавление в корзину" в Яндекс.Метрике.
Это та же корзина, что в облачном CRM?
Нет. В CRM «корзина» часто означает удалённые контакты или файлы на диске. Корзина интернет-магазина — модуль sale на сайте 1С-Битрикс: Управление сайтом. Настраивается в админке вашего домена, а не в облачном портале.
Что делать, если на checkout нет доставки или оплаты?
Для доставки проверьте свойство "Местоположение" в форме заказа и активные службы доставки. Для оплаты - подключённые платёжные системы в настройках магазина. Если блоки пустые, настройте их по отдельным гайдам, затем повторите тестовый заказ.
Было полезно?
Поставьте лайк, если статья помогла разобраться.
Поделиться статьёй
Отправьте тому, кому это пригодится.
Можно поделиться и фрагментом: выделите текст статьи.