企业 销售 Amazon

Odoo 企业版 Amazon 履约为什么不是“订单进来、发货出去就完了”:sale line 完成度、承运商合规与 feed 回执链讲透

sale_amazon 会在 stock.picking 进入同步前先校验销售行是否完整发出、承运商与 tracking 是否合规,再把发货交给 Amazon feed;履约不是单一 done 动作。

企业 销售
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 4 阅读

Amazon 集成最容易被误读成“拣货 done 后同步个平台状态”。sale_amazon 对这件事明显更保守:先确认一个销售行相关的 move 是否一起完成,再检查 carrier 与 tracking 是否满足 Amazon 要求,最后才把 picking 推进到待同步或确认发货链路。

主要参考源码:

  • enterprise/sale_amazon/models/stock_picking.py

一、为什么先看 sales order line 完整度

_check_sales_order_line_completion() 的设计目标很清楚:同一个 Amazon 销售行的组件不能拆成多个时刻分别确认发货。因为 Amazon 侧把它当一个履约单元,客户也会按整套商品来预期。

所以 Odoo 在 stock 层阻止了“物流上做完一部分就先同步”的冲动。

二、carrier 和 tracking 是平台合规边界

_check_carrier_details_compliance() 会拦截缺失 carrier_idcarrier_tracking_ref 的出库。这里不是纯物流字段完整性,而是平台合规:Amazon 要求带着合规承运商和运单号确认 shipment。

三、真正进入同步前,还要标 pending

在 picking write 链里,只有满足“Amazon 订单 + 最终客户目的地 + 尚未 done 同步”的 picking 才会被标成 amazon_sync_status='pending'。之后 _confirm_shipment() 才会进入 Amazon shipment feed 逻辑。

也就是说,平台发货同步至少跨了三层:

  • 销售行履约完整度;
  • 物流承运商/运单号合规;
  • feed 提交与回执状态。

四、为什么这条链对对账也重要

如果你跳过前两层,可能出现:

  • Odoo 里部分 move done 了,但 Amazon 侧不接受;
  • Amazon 已被确认发货,但 carrier/tracking 口径在 Odoo 中不完整;
  • 一条销售行被拆分多次同步,平台侧和内部库存/收入口径都乱掉。

五、结论

Amazon 履约不是“订单进来、发货出去就完了”,而是销售行完整度 -> carrier/tracking 合规 -> shipment feed 回执三段链。只有这样,库存动作、平台状态和后续对账才对得上。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。