去年"黑五"结束后的那个周一早上七点,我手机上弹出客户老板的消息:"老米,我们客服被骂上热搜了。"
一家做护肤品的电商品牌,仓库在加州安大略,十二万平方英尺的 3PL 仓。黑五期间网站首页大字写着"全场 2 日达"。结果周一早上,上千个订单还躺在"待发货"里,客服电话被打爆,社交媒体上全是"骗子商家"的评论。
我去他们办公室坐了一下午,把 OMS 里承诺交期的逻辑翻了个底朝天。问题不在仓库干活慢——仓库那几天拣货拣到半夜,真正的病根是系统一开始就不该做那个承诺。可承诺量(ATP)和交期承诺,是 OMS 里最容易被当成"配好了就不用管"的功能,也是打脸打得最响的地方。
三个坑,我一个一个讲。
账上有货,仓库里根本没有
第一个坑最经典:ATP 的减法做错了。
可承诺量这个数听起来简单:有货就能卖。但"有货"到底指什么?我见过太多系统,公式写的是"在手库存减去已分配等于可售"。听起来没毛病,对吧?错就错在,在手库存里混进了三样根本不能动的东西:在途的货、被预留的货、质检冻结的货。
在途的货最容易出事。一家做小家电的客户,他们的 OMS 把"已经发货、在路上"的采购订单也算进了可售,理由是"反正三天就到仓了"。黑五前一周,一批八千台加湿器在洛杉矶港外等泊位,整整等了九天。这九天里网站照常卖,卖出去三千多台,承诺的全是"3 日达"。货到仓那天,客服已经道歉道得嗓子哑了。
预留的货是第二个雷。B2B 大客户的订单、给亚马逊 FBA 的补货计划,这些在系统里占了库存,但还没真正出库。有些 OMS 的预留逻辑只做到订单头一级,没做到行项目,或者预留了却没在 ATP 里扣掉。我见过最离谱的一家,同一批货被 B2B 订单预留了一次,又被 FBA 补货计划预留了一次,ATP 里一次都没扣——等于一份库存卖了三遍。
质检冻结的最隐蔽。来货抽检不合格,整批冻结等供应商回复,这批货在 WMS 里是锁定的,动不了。但 OMS 如果只读"在手库存"总数,根本看不到冻结状态。安大略那家护肤品仓,黑五前一批两万瓶精华液因为标签贴错被 QA 锁了,系统照卖不误。
怎么查?我的土办法:挑二十个动销 SKU,把 OMS 里 ATP 的数字导出来,再让仓库现场数一遍"现在立刻能拣的货",两个数对不上,差的就是这三样东西。修的时候别想着一步到位,先把公式改成"在手减预留减冻结",在途的货单独列一行"预计到货",按到货日期分开展示,不到仓不进可售。这个改法,一家八万平方英尺的仓,我带着他们两周就改完了,之后超卖投诉直接归零。
交期取的是 A 仓,发货的却是 B 仓
第二个坑在多仓履约。单仓的生意,交期就是"今天发货加快递时效",简单。多仓一上,事情就复杂了。
OMS 承诺交期的时候,要回答两个问题:从哪个仓发?几天能到?很多系统的逻辑是:先按"离客户最近的仓"算出一个漂亮的交期展示在前端,下单之后,分配逻辑再按"哪个仓有货、成本最低"重新选一次仓。前端承诺的是 A 仓的 2 天,实际从 B 仓发出走了 4 天。客户看到的物流轨迹,第一站就是"包裹从加州发出",而他人在纽约——投诉电话就是这么来的。

还有个更隐蔽的:截单时间。系统算交期的时候用了"今天发货",但没看现在已经是下午四点,而仓库当天的截单时间是下午三点。这单实际明天才能出库,交期从一开始就少算了一天。大促期间仓库还会提前截单,平时三点截,大促两点就截了,系统里没人改这个参数,承诺的交期天天晚一天。
修法是反过来的:让承诺交期的逻辑和分仓逻辑用同一套规则。前端展示交期之前,先跑一遍真实的分仓分配,拿到"到底从哪个仓发",再按那个仓算快递时效、加上截单时间判断。听起来像废话,但我敢说,市面上至少一半的中型 OMS,前端承诺和后端分配是两套各算各的代码。这是我每次做系统选型一定让厂商现场演示的环节:下三单不同邮编的单,看承诺的交期和实际分仓对不对得上。对不上的,直接 pass。
大促一到,承诺的交期全线崩盘
第三个坑,大促专属。平时 ATP 算得挺准,一到大促就崩,原因不在公式,在并发。
平时一分钟几十单,库存扣减跟得上。大促零点一分钟几千单进来,ATP 还是按"几分钟前算好的快照"在卖。快照里有五百件,实际三秒钟就被抢光了,后面两分钟下单的人,系统照样承诺"有货、2 日达"。等仓库第二天上班,发现根本没货可发,只能一个个打电话道歉,或者硬着头皮等补货,交期从 2 天拖成 2 周。
还有一种:预售和现货卖的是同一批货。市场部做了一场直播预售,卖的是"下周到仓"的那批货;同一时间,网站现货也在卖。两边用的不是同一个库存池,同一批货被承诺了两遍。到仓那天,货只够一半人,另一半的"2 日达"变成"等通知"。
大促的修法有三板斧。第一,促销 SKU 单独建一个库存池,和日常销售的池子物理隔离,预售的就是预售的,现货的就是现货的,互不串用。第二,高并发时段 ATP 加悲观锁,或者至少把快照刷新频率提到秒级——这事得拉着技术一起看,业务方自己搞不定。第三,大促前做一次"承诺压力测试",拿去年大促的峰值单量往测试环境灌一遍,看 ATP 什么时候开始胡说八道。提前知道崩的点在哪,比事后道歉便宜得多。
先别急着换系统,照这个顺序查
很多老板一出事就想换 OMS。我的建议是先查,再决定换不换,因为这三个坑,十个有九个是配置问题,不是系统不行。
排查顺序:先抽二十个 SKU 做账实核对,确认 ATP 公式扣没扣对预留和冻结;再下几单不同邮编的测试单,对比前端承诺交期和实际分仓、截单时间;最后复盘上一次大促,看看超卖的单子里有多少是并发快照滞后、多少是预售现货串池。这三步走完,病根基本就清楚了。
修的优先级也有讲究:公式改对是第一位的,不动代码也能改;分仓和承诺用同一套规则排第二,需要技术排期;大促的并发和隔离池排第三,留到下次大促前一个月动手。按这个顺序,一家日均三千单的仓,一个季度足够把交期准确率拉回正常水平。
最后留个问题给你:你们系统里,承诺交期的那行数字,最后一次有人去仓库现场、拿着 ATP 报表逐个 SKU 核对,是什么时候?如果想不起来,那下一次被打脸,可能已经在路上了。






