先解释每个数字,再讨论同步频率
“仓库有 120 件”不能直接推出“店铺能卖 120 件”。其中可能有未发货订单占用、质检冻结和其他业务预留。不同系统的字段名称并不完全相同;例如 Shopify 将现有库存、可售、已占用、不可售和在途分开记录,可售不包含在途。对接时应逐项对应含义,不能只按字段名翻译。
一份可核算的库存快照
示例中,仓库 W1 的同一 SKU 有实物 120 件,其中已分配给订单 35 件、质检冻结 5 件,剩余可售 80 件;另有采购在途 40 件。这里的 35 件已包含全部待履约订单占用,没有额外待扣订单。
| 项目 | 数量 | 处理方式 |
|---|---|---|
| 实物库存 | 120 | 作为计算起点 |
| 订单占用 | 35 | 扣除一次 |
| 质检冻结 | 5 | 暂不销售 |
| 可售数量 | 80 | 120 − 35 − 5 |
| 采购在途 | 40 | 收货并满足可售条件后再加入 |
如果上游直接提供的“可用库存”已经是 80,接收方就不能再扣 35 和 5。快照必须保存仓库、SKU、单位、数据时点和口径版本;两个仓库的“箱”与“件”未换算前也不能相加。
两个店铺如何使用这 80 件
一种便于核对的方式是分配额度:渠道 A 发布 50 件,渠道 B 发布 30 件,总额不超过 80。若两个渠道都发布 80,而订单又无法即时统一占用,就可能超出共享库存。采用共享额度还是固定分配,取决于订单回传能力和实际业务规则。
示例采用固定分配。A 新增一个 3 件订单后,中心可售变为 77,A 的剩余额度应为 47,B 保持 30。如果 A 已自行扣减至 47,下一次同步应写入正确余额或执行已核对的变动,不能再次减 3。每个订单行保留处理编号,取消订单时也要确认它是否已释放过占用。
补货建议使用另一个计算口径
假设下一个补货周期内,预计尚未形成订单的新增需求为 100 件,周期结束希望保留 20 件;当前可售为 80,且 40 件在途能在所需时间前验收入库,则本周期净补货建议为 max(0, 100 + 20 − 80 − 40) = 0。若这 40 件延期到周期之后,建议变为 40 件。该算例没有再次加入已占用的 35 件订单,以免把需求重复计算。
补货报表应列出预计需求的来源和适用周期。促销、缺货造成的销量失真需要单独标注,不能把近几日销量机械延伸成确定需求。
同步失败时保留最后可信状态
采集超时应标为“数据过期”,不能把库存改成零,也不能继续称为实时库存。是否暂停销售或缩小额度,由预先批准的业务规则决定。验收至少覆盖订单重复回传、取消重复释放、冻结库存解除以及在途延期四种情况,并检查所有渠道额度之和是否仍在可用范围内。