На практике магазин на сайте уже открыт, а покупатель жалуется: кнопка "В корзину" не работает, на странице корзины пусто или оформление обрывается на доставке. По запросу "корзина битрикс" половина статей ведёт в облачный 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.
| Компонент | Где размещают | Задача |
|---|---|---|
| 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 нет доставки или оплаты?
Для доставки проверьте свойство "Местоположение" в форме заказа и активные службы доставки. Для оплаты - подключённые платёжные системы в настройках магазина. Если блоки пустые, настройте их по отдельным гайдам, затем повторите тестовый заказ.