Одна и та же кружка, заводская упаковка и штрихкод могут встретиться в поставках двух клиентов. Для склада это две отдельные принадлежности товара. Чтобы собрать заказ клиента А, недостаточно найти совпадающий код: нужно подтвердить владельца остатка, задание и конкретное место отбора.
Материал предназначен руководителю мультиклиентного фулфилмента. Результат работы — матрица пяти складских операций и проверка клиентского доступа. Это общая методика, которую можно применять в существующей WMS или в согласованном ручном процессе. Она не подтверждает, что конкретная система уже прошла эти проверки.
Редакция и проверка источников: 31 октября 2026 года. Все числа, названия и результаты в примере учебные.
Сначала возьмите рабочую матрицу
Скачать пустую матрицу (HTML) · Открыть заполненный учебный пример
Сохраните файл и распечатайте его либо перенесите строки в свой рабочий документ. Выберите один товар с совпадающим кодом у двух клиентов. Запишите владельцев, единицы учёта, исходные остатки и разрешённые действия. Сначала заполните ожидаемый результат, затем проведите проверку и приложите ссылку на документ или событие.
В примере есть две преднамеренные проблемы: одинаковая общая сумма скрывает расхождение по владельцам, а список заказов защищён лучше вложения. По ним показано решение об остановке. Это позволяет проверить процесс обработки ошибки, а не только пройти удобный маршрут.
Штрихкод отвечает не на все вопросы
GS1 определяет GTIN как идентификатор товарной позиции. Из этого следует практическое ограничение: совпадение GTIN само по себе не устанавливает, кому принадлежит конкретная партия на вашем складе. Если сканируется внутренний код, сначала выясните, что именно он обозначает в вашей системе: товар, короб, заказ или экземпляр.
Два кабинета одного селлера и два независимых клиента — разные модели. В первом случае владелец может быть один, а способы продажи различаются. Во втором одинаковые товары принадлежат разным сторонам. Кабинет продавца, клиент по договору, собственник товара и плательщик услуг также могут различаться. Согласуйте эти связи до приёмки; название бренда не заменяет такого решения.
Раздельность товара и владельца встречается и в готовых системах: документация Odoo 20.0 о консигнационном запасе описывает назначение владельца при приёмке и его отображение в складском отчёте. Это пример модели данных другого продукта, без вывода о готовности такой же функции в Skirbo.
Какие поля должны связывать операцию с владельцем
Названия полей в WMS могут отличаться. Важно, чтобы по записи можно было восстановить следующую связку.
| Что фиксируем | Для чего | Ошибка, которую нужно исключить |
|---|---|---|
| Устойчивый ID владельца и клиент по договору | Найти принадлежность и согласованное основание работы | Назначить владельца по имени менеджера или общему бренду |
| SKU владельца, вариант, единица учёта | Отличить размер, комплект и штуку | Склеить два артикула только по названию или потерять ведущие нули |
| Код товара и его тип | Правильно трактовать скан | Принять этикетку заказа за доказательство принадлежности всей тары |
| Тара, ячейка и состояние | Найти конкретный допустимый запас | Взять похожую коробку другого клиента или товар из карантина |
| Заказ, строка, резерв и событие движения | Связать распоряжение с выполнением | Списать товар по владельцу заказа без проверки физического отбора |
| Исполнитель, время и основание исправления | Восстановить цепь при расхождении | Исправить итог так, что причина исчезла из истории |
Это не требование создать шесть новых справочников. Проверьте, где эти данные уже хранятся, как связаны и что получает исполнитель. Если владельца видно только менеджеру в комментарии, а подбор идёт по общему коду, контроль обрывается в момент отбора.
Пять операций, в которых проверяется принадлежность
Приёмка. Сверьте владельца по согласованному документу, ассортимент, вариант и единицу. Поступления А и Б оформляйте отдельными строками учёта, даже если товар одинаков. Маркируйте тару так, чтобы она связывалась с приёмкой. Неизвестный владелец — отдельное исключение с ответственным за разбор; такую строку нельзя добавлять в доступный запас случайного клиента.
Размещение. Зафиксируйте исходную тару, владельца и адрес назначения. Отделите начатое перемещение от завершённого. Если одна ячейка используется для нескольких клиентов, в ней должны сохраняться различимые места или тара и проверяемая принадлежность каждой единицы отбора. Пока такая схема не проверена, выберите физическое разделение. Цветная наклейка помогает работнику, но не заменяет запись владельца.
Подбор и упаковка. Сопоставьте владельца задания с владельцем выбранного остатка. Затем проверьте товар, вариант, количество и упаковочную единицу. Полезный отрицательный тест: для заказа А предъявить тару Б с таким же кодом. Ожидаемое решение — остановка этой операции без списания Б. После исправления повторите проверку; одно резервирование не предотвращает ошибку физического отбора.
Возврат. Сначала восстановите исходный заказ и владельца, затем отдельно оцените состояние. Установленный владелец не означает, что товар годен к продаже. Если обратная этикетка отсутствует, отложите возврат в обозначенную зону, зафиксируйте тару, код, количество и доступные признаки. Совпадение артикула у А и Б не даёт основания выбрать первого найденного клиента.
Пересчёт. Считайте по владельцу, варианту, месту и состоянию на определённый момент. На участке либо остановите движения, либо учитывайте каждое движение между срезом и пересчётом по согласованной процедуре. Сравнивайте А с А, Б с Б. Общий итог по SKU полезен как дополнительная сверка, но он не объясняет принадлежность расхождения.
Учебный пример: общая сумма сошлась, владельцы — нет
Клиент А передал 12 кружек, клиент Б — 9 таких же. Учебный код DEMO-CUP-300 у обоих одинаков; это условное обозначение, не настоящий GTIN. В начале все 21 штука годные, резервов нет.
| Событие | Клиент А | Клиент Б | Что проверяем |
|---|---|---|---|
| Поступление и размещение | 12 годных | 9 годных | Две принадлежности, две записи тары |
| Отгрузка заказа А на 5 штук | 7 годных | 9 годных | Передано из тары А; резерв закрыт |
| Возврат двух штук из заказа А | 7 годных + 2 в карантине | 9 годных | Физически А имеет 9, доступно пока 7 |
| Осмотр возврата | 8 годных + 1 в карантине | 9 годных | Только одна штука допущена к продаже |
| Пересчёт на фиксированный момент | Найдено 7 годных + 1 в карантине | Найдено 10 годных | У А недостача 1; у Б излишек 1 |
По учёту на последнем шаге всего 18 штук: 8 + 1 + 9. Пересчёт также дал 18: 7 + 1 + 10. Однако правильного распределения по владельцам это не доказывает. Возможны ошибка размещения, неверная этикетка, пропущенное движение или ошибка самого счёта. По одной сумме выбрать причину нельзя.
Не проводите взаимозачёт «минус А, плюс Б» только ради совпадения отчёта. Повторите счёт, изолируйте спорную тару или единицу, сопоставьте приёмку, движения, отбор и возврат. Исправление проводите после установленного основания и согласования: отдельной записью, со ссылкой на разбор. Если происхождение не восстановлено, оставьте расхождение открытым и назначьте следующую проверку.
Доступ клиента проверяется отдельно от остатков
Правильно разделённый товар ещё не означает правильно разделённую информацию. OWASP рекомендует проверять разрешения на каждом запросе и запрещать доступ по умолчанию. Для фулфилмента это повод проверить несколько способов получения одного объекта, а не только видимость строки в кабинете.
Используйте два собственных тестовых клиента и подготовленные объекты. Согласуйте испытание с владельцем системы. Для А проверьте свой объект и запрещённый объект Б; затем повторите в обратную сторону.
| Проверка | Ожидаемый результат |
|---|---|
| Список и поиск по общему коду | Клиент видит только согласованные свои данные |
| Прямая ссылка на тестовый заказ Б | Данные Б не раскрываются |
| Экспорт отчёта | В выгрузке отсутствуют чужие строки и поля |
| Фото, документ, ссылка на вложение | Права сохраняются при открытии файла отдельно от карточки |
| Уведомление | Сообщение уходит только в разрешённый тестовый канал |
| Отзыв доступа | Новые запросы закрыты в согласованный срок; ранее скачанные копии не исчезают автоматически |
Зафиксируйте роль, объект, время, ожидаемый результат и факт. Проверка только под администратором не заменяет клиентский сценарий. Если система поддерживает объединение клиентских карточек, заранее определите, кому разрешён общий обзор. Связь карточек должна следовать из согласованной бизнес-модели; одинаковый штрихкод не является основанием объединить доступ.
В учебном файле список, поиск и экспорт проходят, а документ Б открывается у А. Итог — остановка соответствующего клиентского доступа и повторная проверка после исправления. Успех других строк не компенсирует эту ошибку. Матрица не заменяет полноценный аудит безопасности и не утверждает наличие такого дефекта у Skirbo.
Как действовать при неизвестном владельце
Сохраните исходный скан и документы, привяжите их к разбору. Обозначьте товар на складе, исключите спорную единицу из подбора и укажите ответственного. Отдельно запишите установленное и предполагаемое: «код совпал» — факт; «вероятно, товар клиента А» — гипотеза.
Дальше ищите цепь: откуда поступила тара, какие движения подтверждены, с каким заказом связана упаковка, где возникло последнее надёжное соответствие. Если остановка затрагивает заказ, сообщите менеджеру его номер и ограничение. Он согласует решение по сроку; кладовщик не меняет владельца ради срочной отгрузки.
Когда принадлежность подтверждена, выполните оформленное исправление и снова проверьте остатки обоих клиентов, доступность товара и клиентский отчёт. Фотография показывает состояние и признаки упаковки в момент съёмки, но сама по себе не доказывает всю историю собственности и движения.
Когда этой матрицы недостаточно
Для товаров с серийными номерами, обязательной маркировкой, партиями или сроками годности добавьте соответствующие проверки. Совпадение владельца не отменяет требований к конкретному экземпляру и состоянию. Для общего обезличенного хранения взаимозаменяемых товаров нужна отдельная согласованная модель учёта; данный протокол рассчитан на сохранение принадлежности при операциях.
Передача собственности, смена юридического продавца и межскладская перевозка также требуют отдельных оснований и процедур. Поле владельца в WMS помогает вести учёт, но не заменяет документы. Не меняйте его только потому, что заказ пришёл из другого кабинета.
Следующий шаг: проверьте один общий товар
Возьмите пустую матрицу, двух тестовых клиентов и один совпадающий код. Результат проверки — список пройденных операций, открытых исключений и решение о допуске. Сначала устраните разрыв в принадлежности или доступе, затем расширяйте ассортимент.
Если выбираете Skirbo, передайте поддержке обезличенное описание своей схемы и нужные проверки. Попросите показать их в согласованном кабинете с указанной версией и ролями. Подготовленный шаблон, наличие API и описание функции не заменяют такой демонстрации.
Для начала ежедневной работы пригодится бриф нового клиента. Для распределения заданий между клиентами — план очереди смены. Если вопрос в том, какие сведения показывать клиенту, начните со статьи о личном кабинете фулфилмента.