用户手册
帮助中心/用户手册/OMS ↔ WMS:库存来源、推送、发货回写与 tracking 回传

OMS ↔ WMS:库存来源、推送、发货回写与 tracking 回传

最后更新 2026-10-13

两系统如何对话:库存来源解析、幂等推送 WMS、WMS 发货回写、渠道 tracking 回传。

wms_sync 模式下 OMS 和 WMS 形成闭环:OMS 读 WMS 库存、把订单下推成出库单,WMS 执行拣选/打包/发货,发货回调再回写 OMS。本文逐个讲清这些链路。

库存来源解析#

  • oms_inventory_source_configs 存租户默认(warehouse_id 为空)加按仓库覆盖;resolveInventorySource 为每单解析出生效模式。
  • wms_sync 模式下 OMS 库存台账冻结只读——ATP 检查改读 WMS 的 qty_available。

下推:订单 → WMS 出库单#

  • push-to-wms 把行逐行转成 wms_order_lines。因为 item_id 本来就是 wms_items 的 id,无需 SKU 映射。
  • 出库单以 commit 状态创建,经 lockInventoryForCommit 锁定库存。成功后 OMS 订单到 released。
  • 一个 OMS 订单可拆成多张出库单(split_index / split_total);详情页列出全部,首单保留向后兼容。

回写:WMS → OMS#

  • WMS 出库单发货时,ship 钩子把对应 OMS 行的 fulfilled_qty 累加,并回填行级 tracking/承运商(拆单多次发运逐次累加)。
  • 整单状态按全部行判定:全发完 → fulfilled,否则 partial_fulfilled;回填订单级 tracking/承运商/shipped_at(已有值不覆盖)。
  • 每次发货还会在 oms_wms_status_events 写一条 shipped 事件(带 tracking 号和发货行),供给 WMS 时间线和渠道回传。

tracking 回传销售渠道#

  • 发货时 OMS 触发 fire-and-forget 的 tracking 回传(例如 Shopify fulfillments;拆单按 channel_line_item_id 精确到行)。回传失败不影响发货响应。
  • 回传状态落在 tracking_sync_status(synced / failed / skipped),日志只追加;retry-tracking-sync 可重试最近失败,可指定某个 split。
  • 只有 shipped 事件触发回传;delivered 不触发。
订单详情页的行状态是派生的、不是存的:fulfilled_qty = 0 → 待履约;部分 → 部分履约;fulfilled_qty ≥ ordered_qty → 已履约。