下发与履约:推 WMS 或独立发货
最后更新 2026-10-13
下发动作、推送 WMS、拆单与多仓分仓、独立发货、装箱单与面单。
下发是交给履约环节的交接点。之后走哪条路看库存来源:wms_sync 订单推送到 WMS 生成出库单;独立模式订单直接在 OMS 发货。
下发动作#
- release 把 allocated 推到 released,ship_mode(parcel / ltl / ftl)必填。
- 同时在 oms_allocations 写一行下发凭证;写失败则状态回滚。
推送 WMS(wms_sync 模式)#
- push-to-wms 要求订单在 confirmed/allocated 且已指定仓库;生成 commit 状态的 WMS 出库单并锁定库存。
- 幂等:重复推送返回 PUSHED_ALREADY,不会建重复单。
- 拆单:一个 OMS 订单可拆成多张出库单,详情页全部列出。多仓分仓:先试算预览,再执行按仓库建单;已分仓返回 DISPATCHED_ALREADY。
- OMS 侧没有波次概念——波次在 WMS 侧。在订单详情页的 WMS 时间线看进度(committed → picking → picked → packed → shipped)。
独立发货(oms_standalone 模式)#
- 发货动作把 confirmed / allocated / released 推到 shipped。选择已对接的承运商账号和服务;按行重做 ATP 检查。
- tracking 号本地生成(承运商前缀 + 日期 + 随机数),OMS 库存以 reason "ship" 扣减。
- batch-ship 一次发最多 100 单,自动为每单匹配对接中的承运商账号,逐单返回结果。
装箱单与面单#
- 装箱单:生成 payload(订单+行+code128 条码数据)落库 oms_packing_lists,页面渲染打印。不调真实打印机。
- 面单:shipped 且有 tracking 号后可用;返回 4×6 payload(承运商、服务、tracking 条码、收发件地址、件数、重量),由打印覆盖层渲染。
- OMS 侧没有打包校验步骤——打包校验在 WMS 侧。
首版 tracking 号是本地生成的——不是承运商真实打单。拿到承运商 key 后会替换为真实打单。