去年黑五,一家做家居小件的卖家找我救火:他们的 OMS 把一张 5 件货的订单拆成了三个包裹,从加州、德州、新泽西三个仓分别发出。客户只付了一份运费,公司实付了三份,还收到一条差评:"五件东西分三天到,什么破店。"老板问我:"系统不是应该自动选最优仓吗?"我说系统确实按规则选了,只是规则是三年前随便配的,从来没人调过。

多仓发货的 OMS 分仓规则,是那种"配错了天天亏钱、配对了没人夸"的模块。今天讲讲规则到底有哪些维度、优先级怎么排,以及最常见的三个配错现场。

规则一:距离优先,但"距离"不是直线距离

几乎所有 OMS 默认第一条规则是"离客户最近的仓"。听起来没毛病,问题出在"近"怎么算。用仓库到客户的直线距离算,洛杉矶的单子可能分给 San Bernardino 的仓,看似 60 英里;但快递的 zone 计价是按邮编 zone 走的,实际费用可能比分给 Phoenix 的仓还贵。

正确做法是用承运商的 zone 表反推:把常用承运商的 zone 矩阵导进 OMS,按"预估运费"排序而不是按"英里数"。这一改,一家日均 3000 单的客户,月运费降了 9%。数据是实打实的,改的只是一条排序逻辑。

电商仓库打包台上等待发出的多包裹

规则二:库存深度,别把最后一个卖断货

只看距离不管库存,是第二大坑。A 仓离客户近,但某 SKU 只剩 2 件,其中 1 件还被另一个待发货订单占着(已分配),OMS 不看实际可用库存,硬把单子派过去,结果拣选时发现不够,又拆单一波,时效直接炸。

分仓规则里必须有一条"库存水位线":可用库存低于安全水位(比如 7 天销量)的仓,自动降权,哪怕它最近。这个水位线要按 SKU 的 ABC 等级分别设,A 类 SKU 水位设高,C 类可以低。很多 OMS 支持"按 SKU 分类设水位",但实施时图省事全设一个数,等于没设。

规则三:成本不是只有运费

成熟的分仓规则会算一笔总账:运费 + 仓操作费 + 包材差异。举个例子:东海岸的单子,西海岸仓运费贵 2 美金,但西海岸是自营仓、操作费比东海岸的 3PL 便宜 3 美金,总账反而省 1 美金。只看运费的规则会选错。

更隐蔽的是 3PL 的计费项:有的 3PL 收"多件订单附加费",有的收"超尺寸处理费"。这些费用要折进分仓的成本模型,否则系统会把大件订单全派给"运费便宜但操作费贵"的仓,月底对账才发现亏了。

规则四:时效承诺,慢必赔的单子单独处理

带时效承诺的订单(比如亚马逊的 premium shipping、TikTok Shop 的按时发货考核),分仓逻辑要单独一条线:优先选"能按时发出"的仓,而不是"最便宜"的仓。超时罚款和账号扣分,可比那几美金运费贵多了。

我一般建议配两套规则模板:普通订单走"成本最优",时效订单走"时效优先",OMS 按订单标签自动切换。混在一起用一套规则的,最后一定是两头不讨好。

调参实战:优先级排序是门手艺

上面四条规则,OMS 里是按优先级顺序执行的。我的推荐排序是:时效标签 → 库存水位 → 总成本 → 距离兜底。为什么这么排?时效是红线,不能碰;库存不够派过去就是事故;成本是日常优化的主战场;距离只在前面都打平时才出场。

调参时一次只动一条规则,跑一周看数据:拆单率、平均运费、超时率。三个指标一起看,拆单率降了但运费涨了,说明库存水位设太严;运费降了但超时涨了,说明时效规则被成本规则压住了。对着指标调,两三轮就能收敛。

最后说个兜底:一定要配"无仓可派"的 fallback。所有仓都没库存、系统卡住时,订单不能凭空消失,要进异常池人工处理,并触发补货提醒。我见过没配 fallback 的,订单在系统里躺了四天,客户都退款了仓还不知道。规则配得再漂亮,兜底漏了等于白干。

回去看一眼你们 OMS 的分仓规则,上次调是什么时候?如果答案是"上线时配的",那这篇文章就是写给你看的。