Почему набору недостаточно отдельного остатка
Компонент может продаваться отдельно и одновременно входить в несколько комплектов. Независимый остаток набора быстро перестанет отражать реальную доступность составляющих.
Технологии этого решения
Собственная разработка внутри платформы магазина.
Drupal 11: данные и интерфейсы
Каталог, заказы и процессы магазина
Сервисы и бизнес-логика
Как считается доступность комплекта
Каждый набор описывается компонентами и их количеством. Доступное число наборов ограничено компонентом, которого хватает на меньшее число полных комплектов.
Для покупателя комплект остаётся одной понятной позицией каталога. Внутри системы у него есть состав: какие вариации входят в набор и сколько единиц каждой необходимо для одной продажи.
Общий спрос корзины
Условный набор содержит две единицы A и одну B. Если A осталось 10, а B — 3, доступно три набора. Но если в корзине также пять отдельных A, проверяется общая потребность: на три набора и отдельные позиции нужно 11 единиц A, а доступно 10.
Если ограничивающий компонент заканчивается раньше остальных, именно он определяет доступное количество комплектов. При изменении его остатка доступность набора должна рассчитываться по актуальным данным компонентов.

Проверка и складские операции
При оформлении заказа проверяется суммарная потребность в компонентах. Для предусмотренных событий заказа реализованы списание и возврат остатков составляющих; учёт связан с самим жизненным циклом заказа.
Проверка всей корзины важна перед подтверждением: независимая проверка каждой строки могла бы дважды учесть один и тот же остаток. Общий расчёт позволяет обнаружить нехватку компонента в суммарном заказе.
Остатки для других процессов
Расчёт доступности компонентов используется и в связанных складских сценариях, включая работу с маркетплейсом. Вложенные комплекты не заявляются как неограниченная рекурсивная структура.
Результат для магазина
Комплекты рассматриваются как реальный состав товаров, а не просто визуальное объединение карточек. Это даёт основу для согласованной проверки корзины и складского учёта.
Подробнее об услугах: разработка интернет-магазинов и разработка систем на Drupal.
Частые вопросы
Как считается количество доступных наборов?
По каждому компоненту вычисляется число полных комплектов; итог ограничивается наименьшим из этих значений.
Что если товар продаётся отдельно и входит в набор?
Потребность по нему суммируется для всех соответствующих строк заказа.
Как обрабатывается отмена заказа с комплектом?
Для предусмотренного события отмены реализован возврат ранее списанных компонентов.
Можно ли связать доступность комплектов с маркетплейсом?
Да, связанный расчёт остатков может учитывать доступность компонентов набора.