К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как отключить корзину в 1С-Битрикс

Подробная инструкция, как отключить корзину в 1С-Битрикс: настройки модуля, правка шаблона, удаление компонентов, отключение оформления заказа и проверка результата.

Корзина в 1С-Битрикс — часть модуля «Интернет-магазин» (sale), и полностью «выключить» её одной кнопкой нельзя. На практике отключение корзины означает комплекс действий: убрать компоненты корзины и оформления заказа из шаблонов страниц, скрыть ссылки «В корзину» и кнопки «Купить», отключить обработчики добавления товаров и убедиться, что заказы больше не создаются.

Такая задача возникает, когда сайт работает как витрина или каталог без онлайн-продаж, когда магазин временно приостанавливает приём заказов или когда корзину заменяет форма «Запросить цену» либо интеграция с внешней системой. Подход зависит от цели: иногда достаточно скрыть элементы интерфейса, а иногда нужно полностью заблокировать создание заказов на уровне логики.

Важно понимать: простое удаление ссылок не отключает механизм. Прямой переход по адресу /personal/cart/ или вызов обработчика sale.basket.basket всё равно может добавить товар. Поэтому ниже разобраны все уровни отключения — от визуального до программного, а также способы проверить, что корзина действительно не работает.

Определите цель: скрыть корзину или полностью отключить заказы

Прежде чем вносить изменения, ответьте на вопрос: нужно ли только убрать корзину из интерфейса или требуется полностью остановить приём заказов. От этого зависит глубина доработок и риск что-то сломать.

Если сайт превращается в каталог-витрину, достаточно скрыть кнопки покупки и компоненты корзины — товары и цены останутся видимыми, но купить ничего будет нельзя. Если же магазин закрывается полностью, дополнительно отключают оформление заказа, платёжные системы и уведомления о новых заказах.

Маршрут решения

Как выбрать действие

Нужен каталог без продаж, но с ценамиСкройте кнопки покупки и корзину в шаблонах, компоненты заказа удалите со страниц
Магазин временно не принимает заказыОтключите оформление заказа и выведите заглушку, каталог оставьте без изменений
Магазин закрывается насовсемУберите компоненты, заблокируйте URL корзины и заказа, отключите платёжные системы и почтовые события заказа
Корзину заменяет форма заявкиУдалите кнопки покупки, добавьте форму «Запросить цену» вместо них

Сделайте резервную копию перед изменениями

Любые правки шаблонов и настроек модуля sale выполняйте только после создания резервной копии. В Битриксе это делается через «Настройки → Инструменты → Резервное копирование» либо средствами хостинга. Копия должна включать файлы и базу данных.

Дополнительно скопируйте вручную файлы шаблонов, которые планируете править: шаблон сайта, шаблоны компонентов каталога и страницы /personal/cart/index.php и /personal/order/make/index.php (пути могут отличаться в зависимости от структуры сайта). Это позволит быстро вернуть отдельный файл без полного восстановления.

Уберите кнопки «В корзину» и «Купить» из каталога

Основная точка входа в корзину — кнопки добавления товара в карточках и списках. Они выводятся шаблонами компонентов catalog.section, catalog.element и catalog.item. Откройте файлы шаблона соответствующего компонента (обычно в /bitrix/templates/ваш_шаблон/components/bitrix/catalog/...) и найдите блок с кнопками покупки.

Кнопки обычно формируются по данным массивов ADD_TO_BASKET_ACTION, CATALOG_ADD_TO_BASKET или через параметры ADD_TO_BASKET_ACTION в настройках компонента. Есть два безопасных способа их убрать:

  • в настройках компонента каталога снять галочки отображения кнопок «Купить» и «В корзину», если шаблон это поддерживает;
  • закомментировать или удалить HTML-блок кнопок в файле шаблона, обернув его в комментарий, чтобы при необходимости быстро вернуть.

После правки проверьте все режимы отображения: список товаров в разделе, карточку товара, блоки «Рекомендуемые» и «С этим товаром покупают» — кнопки могут дублироваться в нескольких шаблонах.

Удалите компоненты корзины и оформления заказа со страниц

Страница корзины обычно расположена по адресу /personal/cart/ и содержит компонент sale.basket.basket, а оформление заказа — /personal/order/make/ с компонентом sale.order.ajax. Откройте эти страницы в визуальном редакторе или через файловую структуру и удалите вызовы компонентов.

Вместо удалённого компонента разместите текст-заглушку, например: «Оформление заказов на сайте временно недоступно. Свяжитесь с нами удобным способом». Это лучше, чем пустая страница или ошибка 404: посетитель поймёт, что сайт работает, а поисковики не получат мусорную страницу.

Порядок отключения страниц корзины и заказа
  1. 1
    Откройте файл страницы корзины (обычно /personal/cart/index.php) в редакторе
  2. 2
    Найдите вызов $APPLICATION->IncludeComponent с sale.basket.basket и удалите или закомментируйте его
  3. 3
    Повторите для страницы оформления заказа с компонентом sale.order.ajax
  4. 4
    Вставьте текст-заглушку вместо компонентов
  5. 5
    Очистите кеш сайта и проверьте обе страницы в браузере

Скройте ссылку на корзину в шапке и отключите AJAX-добавление

В шапке большинства шаблонов выводится иконка корзины с количеством товаров — её формирует компонент sale.basket.basket.line или аналогичный блок в файле header.php шаблона сайта. Найдите этот вызов и удалите или закомментируйте его, иначе пустая иконка будет вводить посетителей в заблуждение.

Отдельный момент — AJAX-добавление товаров. Даже без видимых кнопок скрипты шаблона могут реагировать на скрытые элементы или прямые запросы к /bitrix/components/bitrix/catalog.item/ajax.php и обработчикам sale.basket.basket. Если требуется надёжная блокировка, добавьте обработчик события в init.php, отменяющий добавление в корзину.

php
// /local/php_interface/init.php — запрет добавления в корзину
AddEventHandler("sale", "OnBeforeBasketAdd", function(&$arFields) {
    global $APPLICATION;
    $APPLICATION->ThrowException("Корзина отключена");
    return false;
});

Такой обработчик прерывает добавление товара на уровне ядра: какие бы кнопки или скрипты ни сработали, позиция в корзину не попадёт. Это надёжнее, чем простое скрытие элементов интерфейса.

Отключите сопутствующие функции магазина

Если магазин закрывается полностью, одной корзины мало. Пройдитесь по настройкам модуля «Интернет-магазин» в административном разделе и отключите то, что больше не должно работать:

  • платёжные системы — деактивируйте обработчики оплаты, чтобы нельзя было оплатить старый заказ по сохранённой ссылке;
  • почтовые события о новом заказе (тип SALE_NEW_ORDER) — иначе менеджеры будут получать письма о заказах, созданных до отключения, или об ошибках;
  • автоматические уведомления покупателям о смене статуса заказа;
  • профили покупателя и историю заказов в личном кабинете — скройте соответствующие разделы меню.

Историю заказов в базе при этом не удаляйте: она может понадобиться для отчётности, возвратов и гарантийных обращений. Отключение касается только создания новых заказов и видимости функций для посетителей.

Типичные ошибки
01
Удалили только ссылку в шапке — корзина продолжает работать по прямому URL и через AJAX
02
Правили системные файлы в /bitrix/components/ — после обновления платформы всё вернулось
03
Забыли про кнопки в блоках рекомендаций и сравнения — товары добавляются в обход основного каталога
04
Удалили страницу корзины без заглушки — посетители и поисковики получают ошибку 404
05
Не очистили кеш после правок — изменения не видны и кажется, что ничего не сработало

Проверьте результат и очистите кеш

После всех правок сбросьте кеш: «Настройки → Настройки продукта → Автокеширование» → очистка кеша, плюс кеш шаблонов компонентов. Затем пройдите контрольный маршрут в режиме инкогнито.

Проверьте: в списке товаров и в карточке нет кнопок покупки; в шапке нет иконки корзины; прямой переход на /personal/cart/ показывает заглушку; попытка отправить POST-запрос на добавление товара (например, через консоль разработчика) завершается ошибкой, а не созданием позиции в корзине.

Контрольные точки

Как проверить результат

Карточка товара и список товаров
Норма

Кнопок «Купить» и «В корзину» нет

Тревожный признак

Кнопки видны или кликабельны

Прямой переход на /personal/cart/
Норма

Показывается заглушка без компонента корзины

Тревожный признак

Открывается рабочая корзина

Добавление товара через скрипт или старую ссылку
Норма

Ошибка, позиция не создаётся

Тревожный признак

Товар добавляется в корзину

Шапка сайта
Норма

Иконки и счётчика корзины нет

Тревожный признак

Иконка осталась, ведёт на пустую страницу

Частые вопросы

Можно ли отключить корзину, не трогая код?

Частично. В настройках компонентов каталога можно скрыть кнопки покупки, а страницы корзины — снять с публикации через управление структурой. Но AJAX-обработчики и прямые URL при этом остаются активными, поэтому для надёжного отключения без правки шаблонов или добавления обработчика в init.php не обойтись.

Что будет с уже созданными заказами и корзинами покупателей?

Ничего — данные в базе сохраняются. Отключение влияет только на интерфейс и создание новых позиций. Старые заказы остаются доступны в административном разделе, неоформленные корзины постепенно очищаются штатными агентами модуля.

Как временно закрыть магазин, чтобы потом быстро всё вернуть?

Закомментируйте вызовы компонентов, а не удаляйте их, и сохраните обработчик блокировки в отдельном файле, который подключается в init.php одной строкой. Для возврата достаточно убрать комментарии и отключить обработчик — вся структура останется на месте.

Можно ли вместо корзины оставить кнопку «Запросить цену»?

Да, это типовой сценарий для сайтов-витрин. В шаблоне карточки товара вместо кнопки покупки размещают кнопку, открывающую форму обратной связи (компонент main.feedback или форму инфоблока) с подстановкой названия товара. Корзина при этом отключается описанными выше способами.

Почему после отключения корзины кнопки появились снова?

Чаще всего правились системные файлы компонентов, которые перезаписались при обновлении платформы, либо не был очищен кеш. Проверьте, что изменения внесены в шаблон внутри папки /bitrix/templates/ или /local/templates/, и сбросьте кеш.

Итог

Что важно запомнить

Отключение корзины в 1С-Битрикс — это не одна настройка, а цепочка действий: убрать кнопки покупки из шаблонов каталога, удалить компоненты корзины и оформления заказа со страниц, скрыть иконку в шапке и при необходимости заблокировать добавление товаров обработчиком в init.php. Перед правками сделайте резервную копию, изменяйте только пользовательские шаблоны и после всего проверьте результат в режиме инкогнито, включая прямой переход на страницу корзины.