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

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

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

В стандартной конфигурации 1С Битрикс каждая информационная блок-секция автоматически создает корзину для временного хранения удаляемых элементов. Этот механизм предназначен для безопасного восстановления данных, но в проектах с большим количеством элементов он может замедлять работу сайта и создавать лишние нагрузки на базу данных.

Отключение корзины выполняется на уровне настроек инфоблоков. В административной панели необходимо перейти в раздел «Контент» → «Информационные блоки» → выбрать нужный инфоблок → «Настройки» → «Версии и корзина». Здесь можно снять флажок «Использовать корзину», после чего все операции удаления будут происходить без временного хранения данных.

Важно учитывать, что отключение корзины делает удаление данных необратимым. Для минимизации рисков рекомендуется настроить регулярное резервное копирование базы данных и протестировать процесс на копии сайта, чтобы убедиться, что необходимые данные сохраняются и восстановление возможно через резервные копии.

Кроме стандартных настроек инфоблоков, можно использовать методы API 1С Битрикс для массового отключения корзины на нескольких инфоблоках через скрипты. Это особенно полезно при крупных проектах, где ручная настройка каждого инфоблока требует значительных затрат времени.

Проверка версии 1С Битрикс перед отключением корзины

Проверка версии 1С Битрикс перед отключением корзины

Перед отключением корзины важно определить точную версию 1С Битрикс, так как методы управления корзиной отличаются между релизами. Для этого используйте административную панель и консольные инструменты.

В административной панели откройте раздел «Настройки» → «Система» → «Информация о системе». Найдите поле «Версия продукта». В версиях ниже 20.0 отключение корзины через стандартный интерфейс невозможно, требуется ручная корректировка файлов модуля sale.

Для проверки через консоль выполните:

Команда Назначение
php bitrix/modules/sale/admin/sale_check.php Проверка версии модуля интернет-магазина

После получения версии сверяйте её с документацией: начиная с версии 20.0 предусмотрены события и настройки для отключения корзины через файл init.php или через административные константы. В более старых релизах изменения касаются только шаблонов и обработчиков событий модуля sale.

Запись версии в лог перед внесением изменений позволяет безопасно откатить изменения при некорректной работе интерфейса корзины.

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

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

Для отключения корзины в 1С Битрикс перейдите в административную панель и откройте раздел «Магазин» → «Настройки» → «Настройки модулей». Выберите модуль «Интернет-магазин» и перейдите на вкладку «Корзина».

Снимите флаг «Включить корзину», чтобы деактивировать функционал хранения товаров перед оформлением заказа. Сохраните изменения кнопкой «Сохранить настройки». После этого все обращения к стандартной странице корзины будут перенаправлены на страницу каталога или указанную вами страницу через настройку «Страница после удаления корзины».

Для исключения использования корзины в компонентах сайта откройте «Настройки» → «Настройки продукта» → «Каталог» и убедитесь, что в параметрах компонентов «bitrix:sale.basket.basket» и «bitrix:sale.order.ajax» отключены опции «Использовать корзину» и «Показывать корзину». Это предотвратит отображение корзины на всех страницах сайта, где применяются стандартные компоненты.

После внесения изменений рекомендуется очистить кеш через «Настройки» → «Инструменты» → «Очистка кеша», чтобы исключить отображение старых данных корзины.

Удаление корзины из настроек инфоблоков

Удаление корзины из настроек инфоблоков

Для отключения корзины на уровне инфоблоков необходимо работать с настройками модулей «Интернет-магазин» и «Инфоблоки» в административной панели Битрикс.

  1. Перейдите в раздел «Контент» → «Инфоблоки» → выберите нужный инфоблок.

  2. Откройте вкладку «Настройки» → «Свойства и элементы». Здесь определяется поведение элементов инфоблока при удалении.

  3. Найдите настройку «Использовать корзину» или «Удаление через корзину». В некоторых версиях Битрикс эта опция может находиться в разделе «Дополнительно».

  4. Снимите галочку с этой опции. После сохранения изменений удаление элементов будет происходить без перемещения в корзину.

  5. Проверьте права пользователей. В разделе «Права доступа» убедитесь, что пользователи, имеющие право на удаление, смогут удалять элементы напрямую без ограничения корзиной.

  6. Очистите кэш системы: «Настройки» → «Инструменты» → «Очистка кэша», чтобы изменения вступили в силу немедленно.

Важно: отключение корзины делает удаление необратимым. Рекомендуется создать резервную копию инфоблока перед внесением изменений.

  • Проверяйте версию модуля «Инфоблоки», так как расположение опций может отличаться.
  • Для массового отключения корзины используйте API CCIBlock с методом Update, устанавливая параметр USE_TRASH в значение false.

Отключение корзины в компоненте каталога

Для отключения корзины в компоненте каталога 1С Битрикс необходимо изменить настройки самого компонента. Откройте страницу с компонентом «catalog.section» или «catalog.top» в режиме редактирования. В параметрах компонента найдите блок «Добавление в корзину».

Установите параметр «Включить корзину» в значение «Нет». Это отключит функционал добавления товаров в корзину на уровне компонента без удаления самого модуля продажи. Аналогично, если используется компонент «catalog.section.list», убедитесь, что параметр «Показывать кнопку «Купить»» отключен.

Если корзина подключена через шаблон компонента, откройте файл шаблона, обычно /bitrix/templates/[ваш_шаблон]/components/bitrix/catalog.section/[шаблон]/template.php. Удалите или закомментируйте блок с вызовом метода $APPLICATION->IncludeComponent("bitrix:sale.basket.basket", ...) или кнопку добавления в корзину <a class="add-to-cart">.

После внесения изменений очистите кеш сайта через административную панель или выполните bitrix:clear_cache(). Проверьте страницу каталога, чтобы убедиться, что кнопки добавления в корзину полностью отсутствуют и действия «Добавить в корзину» не выполняются.

Дополнительно можно использовать настройку «DEFERRED_ACTION» компонента: установите значение «N» для предотвращения любых скрытых операций с корзиной, если функционал подключен через AJAX.

Использование настроек шаблона для скрытия корзины

В административной панели 1С-Битрикс откройте раздел «Сайты» → «Шаблоны сайтов». Выберите активный шаблон и перейдите в его настройки.

В настройках шаблона найдите блок, отвечающий за отображение элементов меню или компонента корзины. Обычно это параметры типа «Показывать корзину», «Отображение иконки корзины» или «Корзина в шапке». Установите значение «Нет» или «Скрыто» для этих опций.

Если шаблон использует визуальный редактор, воспользуйтесь инструментом «Редактировать область шаблона». Найдите компонент bitrix:sale.basket.basket.line и отключите его через параметр «Видимость». В некоторых случаях необходимо удалить вызов компонента напрямую из header.php или других файлов шаблона.

После внесения изменений сохраните шаблон и выполните очистку кеша через «Настройки» → «Инструменты» → «Очистка кеша», чтобы изменения отразились на сайте.

Для шаблонов с адаптивным дизайном проверьте отображение корзины на мобильной версии. Иногда отдельные параметры отвечают за видимость элементов в мобильной и десктопной версиях, их также следует отключить.

Использование настроек шаблона позволяет полностью убрать корзину без изменения кода компонентов или ядра системы, сохраняя совместимость с будущими обновлениями платформы.

Удаление элементов корзины через API

Удаление элементов корзины через API

В 1С Битрикс элементы корзины управляются через модуль sale. Для удаления конкретного товара используется метод CSaleBasket::Delete($ID), где $ID – идентификатор позиции в корзине.

Пример удаления элемента по ID:

<?php
CSaleBasket::Delete($basketItemId);
?>

Чтобы массово удалить все элементы корзины пользователя, можно получить список позиций методом CSaleBasket::GetList с фильтром по FUSER_ID и LID, а затем удалить каждую запись через CSaleBasket::Delete.

Пример массового удаления:

<?php
$fuserId = CSaleBasket::GetBasketUserID();
$rsItems = CSaleBasket::GetList([], ['FUSER_ID' => $fuserId, 'LID' => SITE_ID, 'ORDER_ID' => 'NULL']);
while ($item = $rsItems->Fetch()) {
CSaleBasket::Delete($item['ID']);
}
?>

Важно учитывать, что после удаления элемента необходимо пересчитывать корзину для корректного отображения итоговой суммы и скидок. Используется метод CSaleBasket::Refresh($ID) или CSaleBasket::RecalculateBasket() для всех элементов.

Для интеграций с внешними сервисами или AJAX-запросами рекомендуется создавать отдельный обработчик, который через API удаляет товары по переданным идентификаторам и возвращает актуальное состояние корзины.

Проверка работы сайта после отключения корзины

Проверка работы сайта после отключения корзины

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

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

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

Проверьте внутренние ссылки и редиректы. Используйте инструмент для анализа 404 ошибок, чтобы убедиться, что ссылки на корзину больше не активны. Особенно важно проверить пользовательские шаблоны компонентов, которые могли напрямую обращаться к корзине через $APPLICATION->IncludeComponent.

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

После проверки всех страниц создайте отчет с обнаруженными проблемами и зафиксируйте исправления. Это позволит убедиться, что отключение корзины не нарушило работу магазина и не привело к потерям данных или сбоев в обработке заказов.

Восстановление корзины при необходимости

Восстановление корзины при необходимости

Даже после отключения стандартной корзины в 1С Битрикс существует возможность восстановить ее функционал для пользователей. Для этого применяются следующие подходы:

  • Использование резервных копий базы данных: корзина хранится в таблицах b_sale_basket и b_sale_basket_props. Восстановление осуществляется путем выборки данных по конкретному пользователю и повторного занесения их в актуальные таблицы.
  • Активирование модуля «События и агенты»: можно создать агент, который каждые N минут сохраняет временные копии корзины в отдельной таблице, что позволяет откатить изменения при необходимости.
  • Программная реализация через API: метод CSaleBasket::Add() позволяет заново добавить элементы в корзину, сохранив все свойства товара, включая скидки и пользовательские параметры.
  • Восстановление через личный кабинет: если корзина отключена визуально, можно создать отдельный интерфейс на основе пользовательских шаблонов, который отображает временно сохраненные элементы.

Рекомендуется:

  1. Проверять соответствие структуры таблиц версии 1С Битрикс перед восстановлением, чтобы избежать потери данных.
  2. Сохранять дату и время добавления товара, чтобы корректно отображать историю корзины.
  3. Тестировать восстановление на отдельной копии сайта перед внедрением на рабочем ресурсе.

При следовании этим рекомендациям можно обеспечить возврат корзины без нарушения целостности данных и пользовательского опыта.

Вопрос-ответ:

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

В административной панели 1С Битрикс нужно перейти в раздел «Настройки магазина» → «Настройки продукта» → «Корзина». Там можно снять галочку с опции «Использовать корзину» или установить соответствующий параметр в «Нет». После этого система перестанет сохранять товары в корзине, и покупатели будут сразу переходить к оформлению заказа.

Можно ли отключить корзину только для определенных групп пользователей?

Да, это возможно через права доступа. В настройках пользовательских групп укажите, для каких категорий клиентов корзина не будет отображаться. Например, для гостей можно отключить корзину, а для зарегистрированных пользователей оставить функционал. Для этого потребуется изменить параметры компонента корзины на страницах сайта или через настройку шаблонов в панели администратора.

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

После отключения корзины товары будут сразу добавляться к оформлению заказа. Основной функционал оплаты и формирования заказов останется рабочим, однако некоторые сценарии, например временное сохранение товаров или отложенные заказы, перестанут работать. Рекомендуется протестировать процесс покупки после внесения изменений.

Как убрать корзину с сайта, не трогая функционал личного кабинета?

Для этого достаточно изменить отображение компонента корзины только на страницах каталога и карточках товаров. Компонент в личном кабинете оставьте без изменений. Обычно это делается через редактирование шаблонов страниц и проверку условных настроек показа компонента в административной панели.

Можно ли сделать так, чтобы корзина работала, но не сохраняла товары после закрытия браузера?

Да, такое поведение регулируется настройками сессий. В параметрах корзины можно установить время хранения товаров или отключить сохранение корзины в базе данных. В этом случае при закрытии браузера товары будут удаляться, но покупатель сможет работать с корзиной в течение одной сессии.

Ссылка на основную публикацию