Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Как сделать 2 корзины на одном сайте

Вопрос задан: 22 июня 2026 в 04:00 | Просмотров: 24 Использованные MCP инструменты: searchDocs, liveApiFindByReflection, liveApiGetClassMethods, liveApiFindByNamespace, liveApiGetClassCode

Задайте свой вопрос — Работает AI в связке с MCP сервером. Перепроверяйте важную информацию.

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

1. Многосайтовость (Multisite) — встроенный механизм

Самый надёжный способ — использовать многосайтовость в рамках одной установки. В таблице корзины b_sale_basket есть поле LID (ID сайта), и корзины автоматически разделяются по сайтам.

Как настроить:
На странице Настройки > Настройки продукта > Сайты > Список сайтов создайте второй сайт с уникальным ID (например s2). Даже на одном домене можно разместить сайты в подпапках: example.ru/ — первый сайт, example.ru/shop2/ — второй сайт. У каждого будет собственная корзина.

Важно: Если нужна сквозная авторизация между сайтами, включите настройку "Распространять авторизацию на все домены" в Настройки > Настройки продукта > Настройки модулей > Главный модуль.

2. Разделение корзин через кастомное поле (программный подход)

Если многосайтовость не подходит, можно добавить к элементам корзины пользовательское свойство (например, TYPE — "основная" / "оптовая") и фильтровать данные через события модуля sale.

Шаги реализации:

  • Добавьте пользовательское поле к таблице корзины Bitrix\Sale\Basket через API пользовательских полей.
  • При добавлении товара в корзину через \Bitrix\Sale\BasketItem::setField('PROPERTY_' . $propId, $value) проставляйте метку типа корзины.
  • В компонентах вывода корзины (sale.basket) фильтруйте элементы по значению этого свойства.
  • Используйте события OnSaleBasketItemSetField или OnSaleBasketBeforeSave для автоматической установки метки.

3. Работа с FUSER (продвинутый подход через API)

Класс \Bitrix\Sale\Fuser отвечает за идентификатор покупателя. Технически можно создать несколько FUSER ID для одного пользователя, но это вмешательство в ядро и требует особой осторожности.

Стандартный путь получения корзины:

$fuserId = \Bitrix\Sale\Fuser::getId();
$basket = \Bitrix\Sale\Basket::loadItemsByFUser($fuserId, $siteId);

Если вы подмените $fuserId в зависимости от условия (например, GET-параметр, тип пользователя, cookie), система будет загружать разные корзины для одного и того же посетителя.

4. Кастомное хранилище корзин

Самый гибкий, но и самый трудоёмкий вариант — написать собственную реализацию хранения корзин (например, через HL-блоки или отдельную таблицу), не используя стандартную таблицу b_sale_basket. В этом случае вы полностью контролируете логику разделения: по складу, типу цены, группе пользователя, валюте и т.д.

Рекомендация

Для большинства сценариев достаточно многосайтовости (п.1) — это штатный механизм, не требующий доработок ядра. Если нужно именно "2 корзины на одной странице", выбирайте п.2 с пользовательскими свойствами и фильтрацией. Программное вмешательство в FUSER (п.3) или полная кастомная реализация (п.4) оправданы только в сложных нестандартных проектах.

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

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

Подробнее
Сайт на готовом решении 1С-Битрикс
от 70 000 руб. от 5-ти дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Индивидуальная разработка магазина
от 300 000 руб. от 5-ти недель

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

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Инфоресурс
от 170 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Сайт компании
от 150 000 руб. от 2-х недель

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

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс