1. 需求概述
1.1. 背景
获取订单列表的时候,速卖通菜鸟认证仓发货的订单,返回订单类型为“SELLER_SEND_GOODS”,但发货状态又是shipped,系统认定为自发货订单且订单状态为已发货,导致没有同步;
1.2. 目的
解决官方仓或优先仓订单漏单问题。
2. 功能设计
2.1. 速卖通订单下载
2.1.1 需求说明
2.1.1.1 aliexpress.trade.seller.orderlist.get( 订单列表查询 )
目前:调用此接口的时候,会过滤掉【类型为卖家发货】&&【发货状态为shipped】的订单
调整:按照更新时间,获取此接口的所有数据(不要过滤订单)
2.1.1.2 aliexpress.trade.new.redefining.findorderbyid( 新版交易订单详情查询 )
a)判断是否官方仓发货(is_fba标识为true)的逻辑调整
当send_goods_operator为“WAREHOUSE_SEND_GOODS”,或者logistics_warehouse_type为‘cainiaoInternationalWarehouse’的时候,则可定义为当前订单为官方仓发货(is_fba标识为true)
b)判断自发货订单
非官方仓的其他订单即为卖家自发货,下载逻辑不变。
2.1.1.3 获取订单列表
目前是分别根据修改和添加时间获取 ,可将按添加时间获取注释掉,保留按更新时间下载
2.1.1.4 订单下载获取平台发货类型
现在的逻辑:是先取列表接口ProductList,取订单详情接口返回的SendGoodsOperator值,并且保存到中间表SendGoodsOperator字段也是取详情接口。
改为:按照订单详情接口ProductList获取
2.1.1.5 详情接口产品维度logistics_warehouse_type
只要某个产品存在cainiaoInternationalWarehouse则为平台仓即下载。下载规则在平台仓类型加上或者是菜鸟认证类型订单
注:第3、4、5主要是开发检查代码,需要优化或实现第1、2点需求改动地方。
2.1.2 参考界面

按需求完成。
(修改ERP订单下载 和 新销售平台订单下载)
速卖通订单下载优化逻辑,支持根据识别logistics_warehouse_type=cainiaoInternationalWarehouse菜鸟认证订单下载。
1.订单下载先根据平台修改时间获取订单列表,再平台添加时间获取订单列表
优化:理论上根据平台修改时间获取即可,去掉根据添加时间获取逻辑,关注是否漏单
2.因订单列表返回的发货类型和订单详情返回的发货类型不一样,且订单列表并不返回logistics_warehouse_type值
优化:将获取订单详情接口前置,即根据订单列表获取到的所有订单,每个订单都进行获取详情,进行如下校验
①判断订单详情返回判断平台仓发货类型send_goods_operator=WAREHOUSE_SEND_GOODS(原逻辑未改动);WAREHOUSE_SEND_GOODS类型订单同步
②新增根据订单详情接口返回logistics_warehouse_type=cainiaoInternationalWarehouse识别菜鸟认证订单进行同步下载。解决原先因订单状态不是等待发货且不是WAREHOUSE_SEND_GOODS的菜鸟订单未同步场景。
如订单多个产品只要含有cainiaoInternationalWarehouse则为菜鸟订单
3.记录新增订单为同步文本日志,方便后续排查
4.原先中间订单产品表部分字段取订单列表接口,如SendGoodsOperator,GoodsPrepareTime,LogisticsServiceName、LogisticsType,现取订单详情接口相同字段值,订单列表可能不是最新的。
优化:字段SendGoodsOperator,GoodsPrepareTime,LogisticsServiceName、LogisticsType取订单详情接口返回的值
自测部分截图
调试平台发货类型和菜鸟订单
记录不下载的订单日志 (平台单号,订单状态,发货类型,是否菜鸟订单)
erp订单下载
新销售平台订单下载
中间订单表
中间订单产品表