跳转到内容
返回官网

订单分批出库接口

接口描述:1、接口实现的功能和注意事项 订单分批出库接口,用于分批次出库订单上的商品(与之相对的是商品整批出库),每个运单上需要挂要出库的商品(skuUuid维度) 注意事项:https://joyspace.jd.com/h/personal/pages/gWQnacbmwquVOLF7UXTu 2、开放目的或场景: 用于订单商品分批出库 3、接口提供使用的商家类型: 目前仅支持pop商家

一、请求参数

请求URL:

POST https://kf.fw199.com/gateway/jd/order/partial/outship

公共参数

参数名称参数类型是否必须示例值参数描述
appidString合作伙伴AppId
timestampString1657525936当前Unix时间戳,秒
seller_nickString38173182京东的账号,对应蜂巢授权返回jdseller字段
signString

业务参数

参数名类型是否必须示例值说明
request_datajson要判断的订单号等, 出库数据 一次最多传入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);
}

主要请求参数说明

名称类型必须示例值描述
outshipItemcom.jd.seller.order.external.request.outship.BatchStockOutOrder出库项
deliveryTypeNumber5发货方式5:自己联系物流出库 目前仅支持5
orderIdsjava.util.List一组订单,如果只有一个订单表示订单为非合并出库;否则是合并出库,这批订单统一使用相同物流信息出库。目前不支持合单,每组订单仅支持传单个订单。 一次最多传入30个
orderIdNumber285639587916订单id
venderTaskAddressIdNumber91209发货地址id 来源:jingdong.vender.shipaddress.query ship_address_vo下id字段
deliveryNumberDtoListjava.util.List发货配送信息 一次最多输入10个
deliveryNumberDtoItemcom.jd.seller.order.external.request.outship.DeliveryNumberDto发货配送信息项
deliveryNumsjava.util.List订单对应的运单号 同物流公司多运单可叠加到此对象中 分批出库场景由于每个运单需要挂品,deliveryNums内仅支持一个,如果同物流公司多运单需要拆开到多个DeliveryNumberDto中 一次最多输入10个
deliveryNumStringYT285639587916运单号
zsWayBillNumString01234567厂家自送或其他快递(物流单号)
zsDelivererPhoneString17283748578厂家自送(送货人电话)
deliveryIdNumber463物流公司id 来源:jingdong.ldop.alpha.provider.query providerDTO下id字段
zsCompanyPhoneString17283748578厂家自送或其他快递(快递公司电话) 当物流公司为敏感词时 商家需要填写该电话
zsCompanyNameStringxx快递厂家自送或其他快递快递公司名称
zsDelivererNameStringx先生厂家自送(送货人姓名)
deliveryNameString圆通快递物流公司名称 来源:jingdong.ldop.alpha.provider.query providerDTO下providerName字段
partialShipmentGoodsListjava.util.List分批发货商品列表 分批出库必填 一次最多输入50个
skuUuidString1012_F2sB2t1307120972400844800sku Uuid
numNumber1发货数目
skuIdNumber10073001020713sku Id
belongTypeNumber200商家类型 POP200 VC300 目前仅支持200

二、请求示例代码

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);
}

三、返回结果

三(一)、返回成功的情况

{
"code": 0,
"message": "ok",
"data": [
{
"code": 0,
"msg": "",
"objectId": "obj100",
"data": {
"successList": [308906255328],
"failList": []
}
}
]
}

三(一)、返回失败结果示例1

{
"code": 0,
"message": "ok",
"data": [
{
"code": 0,
"msg": "",
"objectId": "obj100",
"data": {
"successList": [],
"failList": [
{
"code": 1000012,
"orderId": 309226020777,
"failReason": "订单309226020777不支持分批出库,原因为单品单件订单,不支持分批出库"
}
]
}
}
]
}

三(二)、返回失败结果示例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为准

其他返回关键字段说明

名称类型示例值描述
successListjava.util.List出库成功列表
orderIdNumber285639587916订单id
failListjava.util.List出库失败列表
failItemcom.jd.seller.order.external.response.outship.OutShipFailDto出库失败项
codeNumber1000012出库失败编码
orderIdNumber285639587916订单id
failReasonStringsku:10073001020713 发货数量超过剩余发货数量,请刷新重试。出库失败原因