Резервирование товара

Я предлагаю механизм резервирования товара реализовать следующим образом:

К каждому физическому складу, где находится товар ("Склад 1"), создать виртуальный склад "Резерв из Склада 1". Между собой сотрудникам договориться как этот склад использовать

Представьте, что на складе лежит товар. Например не серийный (не уникальный) товар - упаковки бумаги А4. Всё это лежит физически вместе.

Товаром торгует несколько продавцов. Продавец №1 принимает звонок, во время которого к нему приходит информация что нужно зарезервировать 5 упаковок бумаги.

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

Разумеется, обычно бизнес-процесс предприятия не предполагает, что есть некая "другая секция" склада, куда следует перемещать бумагу для каждого такого резерва.

Но нужно немедленно известить учётную систему о сокращении доступного остатка бумаги.

Для этого, с моей точки зрения, логично сделать в системе "виртуальный" склад для резерва и продавцам всем договориться о нём, что оттуда товар не продавать, если сам его туда не отправил.

Продавец №1 создает в системе документ перемещения на этот склад, к которому в комментарии описывает причины и назначения резерва и, возможно прямо связывает со звонком, если используется CRM.

Физически бумага останется в общей куче. При взгляде на остатки товара в системе, - будет ясно что не весь он уже доступен.

Затем операцию реализации/возврата/перемещения продавец №1 выполняет со склада резерва, при этом физически выносит бумагу из общего хранилища.

Вопрос, когда товар "серийный" - уникальный.

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

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