03 · ERP & SUPPLY CHAINP013 MIN
Warehouse、Inventory 与可用库存
分清实物在库、已预占与真正可销售的数量。
MENTAL MODELINVENTORY MODEL
01On Hand 100
→02Reserved 30
→03Blocked 5
→04Available 65
先把概念与边界说清楚
定义告诉你它是什么,边界告诉你它不负责什么;企业系统最常见的误解通常发生在两者混用时。
Warehouse
有独立收发、库位或库存责任的仓储节点。
Inventory
某 SKU 在某仓库的库存聚合状态,常含 on_hand、reserved 等数量。
Available Stock
可承诺数量,常见简化公式为 on_hand − reserved − blocked。
Reserved Stock
已为订单或任务占用但尚未实际出库的数量。
两个经销商同时买最后一件
两次请求都读到 available=1,然后都确认订单。
- 01
在事务内执行带 available >= 1 条件的原子预占。
- 02
只有更新一行成功才确认订单。
- 03
失败请求返回库存冲突并建议替代仓库。
不会超卖,竞争由数据库原子条件裁决。
马上动手
- 根据 on_hand=50、reserved=12、blocked=3 计算 available。
- 说明在途库存为什么不能默认计入 available。
常见坑
- 全公司只有一个 stock 字段
- 预占直接减少 on_hand
- 不记录仓库维度
05 · KNOWLEDGE CHECKAvailable 与 Reserved 的区别是什么?查看答案⌄
答案
Reserved 是已承诺但未出库的数量;Available 是仍可向新订单承诺的数量,通常要从在库量中扣除预占与冻结。