Это правило влияет на WEOUR OS сильнее любого другого, поэтому у него отдельная запись.
- NOT_INITIALIZED
- Системе никогда не сообщали, что здесь находится
- NOT_REPORTED
- Источник, который обычно отчитывается, не отчитался
- ZERO
- Мы знаем от конкретного источника и в конкретный момент, что количество равно нулю
- Наблюдаемые запасы
- То, что сообщил канал или склад, сохранённое как доказательство
- Центральные запасы
- То, что WEOUR решил считать истиной после сверки
Это пять разных вещей. Системы, которые сжимают их в одну колонку, не проще — они просто не могут объяснить, почему число именно такое.
Почему «неизвестно» не должно становиться «нулём»
Ноль — это утверждение. Он говорит, что измеримое количество равно нулю. Когда у системы нет информации, запись нуля делает неизвестный факт похожим на известный, и каждое последующее решение наследует эту ошибку:
- Витрина помечает товар недоступным не потому, что товар закончился, а потому что сорвался отчёт.
- Правило пополнения срабатывает на несуществующем дефиците.
- Отчёт сверки показывает расхождение, которое на самом деле является отсутствующим источником, и команда тратит день на поиск проблемы, которой нет.
Ничто из этого не выглядит как баг. Это выглядит как обычные данные.
Как мы это представляем
Незаданное состояние запаса хранится как явное состояние, а не как число. Состояния — часть модели:
NOT_INITIALIZED— запись существует, но ни один источник никогда не предоставлял значение.NOT_REPORTED— источник должен отчитаться, но пока не сделал этого или отчёт не прошёл.- Числовое значение — фактическое утверждение, всегда вместе с источником и временем наблюдения.
Слой отображения может быть дружелюбным. Слой хранения не имеет права угадывать.
Наблюдаемые запасы — это не центральные запасы
Вторая половина принципа: наблюдения никогда не становятся реестром «по случайности».
Каждый маркетплейс и каждый склад что-то сообщает, и эти сообщения отвечают на разные вопросы в разные моменты. Наблюдаемые запасы — это то, что нам сообщили. Центральные запасы — это то, что WEOUR решил после сверки наблюдений, физических пересчётов и известных пробелов.
Именно явная граница между ними делает продажи через несколько магазинов честными: пять магазинов могут сообщать то, что видят, и ни один из них не переписывает молча то, чем владеет WEOUR.
Сколько это стоит и почему мы платим
Этот принцип неудобен. Он означает больше состояний, больше явной обработки и меньше мест, где значение по умолчанию может тихо закрыть дыру. Он означает, что дашборды должны говорить «неизвестно» вместо успокаивающего нуля.
Мы платим эту цену, потому что альтернатива — операционная система, которая уверенно ошибается. Commerce OS заслуживает доверия, когда знает, чего не знает, — и говорит об этом в базе данных, а не только в интерфейсе.
NOT_INITIALIZED ≠ 0.NOT_REPORTED ≠ ZERO. Наблюдаемые запасы — это не центральные запасы.