订单管理听起来像是后台系统里没人愿意碰的"脏活累活",但凡是做过电商供应链的人都知道,它其实是整个履约链条的命门。

OMS,也就是订单管理系统,干的都是最基础的活儿:把前台订单接进来,跟仓库库存对上线,再按客户需求和紧急程度排个优先级,最后确定从哪发货、哪天送到。说起来简单,可一旦订单量上来,这套系统到底几斤几两,立刻就见分晓。

今天我想从三个层面聊聊这个话题:单据本身是什么、单据在系统里怎么流转,以及单据状态如何变化。
---
日常打交道最多的有三类单据。
销售订单最直观——用户在前台点了"提交订单",这张单子就诞生了。上面绑着用户ID、会员等级、收货地址这些基本信息,也有商品ID、数量、单价、优惠金额这些交易要素,再加上活动ID、下单时间、用户备注之类。你可以把它理解为整个履约故事的起点。
包裹单是OMS内部的产物,有时直接下传WMS,有时要先过一道特殊业务逻辑。它和销售订单是多对多的关系:一个销售订单可能拆成多个包裹,多个销售订单也可能合并成一个。除了用户和商品信息,包裹单上还要写清从哪个仓库发、走哪家物流、用什么包装材料、包裹多重多大,这些直接决定了仓库怎么干活。

出库申请单更偏执行层。包裹单审过之后,WMS会生成这张单子,带着库位、商品批次这类仓库作业真正需要的信息。至于库内怎么拣货、怎么复核,那就是WMS的事了,这里不展开。
---
如果把OMS的流转逻辑画张简图,真正关键的节点其实就几个:拦截器、拆合单、审单。
拦截器是道安全闸。业务上有特殊场景需要拦订单的时候,它就派上用场了。比如两会期间某些地区禁发粉末、液体,提前在拦截器里配置好规则,到了时间自动生效,过了期限再自动放行。也能用来拦特定用户或特定活动的订单,灵活性很高。
合单的目的很实在:省成本。同一个用户、同一个收货地址的订单,合并成一个包裹发出去,仓库操作费、物流费、包装材料费都能省下一截。社区团购里这个逻辑更明显——同一个团长下面几十个人的订单,最终要合并成"团长订单"统一配送,本质上也是合单。
拆单看似和合单矛盾,实则不得不拆。几种典型情况:商品分布在不同仓库,必须分开发;原箱发货的大件商品,比如纸尿裤按箱卖,用户买了两箱,即便走了合单逻辑也要拆成两个包裹;礼品盒和普通商品分开发,为了体验也为了包装规范;还有最朴素的——用户买太多了,一个包裹根本装不下。
拆单的同时往往伴随着仓库分配、物流商选择、运单号获取这些动作,OMS的拆单规则设计得够不够灵活,直接决定了它能适配多少平台和业务场景。
审单环节,人工确认包裹单的合理性,顺手加个备注。审完推给WMS生成出库申请单。当然,如果业务成熟、风险可控,这一步也可以自动化。
流程跑下来,异常是免不了的:仓库库存不够、收货地没有物流覆盖、快递单号没拿到、前后台商品映射出错……这些时候就得人介入处理了。
---
顺着上面的流程,单据在正向链路里会经历一系列状态变化,而且不同单据之间的状态是有关联的。
销售订单这边,用户提交后先"待付款",付完款变成"待发货",仓库发出后转为"已发货"——这里得注意,部分发货的情况也要考虑进去。至于取消、售后这些逆向状态,今天先不展开。

包裹单的状态更细一些:经过拦截器过滤后创建出来,初始是"待审核";人工或系统审过后进入"待处理",这时候后台在跑拆合单、分配仓库;一切正常后变为"未发货",等仓库真正发出,状态刷新为"发货"。
出库申请单相对简单:刚创建时是"待出库",分配完库存、生成波次之后进入"出库"状态,最后作业完成标记"已完成"。
---
从订单流入到用户签收,这套系统既要保证效率,又要兼顾各种特殊场景和异常处理,细节里全是功夫。希望这些对你有所启发。
立即登录