Особенно важно согласовать эти правила до обмена заказами и возвратами. Название товара не объясняет, сколько предметов в упаковке, можно ли вскрыть её и каким коэффициентом пользовались при первоначальной операции.
Базовая единица и упаковка
В учебном примере продаются крепёжные элементы: одна упаковка содержит 12 штук. Покупатель заказал две упаковки, а склад учитывает 24 штуки. Оба представления допустимы, если связь между ними закреплена явно.
Определите базовую единицу товара и перечень единиц, разрешённых для конкретных операций. Единица продажи может отличаться от единицы хранения. Важен и уровень объекта: упаковка одного товара, смешанный комплект и транспортный короб не обязательно пересчитываются по одному правилу.
Коды единиц должны быть согласованы отдельно от отображаемых названий. «Шт.», «штука» и piece могут обозначать одно, но автоматическое сопоставление по похожему тексту не является достаточной договорённостью. Владельца соответствий можно определить по принципам подготовки интеграции.
Версия коэффициента пересчёта
В следующей поставке упаковка стала содержать 10 штук. Если использовать новый коэффициент для прежнего заказа, две упаковки превратятся в 20 вместо 24. Для истории операции нужен коэффициент, который действовал именно при её согласовании.
Запишите, откуда приходит коэффициент, кто подтверждает его изменение и с какой границы оно действует. Иногда упаковки с разным составом существуют одновременно; тогда простой даты обновления справочника недостаточно. Может понадобиться различение вариантов товара или поставок по согласованной модели.
В нашем примере старый заказ хранит версию V1: 12 штук в упаковке. Новое предложение использует V2: 10. Повторное чтение старого заказа не должно менять количество только потому, что справочник уже обновился. Если источник не передаёт нужных оснований, получатель фиксирует неопределённость, а не подставляет текущий коэффициент.
| Объект | Единица ввода | Правило | Результат в базовой единице |
|---|---|---|---|
| Заказ V1 | 2 упаковки | 12 штук в упаковке | 24 штуки |
| Заказ V2 | 2 упаковки | 10 штук в упаковке | 20 штук |
| Возврат по заказу V1 | 5 штук | По исходной операции | 5 штук, без смены версии заказа |
Карта пересчёта связывает значение, единицу, версию правила и исходную операцию. Она полезнее единственного поля «количество» без контекста.
Правила округления и неделимости
Для штучного неделимого товара дробная часть может быть недопустима. Для массы или длины она может быть нормальной в согласованной точности. Поэтому универсальное округление всех количеств до целого меняет смысл заказа.
Пусть пользователь вводит половину упаковки V1. Нужно решить, разрешена ли продажа шести отдельных штук. Если нет, система объясняет недопустимость ввода. Если да, это отдельное разрешённое представление количества, которое должно одинаково понимать склад и кабинет.
Уточните направление пересчёта и допустимую погрешность. Из базовых штук не всегда получается целое число упаковок. Остаток нельзя незаметно отбросить или увеличить до полной упаковки. Если процесс требует выбора сотрудника, ответ должен показать остаток и основание дальнейшего решения.
Проверка возврата неполной упаковки
Возврат связывают с исходной операцией: какие единицы были проданы, что разрешено вернуть и сколько уже возвращено. Возврат пяти штук из заказа V1 не обязан выглядеть как дробная упаковка в пользовательском интерфейсе. Важно, чтобы обе стороны одинаково учитывали эти пять штук.
Подготовьте четыре учебных проверки. Первая — две полные упаковки V1. Вторая — попытка заказать запрещённую дробь. Третья — смена коэффициента перед повторным чтением старого заказа. Четвёртая — несколько частичных возвратов, сумма которых подходит к исходному количеству и затем превышает его.
В протоколе сохраняют входное количество, единицу, правило, результат и причину отказа. Отдельно проверяют, что округление не создаёт и не теряет товар. Такая проверка дополняет жизненный цикл заказа и склада, но решает другую задачу: сохраняет смысл количества между системами.
Для первого обсуждения достаточно одного товара, двух версий упаковки и примера частичного возврата. По ним можно установить границы доработки без обещания изменить весь учёт предприятия.

