说真的,OMS 与 WMS 对接这事,十个卖家九个被坑过。单子发出去了,仓库说没收到;仓库说发了,买家说没收到货。两边系统都显示"正常",锅最后全是卖家的——差评、退款、赔运费,一件不落。
我 2021 年开始做跨境,前面三年全是自己租小仓发货,单量起来后实在扛不住,2024 年 9 月把货挪到了洛杉矶一家 3PL 仓。OMS 还是原来自己用的那套,WMS 换成了 3PL 的。对接上线第一周,我就交了学费。
先讲第一个坑:SKU 映射。
我们店 SKU 有 800 多个,对接前我把 SKU 清单导给 3PL,让他们在 WMS 里建商品档案。听起来很简单对吧?结果第一周,100 多单在 WMS 里直接"挂起"——订单推过去了,WMS 说找不到这个 SKU。查下来,对方只建了 700 来个,剩下 100 多个是我近两个月上的新品,清单导出来的时候漏了一批。订单在 WMS 里躺了两天,看异常日报才发现的。那两天正赶上秋冬款上量,100 多单延迟了 2 天发出,客服被买家追着骂了一整周。
血的教训:SKU 映射表必须全量核对,一个不能差。现在 OMS 全部 SKU 导出,跟 WMS 商品编码 vlookup 对账,差一个都不上线。还定了死规矩:新品必须先在 WMS 建好映射才能上架,顺序不能反。
OMS 与 WMS 对接:先把这张字段映射表对齐
订单从 OMS 推到 WMS,本质上就是一张字段映射表。别小看这张表,九成的对接事故都出在这里。我把我们现在用的版本贴出来,左边 OMS 字段,右边 WMS 要的字段,最后一列是当初坑过我的地方:
| OMS 字段 | WMS 对应字段 | 最容易错的地方 |
|---|---|---|
| 渠道订单号 | 外部单号 | 两个系统单号不一样,两个号都得传;WMS 必须按外部单号去重 |
| OMS 订单号 | 出库单号 | 别拿渠道订单号当出库单号,一个买家一天下两单就撞车 |
| SKU | 商品编码 | 必须先建映射表;新品上架流程里必须含"建映射"这一步 |
| 数量 | 拣货数量 | 单位!按"箱"卖和按"件"卖的,在 WMS 里必须是同一个单位 |
| 收件人/地址/城市/州/邮编/电话 | 收货信息 | 地址第二行(公寓号、Unit 号)必须传,很多对接只传了第一行 |
| 物流方式 | 承运商+服务代码 | 别传"标准快递"这种名字,传代码,双方事先对好代码表 |
| 买家备注 | 打包备注 | 单独字段传,别塞进地址行,否则地址校验直接失败 |
| 店铺/货主 | 货主编码 | 多店铺共用一个 WMS 必须传,不然货会从别人的库存扣 |
最阴的是"数量单位"。我们一款组合装按"箱"卖、一箱 12 件,OMS 传的是"箱",WMS 档案里是"件",第一批 20 单直接按 20 件拣了。买家收到 1 件以为是整箱,纠纷开了一大片。后来映射表里加了一列"单位换算",再没错过。
还有:物流方式千万别传名字,传代码。我们最早传"标准""加急",3PL 合作了 5 家承运商,每家都有"标准",WMS 根本不知道映射给谁。现在两边对好代码表,OMS 传 GROUND_HOME 这类代码,扯皮少了九成。

对接异常:天天见的就四种
对接跑起来之后,异常是常态。我把天天见的四种列成矩阵:每种异常长什么样、系统自动怎么处理、人什么时候介入,全部写死:
| 异常类型 | 现象 | 自动处理 | 人工介入时机 |
|---|---|---|---|
| SKU 无映射 | 订单在 WMS 挂起 | 挂起 + 进异常日报 | 当天补映射,补完手动重推 |
| 库存不足 | 可发数量不够 | 按规则整单挂起或发有货部分 | 超过 4 小时没补上,客服联系买家 |
| 地址异常 | 校验失败、退件 | 挂起 | 人工核实地址,改完重推 |
| 重复下发 | 同一外部单号到了两次 | WMS 按外部单号去重,直接丢弃 | 不用介入,但日报里要能看到丢弃数 |
重点讲"重复下发",这是 2024 年黑五给我上的一课。当时 OMS 到 WMS 是实时 API 推送,黑五晚上网络抖了一下,OMS 这边超时了,自动重试,又推了一次。WMS 那边没有按外部单号去重,两次都建了出库单,夜班仓库直接发了两遍货。一个买家收到两个包裹,退回来一个,运费加货值,我一单亏了小 40 美金。那一晚重单的有十几单,肉疼到现在还记得。
这事之后我定了两条铁律:WMS 必须按渠道订单号做幂等去重,写进合同;上线前我亲自测,故意重推同一单 10 次,建 1 单才算过,建 2 单打回去改。
地址异常也值得一提。美国地址第二行(Apt、Unit、Suite)特别容易丢,很多映射只传第一行。我们一批公寓件 Unit 号没传过去,派送失败被退回,一来一回 7 天,买家直接差评。现在地址四件套——收件人、地址行(含第二行)、邮编、电话——缺一个,OMS 就不让推单。
一个反常识的结论:字段越少越好
很多人觉得字段传得越全越好,恨不得把买家用的什么优惠券都传过去。我一开始也这么想,直到被坑了几次才想明白:每多传一个字段,就多一个出错点。
WMS 是干执行的,只需要知道:给谁发、发什么、发多少、怎么发、有什么特殊备注。优惠券、广告来源这些它拿了没用,一个格式不对整单还可能失败。我们把推送字段从 30 多个砍到 18 个,异常率直接降了一半。
还有个 trade-off:实时推送还是定时批量。实时看着爽,单子秒到仓,但网络一抖就是丢单重单,半夜出问题没人盯。批量(比如每 15 分钟一个文件)看着笨,但可回放、可对账,坏了重跑一遍就行。我现在是组合打法:实时推 + 每 15 分钟对一次账,发现"OMS 有、WMS 没有"的单自动重推。两边的好处都想要,两边的活都得干。
OMS 与 WMS 对接上线前 checklist:必查的 7 件事
第二次切仓时用的清单,一项项打勾,全过才上线:
- 单号幂等:故意把同一单重推 10 次,看 WMS 建几单。建 1 单才算过。
- SKU 全量对账:OMS 全部 SKU 导出,跟 WMS 商品编码 vlookup,差一个都不行。
- 单位换算:组合装、箱规,全部在映射表里标清楚换算关系。
- 地址四件套必填:收件人、地址行(含第二行)、邮编、电话,缺一不可,OMS 端先拦。
- 物流方式代码表:双方对好代码,不用名字,不用"标准""加急"这种模糊词。
- 备注独立字段:买家备注单独传,不许塞进地址行。
- 沙箱打 50 单:用真实历史订单跑,专门挑脏数据——公寓号、PO Box、偏远邮编、电话缺失的,全部覆盖一遍。
异常日报怎么看:盯住三个数就行
对接上线后,每天早上 8 点,系统自动给我发一封异常日报邮件。我不看别的,就看三个数:
第一,挂起单数。个位数正常,超过 20 单我就去问 3PL 怎么回事。
第二,挂起原因分布。SKU 问题多还是地址问题多,同一个原因连续三天排第一,说明映射表或规则要改,不是偶发。
第三,挂起超 24 小时的单。这是红线。挂起不可怕,没人管才可怕。超 24 小时没处理,基本就是要延迟发货,必须当天清掉。
刚对接那两周,异常率(挂起加错发占总单量)差不多 8%。按这套跑了两个月,现在稳定在 0.5% 以下。黑五大促周会弹到 1% 左右,但都在日报里看得见,处理得掉。
说到底,OMS 与 WMS 对接拼的不是技术,是细心。字段映射表对齐、异常有人看、日报有人盯,这三件事做到位,掉链子的概率小九成。这招我亲测有效——从 8% 干到 0.5%,靠的就是这张表和这封日报。
作者:阿K|跨境电商卖家






