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

Ниже — способ проверить состав, доступность и возврат наборов из общих компонентов. Результат работы: таблица состава, совместный план без двойного расхода и карта возврата, по которой неполный набор не становится полным продаваемым товаром.

Общий компонент · учебный расчёт
9 кружекОдин свободный физический запас для обоих наборов.
4 A или 5 BСамостоятельные лимиты: A требует 2 кружки, B — одну.
3 A + 3 BСовместный план расходует 9 кружек и обеспечен компонентами.

4 A + 5 B = 13 кружек. Дефицит — 4 кружки.

Лимиты наборов нельзя складывать как независимые остатки. Полная таблица ниже проверяет также чай, коробки и открытки.

Рабочий файл: пустой шаблон и учебный пример

Скачать расчёт комплектов и карту возврата — XLSX. Инструкция к файлу — Markdown.

В книге четыре листа: пустой расчёт, заполненный учебный расчёт, пустая карта возврата и заполненный учебный возврат. Жёлтые ячейки предназначены для ввода; формулы оставлены видимыми. Пример использует условные товары и числа, а не данные клиента.

Расчёт ограничен шестью различными компонентами, двумя наборами, одним владельцем и одним физическим складом. Все количества измеряются в целых штуках. Он помогает проверить решение на одном срезе данных; резервирует товар и отправляет остаток ваша учётная система.

1. Выберите модель набора

Сначала ответьте, что именно лежит на полке. Название «комплект» само по себе этого не определяет.

Модель Что учитывается физически Что происходит при выполнении заказа
Виртуальный набор Отдельные компоненты Заказ набора требует резерва и расхода каждого компонента по составу
Заранее собранный набор Готовая упакованная единица При сборке компоненты расходуются, появляется готовый товар; при продаже расходуется эта единица
Готовый комплект производителя Единица поставки в исходной упаковке Право вскрытия, продажи частей и маркировку проверяют по товару и документам

На узком экране таблицу можно прокрутить вправо. С клавиатуры: Tab до таблицы, затем стрелки.

Эти модели нельзя смешивать в одном количестве. В документации Odoo 19.0 для kit описан пример: в заказе продажи набор выглядит одной строкой, а в доставке раскрывается на компоненты. Инструкция SkladBot по комплектации описывает другой переход: при приёмке готового комплекта компоненты списываются с номинального остатка, готовые комплекты появляются на основном. Это описания конкретных систем, прочитанные 31.10.2026; они не доказывают одинакового поведения других WMS.

Если вы переходите со SkladBot, сначала сохраните значение обоих видов остатка и рецепт. Перенести готовый комплект и одновременно оставить его уже израсходованные компоненты свободными — значит удвоить запас. Подробности сверки — в материале о переезде со SkladBot.

2. Зафиксируйте состав до первого заказа

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

  • SKU набора и версия состава;
  • идентификатор и вариант компонента: размер, цвет, фасовка;
  • норма на один набор и единица измерения;
  • владелец товара и склад, из которого допускается сборка;
  • дата начала применения версии и ответственный за изменение.

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

Сохраняйте состав, с которым был принят заказ. Возврат заказа по версии v1 нельзя разбирать по сегодняшней v2. Если в новой версии заменили красную кружку на синюю, поздний возврат красной кружки остаётся связан с исходной отгрузкой. Старые составы не удаляют: у них закрывают период применения, а изменение связывают с новой версией.

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

Для фиксированного физического ассортимента есть и внешняя граница. GS1 GTIN Management Standard, правило 2.9 требует новый GTIN при изменении, добавлении или замене входящего товара. Это правило относится к описанному стандартом физическому ассортименту. Внутренняя версия рецепта не заменяет проверку идентификации товара и карточки площадки.

3. Посчитайте свободные компоненты

Для выбранного владельца, склада и момента времени используйте:

Свободно = годных физически − действующие резервы − прочие блоки.

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

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

Для одного виртуального набора:

Можно собрать = минимум целых частей «свободно компонента ÷ его норма на набор».

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

Формула отвечает на вопрос о материальной обеспеченности. Она не учитывает пропускную способность упаковки, срок доставки, разрешение на продажу и свежесть опубликованного остатка. Компоненты в разных городах также не образуют доступный набор лишь потому, что их можно сложить в отчёте.

4. Учебный расчёт двух наборов

В примере KIT-A состоит из двух кружек, чая и коробки; KIT-B — из кружки, двух пачек чая и открытки. Все компоненты принадлежат одному условному владельцу и лежат на одном складе.

Компонент Годных, шт. В резерве Другие блоки Свободно Норма A Норма B
Кружка CUP 12 2 1 9 2 1
Чай TEA 15 1 0 14 1 2
Коробка BOX 8 1 1 6 1 0
Открытка CARD 5 0 0 5 0 1

На узком экране таблицу можно прокрутить вправо. С клавиатуры: Tab до таблицы, затем стрелки.

Для A получаем min(⌊9/2⌋, 14, 6) = 4. Для B — min(9, ⌊14/2⌋, 5) = 5. Каждый результат предполагает, что остальные наборы не расходуют эти компоненты.

Чтобы проверить совместный план, для каждого компонента посчитайте:

Потребность = план A × норма A + план B × норма B.

План Кружки Чай Коробки Открытки Решение по компонентам
4 A и 5 B 13 14 4 5 Не хватает 4 кружек
3 A и 3 B 9 9 3 3 На этом срезе хватает

На узком экране таблицу можно прокрутить вправо. С клавиатуры: Tab до таблицы, затем стрелки.

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

Запас девять кружек нельзя независимо обещать нескольким наборам и нескольким каналам. Нужна единая проверка расходуемых компонентов при резерве, а для опубликованных количеств — выбранное правило распределения и учёт задержек обмена. Как восстановить последовательность при перепродаже, разобрано в журнале диагностики последнего экземпляра.

5. Заказ, недостача и изменение состава

Обычный путь виртуального набора состоит из пяти действий:

  1. Зафиксировать в заказе версию и полный состав.
  2. Рассчитать потребность с учётом уже действующих резервов.
  3. Зарезервировать весь необходимый состав в одной согласованной операции. Если одного компонента не хватило, не оставлять остальные в бесхозном резерве.
  4. При сборке подтвердить компоненты и количества, затем связать их с отгрузкой.
  5. При повторной обработке того же события проверить, что второго резерва, расхода или начисления не возникло.

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

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

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

6. Заранее собранный набор: не посчитайте компоненты дважды

Предположим, из свободного запаса учебного примера заранее собрали три A. На сборку ушли шесть кружек, три пачки чая и три коробки. Свободных компонентов осталось 3, 11 и 3 соответственно, а в отдельном учёте готовой продукции появились три A.

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

Сохраняйте баланс в одинаковых единицах. Например, кружек до сборки должно быть столько же, сколько после неё лежит отдельно и содержится в готовых наборах, с учётом подтверждённых потерь. Складывать «штуки набора» и «штуки кружек» в один итог бессмысленно.

7. Частичный возврат: сначала факт и состояние

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

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

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

Учебный возврат одного KIT-A v1

Компонент Отгружено Получено Годно Карантин Брак Недополучено
Кружка 2 1 1 0 0 1
Чай 1 1 1 0 0 0
Коробка 1 1 0 0 1 0

На узком экране таблицу можно прокрутить вправо. С клавиатуры: Tab до таблицы, затем стрелки.

Из годных компонентов этого возврата получается min(⌊1/2⌋, 1, 0) = 0 полных составов. Восстанавливать один A нельзя. Если отдельная продажа кружки и чая разрешена и пройдены необходимые проверки, можно допустить по одной годной единице. Коробку оставляют в браке; недостающую кружку разбирают как расхождение.

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

8. Что делать с исключениями

Ситуация Действие и граница
Вернулся другой вариант Изолировать, сверить идентификаторы и исходную отгрузку; не зачесть в компонент ожидаемого размера
Пришло больше, чем было отправлено Зафиксировать излишек отдельно; восстановить происхождение и владельца перед допуском
Карточка набора уже изменена Использовать снимок состава исходного заказа, сохранить ссылку на старую версию
Возврат обработали повторно Проверить ID возврата, строки и событие прихода; второй запуск не должен добавлять товар ещё раз
Всё пришло, но часть ещё не осмотрена Оставить эту часть в карантине; полный состав из годных может оставаться нулевым
Комплект изготовителя или маркируемые товары Проверить применимую товарную группу, упаковку, коды и разрешённый способ восстановления до продажи частей

На узком экране таблицу можно прокрутить вправо. С клавиатуры: Tab до таблицы, затем стрелки.

Термины WMS не заменяют классификацию маркировки. Например, официальное разъяснение для лёгкой промышленности различает комплект производителя и набор участника оборота. Возможность нажать «разобрать» в программе не подтверждает право продавать получившиеся части. Эта статья не устанавливает единый порядок маркировки для всех товарных групп.

9. Как принять сценарий в своей системе

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

Проверка Что должно быть видно
Рассчитать A и B из примера Лимиты 4 и 5 объясняются компонентами, а не ручным числом на карточке
Принять совместный план 3 A + 3 B Потребность в кружках 9; повторное использование этих же единиц не допускается
Попытаться принять 4 A + 5 B Дефицит четырёх кружек, понятная обработка второго обязательства
Повторить событие резерва или расхода Один результат и одна запись движения; повтор не меняет итог
Изменить рецепт после принятия заказа Исходный заказ и его возврат сохраняют прежний состав
Принять учебный частичный возврат 0 полных составов, годные компоненты отдельно, брак и недостача различимы
Повторить приёмку того же возврата Второго прихода нет; видны прежнее событие и ответственный

На узком экране таблицу можно прокрутить вправо. С клавиатуры: Tab до таблицы, затем стрелки.

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

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