Наборы и комплекты — товар, состоящий из нескольких других товаров каталога, продаваемый как единая позиция со своей ценой. Разберём, как это реализовано в модуле "Каталог" 1С-Битрикс, что происходит с остатками входящих товаров при продаже набора и какие ограничения стоит учитывать при настройке.
Два разных механизма: набор и комплект
В 1С-Битрикс стоит различать наборы товаров (product sets) — функциональность привязки нескольких самостоятельных товаров для совместного показа и продажи ("купите вместе") — и комплекты (bundle), где несколько товаров формируют единую позицию каталога со своим отдельным элементом, ценой и карточкой. Выбор механизма зависит от того, нужно ли покупателю видеть набор именно как один товар в каталоге, или как связку из отдельных карточек с общей скидкой при совместной покупке.
Настройка через административную панель
Привязка товаров в набор выполняется на карточке товара во вкладке Набор, доступной при включённом соответствующем торговом каталоге. Для каждого входящего товара задаётся количество и, при необходимости, признак обязательности вхождения в комплект — часть комплектов позволяет покупателю менять состав в рамках заданных вариантов, часть — фиксированный неизменяемый состав.
Нужна помощь с Битрикс?
Программное чтение состава набора
<?php
use Bitrix\Catalog\ProductTable;
use Bitrix\Catalog\Product\SetTable;
$setItems = SetTable::getList([
'select' => ['ITEM_ID', 'QUANTITY'],
'filter' => ['SET_ID' => $bundleProductId],
]);
while ($item = $setItems->fetch()) {
echo 'Товар ' . $item['ITEM_ID'] . ' x' . $item['QUANTITY'] . PHP_EOL;
}
Что происходит с остатками при продаже комплекта
Продажа комплекта с фиксированным составом обычно должна списывать остаток каждого входящего товара пропорционально заданному количеству — иначе учёт остатков расходится: комплект продан, а физические единицы товаров внутри него формально остаются на складе нетронутыми, хотя фактически ушли покупателю в составе комплекта. Логика такого каскадного списания требует явной проверки на конкретной редакции и конфигурации проекта — не во всех сценариях это работает "из коробки" без дополнительной настройки или обработчика события.
Цена комплекта: сумма компонентов или отдельная цена
Цена комплекта может либо автоматически считаться суммой цен входящих товаров (иногда с настроенной скидкой за совместную покупку), либо задаваться отдельно и независимо от цен компонентов. Второй вариант нужен там, где комплект — самостоятельный маркетинговый продукт с собственным ценообразованием, не обязанным математически совпадать с суммой отдельных позиций.
Наличие комплекта при недостатке одного из компонентов
Если хотя бы один обязательный компонент комплекта закончился на складе, весь комплект логично должен показываться как недоступный для заказа — но эта проверка не всегда происходит автоматически и зависит от того, как именно настроен вывод наличия для конкретного типа товара. Пропуск этой проверки приводит к ситуации, когда покупатель успешно заказывает комплект, который физически невозможно собрать и отгрузить целиком.
Частые ошибки
- Путаница между набором для совместного показа и полноценным комплектом-товаром. Выбран не тот механизм для нужного сценария продажи.
- Остатки компонентов не списываются при продаже комплекта. Учёт остатков расходится с фактическим складом.
- Наличие комплекта не проверяется по всем компонентам. Покупатель заказывает то, что физически нельзя собрать целиком.
Итог
Наборы и комплекты в 1С-Битрикс — два разных по назначению механизма, которые легко перепутать на старте настройки. При работе с фиксированными комплектами отдельного внимания требуют каскадное списание остатков компонентов и проверка их совместного наличия — оба момента напрямую влияют на то, останется ли учёт остатков достоверным после начала продаж комплектов.
