订单分批出库接口
接口描述:1、接口实现的功能和注意事项 订单分批出库接口,用于分批次出库订单上的商品(与之相对的是商品整批出库),每个运单上需要挂要出库的商品(skuUuid维度) 注意事项:https://joyspace.jd.com/h/personal/pages/gWQnacbmwquVOLF7UXTu 2、开放目的或场景: 用于订单商品分批出库 3、接口提供使用的商家类型: 目前仅支持pop商家
1.请求参数:
请求URL:
公共参数
参数名称 | 参数类型 | 是否必须 | 示例值 | 参数描述 |
---|---|---|---|---|
appid | String | 是 | 合作伙伴AppId | |
timestamp | String | 是 | 1657525936 | 当前Unix时间戳,秒 |
seller_nick | String | 是 | 38173182 | 京东的账号,对应蜂巢授权返回jdseller字段 |
sign | String | 是 |
业务参数
参数名 | 类型 | 是否必须 | 示例值 | 说明 |
---|---|---|---|---|
request_data | json | 是 | 要判断的订单号等, 出库数据 一次最多传入100个 ,注意是外层集合100个,不是内层的orderList中的订单号100个 |
request_data的示例
@Test
public void JDOrderPartialOutShip() throws Exception {
String reqData ="[{\"objectId\":\"obj100\",\"belongType\":200,\"data\":[{\"orderIds\":[309226020777],\"venderTaskAddressId\":21105493,\"deliveryType\":5,\"deliveryNumberDtoList\":[{\"deliveryId\":463,\"deliveryNums\":[\"YT3752755498963\"],\"deliveryName\":\"圆通快递\",\"partialShipmentGoodsList\":[{\"skuId\":10073001020713,\"num\":100,\"skuUuid\":\"1012_F2sB2t1307120972400844800\"}]}]}]}]";
String sellerNick = Config.JDSellerNick ;
//业务参数
Map<String, String> data = new HashMap<String, String>();
data.put("appid", Config.AppId);
data.put("seller_nick", sellerNick);
Long timestamp = System.currentTimeMillis() / 1000;
data.put("timestamp", timestamp.toString());
data.put("request_data",reqData );
// 参数签名
data.put("sign", Utils.Sign(data, Config.AppSecret));
doHttpRequest(Config.JDOrderPartialOutShipUrl, data);
}
主要请求参数说明
名称 | 类型 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
outshipItem | com.jd.seller.order.external.request.outship.BatchStockOutOrder | 是 | 出库项 | |
deliveryType | Number | 是 | 5 | 发货方式5:自己联系物流出库 目前仅支持5 |
orderIds | java.util.List | 是 | 一组订单,如果只有一个订单表示订单为非合并出库;否则是合并出库,这批订单统一使用相同物流信息出库。目前不支持合单,每组订单仅支持传单个订单。 一次最多传入30个 | |
orderId | Number | 是 | 285639587916 | 订单id |
venderTaskAddressId | Number | 否 | 91209 | 发货地址id 来源:jingdong.vender.shipaddress.query ship_address_vo下id字段 |
deliveryNumberDtoList | java.util.List | 是 | 发货配送信息 一次最多输入10个 | |
deliveryNumberDtoItem | com.jd.seller.order.external.request.outship.DeliveryNumberDto | 是 | 发货配送信息项 | |
deliveryNums | java.util.List | 是 | 订单对应的运单号 同物流公司多运单可叠加到此对象中 分批出库场景由于每个运单需要挂品,deliveryNums内仅支持一个,如果同物流公司多运单需要拆开到多个DeliveryNumberDto中 一次最多输入10个 | |
deliveryNum | String | 是 | YT285639587916 | 运单号 |
zsWayBillNum | String | 否 | 01234567 | 厂家自送或其他快递(物流单号) |
zsDelivererPhone | String | 否 | 17283748578 | 厂家自送(送货人电话) |
deliveryId | Number | 是 | 463 | 物流公司id 来源:jingdong.ldop.alpha.provider.query providerDTO下id字段 |
zsCompanyPhone | String | 否 | 17283748578 | 厂家自送或其他快递(快递公司电话) 当物流公司为敏感词时 商家需要填写该电话 |
zsCompanyName | String | 否 | xx快递 | 厂家自送或其他快递快递公司名称 |
zsDelivererName | String | 否 | x先生 | 厂家自送(送货人姓名) |
deliveryName | String | 是 | 圆通快递 | 物流公司名称 来源:jingdong.ldop.alpha.provider.query providerDTO下providerName字段 |
partialShipmentGoodsList | java.util.List | 否 | 分批发货商品列表 分批出库必填 一次最多输入50个 | |
skuUuid | String | 是 | 1012_F2sB2t1307120972400844800 | sku Uuid |
num | Number | 是 | 1 | 发货数目 |
skuId | Number | 是 | 10073001020713 | sku Id |
belongType | Number | 是 | 200 | 商家类型 POP200 VC300 目前仅支持200 |
2. 请求示例代码(Java)
请求示例代码
@Test
public void JDOrderPartialOutShip() throws Exception {
String reqData = "[{\"objectId\":\"obj100\",\n" + " \"belongType\": 200,\n" + " \"data\": [\n" + " {\n" + " \"orderIds\": [309226020777],\n" + " \"venderTaskAddressId\": 21105493,\n" + " \"deliveryType\": 5,\n" + " \"deliveryNumberDtoList\": [\n" + " {\n" + " \"deliveryId\": 463,\n" + " \"deliveryNums\": [\n" + " \"YT3752755498963\"\n" + " ],\n" + " \"deliveryName\": \"圆通快递\",\n" + " \"partialShipmentGoodsList\": [\n" + " {\n" + " \"skuId\": 10073001020713,\n" + " \"num\": 100,\n" + " \"skuUuid\": \"1012_F2sB2t1307120972400844800\"\n" + " }\n" + " ]\n" + " }\n" + " ]\n" + " }\n" + " ]\n" + "}]";
String sellerNick = Config.JDSellerNick ;
//业务参数
Map<String, String> data = new HashMap<String, String>();
data.put("appid", Config.AppId);
data.put("seller_nick", sellerNick);
Long timestamp = System.currentTimeMillis() / 1000;
data.put("timestamp", timestamp.toString());
data.put("request_data",reqData );
// 参数签名
data.put("sign", Utils.Sign(data, Config.AppSecret));
doHttpRequest(Config.JDOrderPartialOutShipUrl, data);
}
3. 返回结果如下:
3.1 返回成功的情况
{
"code": 0,
"message": "ok",
"data": [
{
"code": 0,
"msg": "",
"objectId": "obj100",
"data": {
"successList": [308906255328],
"failList": []
}
}
]
}
3.1 返回失败结果示例1
{
"code": 0,
"message": "ok",
"data": [
{
"code": 0,
"msg": "",
"objectId": "obj100",
"data": {
"successList": [],
"failList": [
{
"code": 1000012,
"orderId": 309226020777,
"failReason": "订单309226020777不支持分批出库,原因为单品单件订单,不支持分批出库"
}
]
}
}
]
}
3.2 返回失败结果示例2
{
"code": 0,
"message": "ok",
"data": [
{
"code": 0,
"msg": "",
"objectId": "obj100",
"data": {
"successList": [],
"failList": [
{
"code": 400304103,
"orderId": 308906255328,
"failReason": "分批发货运单号【YT3752755498963】已经存在"
}
]
}
}
]
}
说明:
1. 最外层code为0表示系统层面成功,非0为失败,message会包含失败原因。
2. 再是判断内层的code,如果不为0,也是失败,msg会有消息。
3. 判断订单是否可以分批出库,以内层的successList和failList为准
其他返回关键字段说明
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
successList | java.util.List | 出库成功列表 | |
orderId | Number | 285639587916 | 订单id |
failList | java.util.List | 出库失败列表 | |
failItem | com.jd.seller.order.external.response.outship.OutShipFailDto | 出库失败项 | |
code | Number | 1000012 | 出库失败编码 |
orderId | Number | 285639587916 | 订单id |
failReason | String | sku:10073001020713 发货数量超过剩余发货数量,请刷新重试。 | 出库失败原因 |
文档更新时间: 2025-01-22 14:13 作者:admin