订单分批出库接口

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

1.请求参数:

请求URL:

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

公共参数

参数名称 参数类型 是否必须 示例值 参数描述
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