平台通过获取商家在订单全链路履约数据,通过数字化视图处理后在商家、消费者侧进行物流时效的表达,提升消费者物流体验、并降低商家经营成本。
服务商需将商家订单履约数据上翻至平台,数据内容包含:订单在ERP、OMS、WMS等系统里处理信息。
1. 大促场景订单流转全链路监控:保障大促期间订单正常流转,当订单在ISV系统产生异常堆积,平台能快速感知并协同服务商进行解决处理,更多详情请查看:订单全链路监控产品介绍。
2. 子订单多包裹:子单拆分成多个包裹后,通过ISV回传包裹发货信息及包裹对应成分信息,展示在手淘前台,提升消费者物流体验。
3. 更多全链路协同场景:订单全链路将陆续应用在改地址等场景中,提升商家、消费者的经营和购物体验。
组合品和成分品:组合品是一个单独售卖的SKU,由多个成分品构成,如:一个组合品为“桌椅套装”,包含成分品1:1张桌子,成分品2:4把椅子。
注意:成分品和组合品目前仅支持商家通过千牛后台进行发布维护,无法通过TOP接口发布组合品和成分品信息,但交易接口可获取子订单成分品信息。
组合品详细介绍:https://open.taobao.com/doc.htm?docId=121196&docType=1
标准品:即未填写成分品信息的正常商品,如上文“桌椅套装,1张桌子,4把椅子”未维护成分品信息,也算标准品。
涉及API |
使用方 |
接口变更说明 |
订单详情 |
ERP |
增加子订单成分品信息 增加子订单部分发货场景,对应的运单号列表及成分品信息 |
退款API |
ERP |
退款详情中,增加组合商品下的成分品清单 |
发货 |
ERP |
发货接口支持场景:部分发、全部发、补发、“部分发货”的订单 无包裹订正为 "全部发货" 新增接口修改运单号 |
新增接口:商品成分品查询 alibaba.item.edit.schema.get(老接口改造) |
ERP |
增加成分品相关信息字段 |
ERP |
订单状态回传(原订单全链路接口请查看文档:订单全链路监控产品接入,本次会针对拆合单结果回传新增字段) 若历史上未接入订单全链路监控,请先按文档进行接入。 |
taobao.qimen.event.produce 和 taobao.qimen.events.produce(批量接口) 原接口升级。
字段名 |
说明 |
备注 |
erpOrderId |
erp单号 |
主单号对应的erp单号,转单、审单、通知配货、出库 需要填。拆单、合单场景下不用填。 |
taobaoSubOrderIds |
淘宝子订单号集合 |
转单、审单、通知配货、出库 需要填,按照实际场景,传对应的子单即可。 拆单、合单场景下不用填。 |
eventTime |
产生事件时间 |
触发事件的时间。 |
字段名 |
说明 |
status |
枚举值: 转单:QIMEN_ERP_TRANSFER、X_TO_SYSTEM 审单:QIMEN_ERP_CHECK、X_SERVICE_AUDITED、X_SEND_PRINTED 通知配货:QIMEN_CP_NOTIFY、X_ALLOCATION_NOTIFIED、X_WAIT_ALLOCATION 仓库通知ERP出库:QIMEN_CP_OUT、X_OUT_WAREHOUSE 拆单:QIMEN_ERP_SPLIT (新增) 合单:QIMEN_ERP_MERGE (新增)
备注:拆单、合单节点只需在ERP内部作业的最后一个环节(即erp发货单创建)调用即可。若无拆单、合单操作,这忽略这两个节点即可。 |
tid |
淘宝主订单id,合单场景填任意值即可,实际逻辑不会消费此字段。 |
接口扩展支持拆合单
ext字段回流数据结构
"ext": { // 拆单信息 "splitInfo": { "erpId": "发货单的erpId", // 发货单的erpId "taobaoSubOrderId": "淘宝子订单id", "orders": [ { "taobaoSubOrderId": "淘宝子订单", "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" }, { "taobaoSubOrderId": "淘宝子订单", "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } // 合单结构 "mergeInfo": { "erpId": "发货单的erpId", // 对淘宝子订单id1 和 淘宝子订单id2 做了合单操作,对应的发货单id "orders": [ { "taobaoSubOrderId": "淘宝子订单id", // 淘宝交易子订单,如果为主单合单,taobaoSubOrderId = taobaoMainId "taobaoMainId": "淘宝主订单id", "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" }, { "taobaoSubOrderId": "淘宝子订单id", // 淘宝交易子订单,如果为主单合单,taobaoSubOrderId = taobaoMainId "taobaoMainId": "淘宝主订单id", "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } }
以几个场景为例,举例说明拆合单传参细节:
前置条件:主订单A有三个子订单:{a, b, c}
场景一:由erp系统操作后,变成{a}, {b, c}两个包裹发货 这种场景下,认为主订单A被拆单发货了。
调用两次拆单接口 或 一次批量接口即可。ext传参如下:
// 第一次传参: { "splitInfo": { "erpId": "发货单的erpId", // a的发货单erpId "taobaoSubOrderId": null, // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": "a" "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } } // 第二次传参: { "splitInfo": { "erpId": "发货单的erpId", // b的发货单erpId "taobaoSubOrderId": null, // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": "b" "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" }, { "taobaoSubOrderId": "b" "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } }
场景二:由erp系统操作后,变成{a} {b} {c}三个包裹发货,这种场景下,认为主订单A被拆单发货了,调用三次拆单接口 或 一次批量接口即可。ext传参如下:
// 第一次传参: { "splitInfo": { "erpId": "发货单的erpId", // a的发货单erpId "taobaoSubOrderId": null, // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": "a" "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } } // 第二次传参: { "splitInfo": { "erpId": "发货单的erpId", // b的发货单erpId "taobaoSubOrderId": null, // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": "b" "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } } // 第三次传参: { "splitInfo": { "erpId": "发货单的erpId", // c的发货单erpId "taobaoSubOrderId": null, // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": "c" "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } }
场景三:由erp系统操作后,变成{a} {b} {c1} {c2}四个包裹发货,这种场景下,认为主订单A被拆单发货了,调用四次拆单接口 或 一次批量接口即可。ext传参如下:
// 第一次传参: { "splitInfo": { "erpId": "发货单的erpId", // a的发货单erpId "taobaoSubOrderId": null, // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": "a" "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } } // 第二次传参: { "splitInfo": { "erpId": "发货单的erpId", // b的发货单erpId "taobaoSubOrderId": null, // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": "b" "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } } // 第三次传参: { "splitInfo": { "erpId": "发货单的erpId", // c1的发货单erpId "taobaoSubOrderId": "c", // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": null, // 这种场景非必要填 "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } } // 第四次传参: { "splitInfo": { "erpId": "发货单的erpId", // c2的发货单erpId "taobaoSubOrderId": "c", // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": null, "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } }
场景四:如果还有个一主一子订单B {d} , 最后变成 {a,d} {b} {c1, c2} 三个包裹发货, {a,d} 属于合单操作。 {b}、{c1,c2} 属于拆单操作 。 这种情况下调用一次合单接口,两次拆单接口 即可。ext传参如下:
// 第一次合单传参: { "mergeInfo": { "erpId": "发货单的erpId", // a、d对应发货单的erpId "orders": [ { "taobaoSubOrderId": "a", // 淘宝交易子订单,如果为主单合单,taobaoSubOrderId = taobaoMainId "taobaoMainId": "A", "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" }, { "taobaoSubOrderId": "d", // 淘宝交易子订单,如果为主单合单,taobaoSubOrderId = taobaoMainId "taobaoMainId": "B", "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } } // 第二次拆单传参: { "splitInfo": { "erpId": "发货单的erpId", // b的发货单erpId "taobaoSubOrderId": null, // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": "b" "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" } ] } } // 第三次传参: { "splitInfo": { "erpId": "发货单的erpId", // c1-c2对应发货单的erpId "taobaoSubOrderId": "c", // 不是根据子订单拆单,不需要填 "orders": [ { "taobaoSubOrderId": null, "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" }, { "taobaoSubOrderId": null, "skuId": "淘宝skuId", "itemId": "淘宝itemId", "count": "商品数量" }, ] } }
1)若存在成分品信息,子订单详情中,增加组合商品下的成分品清单;
2)主订单信息中,增加赠品包裹物流详情及子订单对应多包裹物流详情。
名称 |
类型 |
示例值 |
描述 |
orders |
Order[] |
订单列表 |
|
-combine_item_info |
combineItemInfo[] |
组合品(成分品)子商品列表 注意:获取此部分信息需要在入参的fields填orders.combine_item_info才会有返回 |
|
-- item_id |
Number |
2342344 |
商品id |
-- item_name |
String |
测试商品 |
商品标题 |
-- quantity |
Number |
数量 |
|
-- sku_id |
String |
5937146 |
商品的最小库存单位Sku的id |
-- outer_iid |
String |
152e442aefe88dd41cb0879232c0dcb0 |
商家外部编码(可与商家外部系统对接) |
-- sku_title |
String |
16g |
SKU标题 |
-- origin_fee |
Number |
123 |
成分品原价 |
-- combine_sub_item_fee |
Number |
123 |
成分品套餐原价 |
-- outer_id |
String |
123 |
外部ID |
combine_logistics_details(与orders同级) |
combine_logistics_detail[] |
子订单对应多包裹物流详情 |
|
-- invoice_no |
String |
运单号 |
|
-- logistics_company |
String |
物流公司 |
|
-- sub_order_id |
Number |
子订单id |
|
-- send_goods_detail |
send_goods_detail[] |
包裹详情 |
|
--- type |
Number |
0普通1组合商品2组套商品3后置赠品4状态推进 |
|
--- consign_status |
Number |
0全部发货1部分发货 |
|
--- amount |
Number |
数量 |
|
--- goods_detail |
goods_details[] |
成分品发货物品详情,非成分品不支持 |
|
---- sku_id |
String |
sku_Id |
|
---- amount |
Number |
数量 |
|
---- item_id |
Number |
2342344 |
商品id |
-- 其余物流相关字段不再列出,参见 https://open.taobao.com/api.htm?docId=54&docType=2 |
退款详情中,增加组合商品下的成分品清单。
名称 |
类型 |
示例值 |
描述 |
refund |
Refund[] |
订单列表 |
|
-combine_item_info |
combineItemInfo[] |
组合品(成分品)子商品列表 |
|
-- item_name |
String |
测试商品 |
商品名称 |
-- quantity |
Number |
数量 |
|
-- num_iid |
Number |
2342344 |
商品数字编号 |
-- sku_id |
String |
5937146 |
商品的最小库存单位Sku的id |
-- outer_iid |
String |
152e442aefe88dd41cb0879232c0dcb0 |
商家外部编码(可与商家外部系统对接)。外部商家自己定义的商品Item的id,可以通过taobao.items.custom.get获取商品的Item的信息 |
-- 其余相关字段不再列出,参见 https://open.taobao.com/api.htm?&source=search&docId=53&docType=2 |
alibaba.ascp.logistics.offline.send (老接口升级)
支持场景:
1)部分发;
2)全部发;
3)补发;
4)“部分发货”的订单 无包裹订正为 "全部发货"。
名称 |
类型 |
必须 |
示例值 |
描述 |
tid |
String |
true |
123 |
淘宝交易ID(发货对象模型) |
feature |
String |
false |
主交易单扩展字段 |
|
sender_id |
Number |
false |
123456 |
发货寄件场景下,卖家联系人地址库ID,可以通过taobao.logistics.address.search接口查询到地址库ID。如果为空,取的卖家的默认寄件地址 |
cancel_id |
Number |
false |
123456 |
退回寄件场景下,卖家联系人地址库ID,可以通过taobao.logistics.address.search接口查询到地址库ID。 如果为空,取的卖家的默认退货地址 |
sub_tids |
String |
false |
1,2,3 |
子订单id列表(consign_type = 1、2、3 时不再使用次字段,使用新字段goods代替子订单信息) |
consign_type |
Number |
true |
1 |
发货类型 0:普通发货(原链路) 1:普通发货(新链路,覆盖老链路功能,并支持子单多批次发货、成分品和ERP线下赠品发货) 2:无包裹推进发货状态 3:补发; 默认0 |
consign_pkgs |
TopConsignPkgRequest[] |
true |
包裹信息模型 |
|
--out_sid |
String |
true |
123455 |
运单号.具体一个物流公司的真实运单号码。淘宝官方物流会校验,请谨慎传入 |
--company_code |
String |
true |
POST |
物流公司代码.如"POST"就代表中国邮政,"ZJS"就代表宅急送.调用 taobao.logistics.companies.get 获取 |
--goods |
TopConsignGoods |
包裹商品信息模型 |
||
----sub_tid |
String |
true |
100001 |
子交易单单号 |
----item_type |
Number |
false |
0 |
商品类型 0:普通品、平台赠品,1:线下erp赠品,2:成分品 默认0 |
----comp_item_id |
Long |
false |
22222 |
成分品itemid,在成分品场景下必填 |
----comp_sku_id |
Long |
false |
33333 |
成分品skuid,在成分品场景下必填 |
----num |
Number |
false |
2 |
商品发货数量,不传默认为下单时的商品数量, 支持不传,但不能传0 |
consign_status |
TopConsignStatusRequest[] |
子订单发货状态 |
||
--sub_tid |
String |
true |
100001 |
子订单id(组合品不需要传,系统会自动判断状态) |
--is_part_consign |
Boolean |
false |
true |
是否部分发;true:“部分发”,fasle:”全部发货“,默认false |
入参举例
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "subTid": "123456789", "num" : 1 } ], "outSid": "1234" } ], "consignStatus": [ { "isPartConsign": true, "subTid": "123456789" } ], "consignType": 1, "tid": "123456789" }
tips:
① consignType = 1 ;
② consignStatus 传需要部分发的子订单,且isPartConsign = true(true:部分发货 false:全部发货,默认不填为false)。
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "subTid": "123456789" } ], "outSid": "1234" } ], "consignType": 1, "tid": "123456789" }
{ "consignPkgs": [ { "companyCode": "STO", "outSid": "1234" } ], "consignType": 1, "tid": "123456789" }
tips:
① 不传goods信息,只通过主订单id推进发货;
成分品信息:
123456789(子单) -- 成分品A: itemId: 100001 skuId:100002 1件 -- 成分品B: itemId: 200001 skuId:200002 1件
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "compItemId": "100001", "compSkuId": "100002", "num": 1, "itemType":2, "subTid": "123456789" } ], "outSid": "1234" } ], "consignType": 1, "tid": "123456789" }
tips:
① itemType=2 (成分品);
② compItemId、compSkuId 成分品的itemid和skuid,成分品场景下必传。
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "compItemId": "100001", "compSkuId": "100002", "subTid": "123456789", "itemType":2 }, { "compItemId": "200001", "compSkuId": "200002", "subTid": "123456789", "itemType":2 } ], "outSid": "1234" } ], "consignType": 1, "tid": "123456789" }
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "subTid": "123456789" }, { "itemType": 1, "num": 1, "subTid": "123456789" } ], "outSid": "1234" } ], "consignType": 1, "tid": "123456789" }
tips:
① itemType = 1 表示赠品
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "itemType": 1, "subTid": "123456789" } ], "outSid": "1234" } ], "consignStatus": [ { "isPartConsign": true, "subTid": "123456789" } ], "consignType": 1, "tid": "123456789" }
tips:
① itemType = 1 表示赠品;
② 如果数量不传默认为1;
③ 若子订单A主品未发货,只单独发了赠品,则需要指定子订单A发货状态为“部分发货"(isPartConsign= true)。
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "subTid": "123456789" } ], "outSid": "1234" } ], "consignType": 3, "tid": "123456789" }
tips:
① 子单必须全部发货之后才可以补发;
② consignType = 3(补发类型)。
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "compItemId": "100001", "compSkuId": "100002", "itemType": 2, "num": 1, "subTid": "123456789" } ], "outSid": "1234" } ], "consignType": 3, "tid": "123456789" }
tips:
① 成分品必须全部发货之后才可以补发;
② itemType=2 (成分品);
③ compItemId、compSkuId 成分品信息必传;
④ consignType = 3(补发)。
{ "consignPkgs": [ { "cpCode": "STO", "goods": [ { "itemType": 1, "num": 1, "subTid": "123456789" } ], "mailNo": "1234" } ], "consignType": 3, "tid": "123456789" }
tips
① 子订单必须全部发货之后,才能调用consignType = 3 补发赠品;
② itemType=1 (赠品);
③ consignType = 3(补发)。
{ "consignStatus": [ { "isPartConsign": false, "subTid": "123456789" } ], "consignType": 2, "tid": "123456789" }
tips:
① 子订单当前为“部分发货”,但发现已经子单实际上已经发完了,可订正子订单发货状态为“全部发货”;
② 只有普通品可以订正,成分品不可订正状态;
③ consignType = 2(无包裹订正“部分发”为“全部发货”);
④ 不传consignPkgs 包裹信息。
答:本质上是一次发货状态的订正,比如子订单A第一次用包裹A “部分发货”,子订单A第二次用包裹B “部分发货”,这时发现A已经全部发完了,因为引入了"部分发货",需要将A的状态由“部分发货”修正为“全部发货”,这个时候用consign_type=2 ,consign_status(sub_tid + is_part_consign=false)。
alibaba.ascp.logistics.consign.modify(新接口)
名称 |
类型 |
必须 |
示例值 |
描述 |
tid |
String |
true |
123 |
淘宝交易ID(发货对象模型) |
old_company_code |
String |
true |
POST |
原物流公司代码.如"POST"就代表中国邮政,"ZJS"就代表宅急送.调用 taobao.logistics.companies.get 获取 |
old_out_sid |
String |
true |
123455 |
原运单号.具体一个物流公司的真实运单号码。淘宝官方物流会校验,请谨慎传入 |
new_company_code |
String |
true |
SF |
新物流公司代码.如"POST"就代表中国邮政,"ZJS"就代表宅急送.调用 taobao.logistics.companies.get 获取 |
new_out_sid |
String |
true |
123455 |
新运单号.具体一个物流公司的真实运单号码。淘宝官方物流会校验,请谨慎传入 |
goods |
ConsignGoodsReq |
false |
包裹商品信息模型 |
|
--sub_tid |
String |
true |
100001 |
子交易单单号 |
--item_type |
Number |
false |
0 |
商品类型 0:普通品,1:赠品,2:成分品 默认0 |
--comp_item_id |
String |
false |
成分品itemid,在成分品场景下必填 |
|
--comp_sku_id |
String |
false |
成分品skuid,在成分品场景下skuid存在则必填 |
tips:
① 同一主订单多次发货的场景时,如果两次发货的快递公司+运单号相同,在修改运单时无法判断需要修改哪一次发货行为的运单号,所以需要传包裹中的商品信息goods来唯一确定。
② 若每次发货的包裹信息不同,则无需传goods信息。
{ "oldCompanyCode": "STO", "oldOutSid": "1234", "newCompanyCode": "SF", "newOutSid": "123456", "tid": "123456789" }
tips:
① 每次发货的物流信息都不相同时,使用此方式。
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "compItemId": "100001", "compSkuId": "100002", "num": 1, "itemType":2, "subTid": "123456789" } ], "outSid": "1234" } ], "consignType": 1, "tid": "123456789" }
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "compItemId": "200001", "compSkuId": "200002", "num": 1, "itemType":2, "subTid": "123456789" } ], "outSid": "1234" } ], "consignType": 1, "tid": "123456789" }
{ "oldCompanyCode": "STO", "oldOutSid": "1234", "newCompanyCode": "SF", "newOutSid": "123456", "tid": "123456789", "goods": [ { "compItemId": "200001", "compSkuId": "200002", "num": 1, "itemType":2, "subTid": "123456789" } ] }
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "subTid": "123456789" } ], "outSid": "1234" } ], "consignStatus": [ { "isPartConsign": true, "subTid": "123456789" } ], "consignType": 1, "tid": "123456789" }
{ "consignPkgs": [ { "companyCode": "STO", "goods": [ { "num": 1, "itemType":2, "subTid": "123456789" } ], "outSid": "1234" } ], "consignType": 1, "tid": "123456789" }
{ "oldCompanyCode": "STO", "oldOutSid": "1234", "newCompanyCode": "SF", "newOutSid": "123456", "tid": "123456789", "goods": [ { "num": 1, "itemType":2, "subTid": "123456789" } ] }
alibaba.item.edit.schema.get(该API已上线,使用线上版本即可)
商品编辑get接口中,增加组合商品下的成分品字段。
字段 |
含义 |
备注 |
combinePackage |
组合商品 |
combinePackage下一个complex-values为一个sku的售卖包 |
--packageUnitList |
组合内商品 |
最多12个子品 |
----unitItemId |
子品商品id |
|
----unitSkuId |
子品skuid |
|
----unitMultiple |
子品组合数 |
|
--packageStockShare |
组合商品和子商品共享库存 |
次售卖包的库存模式 |
--skuId |
组合商品的skuid |
商品上的skuid |
<field id="combinePackage" name="组合商品" type="multiComplex"> <rules> <rule name="tipRule" value="若关联了组合内商品,商品的实际库存将以具体规格中组合库存模式为准,请关注下方设置。"/> </rules> <complex-values> <field id="packageUnitList" name="组合内商品" type="multiComplex"> <complex-values> <field id="unitItemId" name="商品id" type="input"> <value>700060143250</value> </field> <field id="unitSkuId" name="SKU id" type="input"> <value>5118340851806</value> </field> <field id="unitMultiple" name="组合数" type="input"> <value>2</value> </field> </complex-values> <complex-values> <field id="unitItemId" name="商品id" type="input"> <value>700229959409</value> </field> <field id="unitSkuId" name="SKU id" type="input"> <value>5114510878090</value> </field> <field id="unitMultiple" name="组合数" type="input"> <value>3</value> </field> </complex-values> <complex-values> <field id="unitItemId" name="商品id" type="input"> <value>700457939953</value> </field> <field id="unitSkuId" name="SKU id" type="input"> <value>5044093122517</value> </field> <field id="unitMultiple" name="组合数" type="input"> <value>3</value> </field> </complex-values> </field> <field id="packageStockShare" name="组合商品和子商品共享库存" type="singleCheck"> <value>true</value> </field> <field id="skuId" name="skuId" type="input"> <value>5118497803936</value> </field> </complex-values> <complex-values> <field id="packageUnitList" name="组合内商品" type="multiComplex"> <complex-values> <field id="unitItemId" name="商品id" type="input"> <value>699379583391</value> </field> <field id="unitSkuId" name="SKU id" type="input"/> <field id="unitMultiple" name="组合数" type="input"> <value>5</value> </field> </complex-values> <complex-values> <field id="unitItemId" name="商品id" type="input"> <value>699395960010</value> </field> <field id="unitSkuId" name="SKU id" type="input"/> <field id="unitMultiple" name="组合数" type="input"> <value>4</value> </field> </complex-values> <complex-values> <field id="unitItemId" name="商品id" type="input"> <value>699403524525</value> </field> <field id="unitSkuId" name="SKU id" type="input"/> <field id="unitMultiple" name="组合数" type="input"> <value>6</value> </field> </complex-values> </field> <field id="packageStockShare" name="组合商品和子商品共享库存" type="singleCheck"> <value>true</value> </field> <field id="skuId" name="skuId" type="input"> <value>5118497803937</value> </field> </complex-values> <fields> <field id="skuId" name="skuId" type="input"> <rules> <rule name="tipRule" value="组合商品 sku id"/> <rule name="valueTypeRule" value="long"/> </rules> </field> <field id="packageStockShare" name="组合商品和子商品共享库存" type="singleCheck"> <rules> <rule name="tipRule" value="如果选择共享库存,则组合商品的库存会根据组合内的商品自动计算,不可单独维护;若不共享库存,则组合商品的库存可以独立维护。"/> </rules> <options> <option displayName="是" value="true"/> <option displayName="否" value="false"/> </options> </field> <field id="packageUnitList" name="组合内商品" type="multiComplex"> <fields> <field id="unitItemId" name="商品id" type="input"> <rules> <rule name="tipRule" value="子商品 id"/> <rule name="valueTypeRule" value="long"/> </rules> </field> <field id="unitSkuId" name="SKU id" type="input"> <rules> <rule name="tipRule" value="子商品 sku id"/> <rule name="valueTypeRule" value="long"/> </rules> </field> <field id="unitMultiple" name="组合数" type="input"> <rules> <rule name="tipRule" value="子商品的倍数"/> <rule name="requiredRule" value="true"/> <rule name="minValueRule" value="1" exProperty="include"/> <rule name="valueTypeRule" value="integer"/> </rules> </field> </fields> </field> </fields>
SDK:使用您的Appkey在开发者控制台生成即可。
开放平台地址:开放平台生产环境域名:gw.api.taobao.com (不再提供预发域名)。
测试店铺:任意店铺。
测试买家:任意买家。
测试商品:任意商品。
① 您可以使用您任意测试店铺任意商品做测试;
② 使用发货接口测试拆单发货,用fullinfo获取交易订单明细测试。
SDK:使用您的Appkey在开发者控制台生成即可。
开放平台地址:开放平台生产环境域名:gw.api.taobao.com (不再提供预发域名)。
商家账号:商家测试帐号1 (注意,不再支持服务商自有测试店铺,无需再做任何白名单逻辑)。
① 请提供应用的Appkey,联系开放小二@新萍 生成并提供对应的sessionKey用于测试;
② 请登录开发者控制台,并提供开发者账号给小二 @新萍
点击开发——测试账号——申请借用如下账号:
c测试账号寒守
c公共测试账号01
手淘扫码登录
使用下述商品:
单品01 https://detail.tmall.com/item.htm?id=696819041658&skuId=4720453156797
单品02 https://detail.tmall.com/item.htm?id=697332691100&skuId=4720453156797
单品03 https://detail.tmall.com/item.htm?id=696516208640&skuId=4720453156797
单品04 https://detail.tmall.com/item.htm?id=697332671463&skuId=4720453156797
单品05 https://detail.tmall.com/item.htm?id=696518840048
拆单图书测试组合品01 https://detail.tmall.com/item.htm?id=696519860562
湛青商家测试1 https://detail.tmall.com/item.htm?id=702624770158
扫描后手淘下单
如果有免密支付,直接免密支付即可,如果没有免密支付,则需要使用『找朋友帮忙付』功能,下单完成后使用对应的单号测试。
③ 使用步骤1的sessionKey 和步骤2的tid用于测试发货和订单接口。
改造答疑钉钉群:25125023835
Q:系统中存在多次拆合单行为,该如何回传拆合单结果?
A:回传发货单创建前的最后一次拆合单结果,(针对ERP/WMS一体:在仓作业前进行回传)
Q:子订单如果仅拆为一个包裹发货,是否需要回传平台该笔子订单已发货完成?
A:需要。
Q:现在已有修改运单号接口 alibaba.ascp.logistics.consign.resend,方案中修改运单号接口alibaba.ascp.logistics.consign.modify的使用场景?
A:成分品修改运单号只能用新的接口alibaba.ascp.logistics.consign.modify,无法使用老接口alibaba.ascp.logistics.consign.resend进行修改。比如:第一次用包裹A发了成分品a1,第二次又用相同的包裹A发了成分品a2,此时想要修改装了成分品a1的包裹运单号,只能通过alibaba.ascp.logistics.consign.modify进行修改。alibaba.ascp.logistics.consign.resend暂时不下线。
Q:发货接口alibaba.ascp.logistics.offline.send的字段consign_type中的赠品是指什么赠品?
A:平台赠品作为一个独立的子订单存在原来就是支持的,这里的赠品是指ERP线下赠品,是这次新开发的功能。
Q:发货接口alibaba.ascp.logistics.offline.send的字段consign_type中的0123发货类型是指什么?
A:0是老链路的发货,1、2、3是这次子订单拆单项目衍生出的新链路,其中2.无包裹推进发货状态是发货状态的订正,因为引入了部分发货,比如商品A第一次用包裹1“部分发货”,商品A第二次用包裹2“部分发货”,这时发现A已经全部发完了,需要将A的状态由“部分发货”->“全部发货”,此时选用2。
另外1覆盖了2,如果使用了部分发、补发还有成分品发货能力的话,1就没办法使用了,建议一起切掉。
Q:发货接口alibaba.ascp.logistics.offline.send的字段gift_item_id、gift_sku_id是传ERP里面的id么?
A:是的。
Q:目前部分发货的场景?
A:标准品by数量的部分发货、组合商品by成分品部分发货。
Q:发货接口alibaba.ascp.logistics.offline.send补发的前提是不是当前订单状态需要全部发货完成?
A:非成分品是该子订单全部发货,组合品是组合品下的成分品发货了,那么该成分品就可以执行补发了。
Q:组合品发货状态需要回传么?
A:组合品发货状态会根据数量进行计算,不需要回告平台组合品发货状态。即sub_tid、is_part_consign不用回传。(只有标准品发货平台会取服务商回传的完全发货和部分发货状态,成分品平台会自己判断是否完全发货)
Q:标准品发货状态是否可以通过数量来告诉平台已经发货完成,而不用is_part_consign?
A:不可以,数量存在超发的情况(比如:买了一个床,发货的时候发了一个床垫,一个床主体,又发了一对床头柜,这时候的数量实际上是超过1了),发货状态需要通过发货接口is_part_consign来回告平台是否完全发货。
因此,在发货接口alibaba.ascp.logistics.offline.send的字段num只做物流详情展示用,不会作为是否全部发货的依据。
Q:是否支持成分品退款?
A:暂不支持,仍只能通过子订单维度退款。
Q:成分品占比支付金额是否在交易单中体现?
A:目前成分品金额不体现。
标准品、成分品关于数量计算的举例如下。
Q: 淘宝sdk 调用的taobao.qimen.event.produce,sdk更新了吗?
A: 预发联调域名联调——http://pre-gw.api.taobao.com/router/resttaobao.qimen.event.produce / taobao.qimen.events.produce接口对应的request如下所示:
QimenEventProduceRequest 、QimenEventsProduceRequest
Q: 子订单已多包裹部分发货的状态下,是还可以无限追加包裹进行部分发货吗?
A: 是的,但是最多10次。
Q:构建拆单和合单情况下的ext参数?
A: 对接订单全链路的event.produce接口时,需要构建拆单和合单情况下的ext参数,我们提供了一个工具类来构建,提高大家的联调效率。
使用方式参考里面的main方法即可。
long_text_2023-03-06-16-15-25.txt
Q:发赠品现在不用传赠品的gift_item_id了么?
A: 是的,不用传gift的itemid了,目前没有消费场景,减少理解成本。
Q:为什么fullinfo接口不返回combine_item_info?
A:fileds需要填orders.combine_item_info
Q:系统有多次拆合单,需要怎么回传?
A:1)erp/wms一体化:在仓作业节点前回传;
2)erp-wms通过奇门对接:发货单创建时回传。
Q:如果订单在其他平台发货,交易接口无法获取已发货的订单信息?
A:二期会增加在其他平台已发货的交易信息。
Q:组合品不支持taobao.logistics.trace.search的物流详情信息查询?
A:可使用taobao.logistics.trace.get查询主单下全部包裹物详情。
更多FAQ请见汇总文档。