WMS_API

WMS_API

開(kāi)通(tōng)WMS企業(yè)域時(shí),系統會分配一個(gè)對(duì)接賬号及密鑰:
uName:接入者唯一标識
uToken:接入者的(de)密鑰,用于簽名
測試環境:https://wmsdev.boudata.com

1、接收同步SKU信息

接口地(dì)址:https://wmsdev.boudata.com/tss/wms/edi/sku

請求方式:POST

請求編碼:UTF-8

請求參數:

名稱說(shuō)明(míng)備注
uName對(duì)接賬号
timestamp當前時(shí)間(jiān)戳格式:2018-12-12 12:12:12
paramsJSON字符串 sku數組的(de)JSON格式數據,例:
[ {"code": "001", "name": "xxx1", "barcode": "001"......}, {"code": "002", "name": "xxx2", "barcode": "002"......}, ...... ]
具體(tǐ)見下(xià)面sku字段說(shuō)明(míng)
uSign簽名MD5(uToken + timestamp),其中uToken為(wèi)秘鑰;timestamp為(wèi)時(shí)間(jiān)戳,有(yǒu)效期3分鐘(zhōng)

sku字段說(shuō)明(míng):

名稱編碼類型必填示例
貨品編碼code字符串要求唯一
貨品名稱name字符串
貨品條碼barcode字符串
貨主owner字符串貨主編碼或名稱
規格(型号)guige字符串600ml/瓶
包裝單位uom字符串
大類category字符串
品牌brand字符串
進價price數字
售價price2數字
保質期shelflife數字
安全庫存safety_qty數字
ABC分類abc字符串
自(zì)定義1udf1字符串
自(zì)定義2udf2字符串
自(zì)定義3udf3字符串
自(zì)定義4udf4字符串
備注remark字符串

示例:

響應結果:

{ "code": 100, "message": "success" }

2、接收入庫通(tōng)知單

接口地(dì)址:https://wmsdev.boudata.com/tss/wms/edi/asn

請求方式:POST

請求編碼:UTF-8

請求參數:

名稱說(shuō)明(míng)備注
uName對(duì)接賬号
timestamp當前時(shí)間(jiān)戳格式:2018-12-12 12:12:12
paramsJSON字符串JSON字符串,具體(tǐ)見下(xià)面params格式說(shuō)明(míng)
uSign簽名MD5(uToken + timestamp),其中uToken為(wèi)秘鑰;timestamp為(wèi)時(shí)間(jiān)戳,有(yǒu)效期3分鐘(zhōng)

params格式說(shuō)明(míng):

名稱編碼類型必填示例
入庫單号code字符串ASN191027001
倉庫warehouse字符串倉庫編碼或名稱,為(wèi)空則默認取第一個(gè)倉庫
貨主owner字符串貨主編碼或名稱
下(xià)單日(rì)期asnday字符串2019-10-27
入庫類型type字符串普通(tōng)入庫
供貨方supplier字符串18767166333
備注remark字符串
自(zì)定義1udf1字符串
自(zì)定義2udf2字符串
自(zì)定義3udf3字符串
自(zì)定義4udf4字符串
入庫明(míng)細itemsjson參考下(xià)面表格出庫詳情

入庫明(míng)細(items)字段說(shuō)明(míng):

名稱編碼類型必填示例
貨品編号code字符串貨品編碼,非條碼
貨品名稱name字符串
入庫數量qty數字要求為(wèi)數字,支持小(xiǎo)數
單價price數字
金(jīn)額money數字
生(shēng)産日(rì)期createdate日(rì)期yyyy-MM-dd
過期日(rì)期expiredate日(rì)期yyyy-MM-dd
貨品狀态invstatus字符串
裝箱量pack_qty字符串
批次1lotatt01字符串
批次2lotatt02字符串
批次3lotatt03字符串
批次4lotatt04字符串

示例:

響應結果:

{ "code": 100, "message": "success" }

3、接收出庫通(tōng)知單

接口地(dì)址:https://wmsdev.boudata.com/tss/wms/edi/order

請求方式:POST

請求編碼:UTF-8

請求參數:

名稱說(shuō)明(míng)備注
uName對(duì)接賬号
timestamp當前時(shí)間(jiān)戳格式:2018-12-12 12:12:12
paramsJSON字符串JSON字符串,具體(tǐ)見下(xià)面params格式說(shuō)明(míng)
uSign簽名MD5(uToken + timestamp),其中uToken為(wèi)秘鑰;timestamp為(wèi)時(shí)間(jiān)戳,有(yǒu)效期3分鐘(zhōng)

params格式說(shuō)明(míng):

名稱編碼類型必填示例
出庫單号code字符串O191027001
倉庫warehouse字符串倉庫編碼或名稱,為(wèi)空則默認取第一個(gè)倉庫
貨主owner字符串貨主編碼或名稱
下(xià)單日(rì)期orderday字符串2019-10-27
出庫類型type字符串銷售出庫
收件(jiàn)人(rén)d_receiver字符串李四
收件(jiàn)人(rén)電(diàn)話(huà)d_mobile字符串18767166333
收件(jiàn)省份d_province字符串江蘇省
收件(jiàn)市(shì)d_city字符串揚州市(shì)
收件(jiàn)區(qū)d_district字符串白鹭區(qū)
收件(jiàn)地(dì)址d_addr字符串xx小(xiǎo)區(qū)x幢
備注remark字符串
自(zì)定義1udf1字符串
自(zì)定義2udf2字符串
自(zì)定義3udf3字符串
自(zì)定義4udf4字符串
出庫明(míng)細itemsjson參考下(xià)面表格出庫詳情

出庫明(míng)細(items)字段說(shuō)明(míng):

名稱編碼類型必填示例
貨品編号code字符串貨品編碼,非條碼
貨品名稱name字符串
出庫數量qty數字要求為(wèi)數字,支持小(xiǎo)數
單價price數字
金(jīn)額money數字
生(shēng)産日(rì)期createdate日(rì)期yyyy-MM-dd
過期日(rì)期expiredate日(rì)期yyyy-MM-dd
貨品狀态invstatus字符串
裝箱量pack_qty字符串
批次1lotatt01字符串
批次2lotatt02字符串
批次3lotatt03字符串
批次4lotatt04字符串

示例:

響應結果:

{ "code": 100, "message": "success" }

4、接收外(wài)部取消出庫指令

接口地(dì)址:https://wmsdev.boudata.com/tss/wms/edi/order/cancel

請求方式:POST

請求編碼:UTF-8

請求參數:

名稱說(shuō)明(míng)備注
uName對(duì)接賬号
timestamp當前時(shí)間(jiān)戳格式:2018-12-12 12:12:12
code出庫單号
reason取消原因
uSign簽名MD5(uToken + timestamp),其中uToken為(wèi)秘鑰;timestamp為(wèi)時(shí)間(jiān)戳,有(yǒu)效期3分鐘(zhōng)

示例:

響應結果:

{ "code": 100, "message": "success" }

5、接收外(wài)部取消入庫指令

接口地(dì)址:https://wmsdev.boudata.com/tss/wms/edi/asn/cancel

請求方式:POST

請求編碼:UTF-8

請求參數:

名稱說(shuō)明(míng)備注
uName對(duì)接賬号
timestamp當前時(shí)間(jiān)戳格式:2018-12-12 12:12:12
code出庫單号
reason取消原因
uSign簽名MD5(uToken + timestamp),其中uToken為(wèi)秘鑰;timestamp為(wèi)時(shí)間(jiān)戳,有(yǒu)效期3分鐘(zhōng)

示例:

響應結果:

{ "code": 100, "message": "success" }

6、反饋作(zuò)業(yè)結果

反饋方式:接收方提供結果接收接口地(dì)址,維護在WMS系統中,WMS推送反饋結果後,接收方通(tōng)過WMS提供的(de)uToken驗簽

請求方式:POST

請求編碼:UTF-8

請求參數:

名稱說(shuō)明(míng)備注
uName對(duì)接賬号
timestamp當前時(shí)間(jiān)戳格式:2018-12-12 12:12:12
uSign簽名MD5(uToken + timestamp),其中uToken為(wèi)秘鑰;timestamp為(wèi)時(shí)間(jiān)戳
method字符串asn.confirm:入庫單反饋;order.confirm:出庫單反饋
paramsJSON字符串JSON字符串,具體(tǐ)見下(xià)面params格式說(shuō)明(míng)

入庫反饋params格式說(shuō)明(míng):

名稱編碼類型必填示例
入庫單号code字符串ASN191027001
入庫日(rì)期indate日(rì)期yyyy-MM-dd HH:mm:ss
貨主owner字符串貨主編碼
倉庫warehouse字符串倉庫編碼
入庫狀态status字符串已完成、關閉
反饋信息msg字符串當入庫失敗時(shí),會将入庫單中的(de)備注返回
入庫明(míng)細itemsjson返回json數組

入庫明(míng)細(items)字段說(shuō)明(míng):

名稱編碼類型必填示例
IDid數字明(míng)細唯一ID
貨物(wù)名稱skuname字符串sku名稱
貨物(wù)編碼skucode字符串sku編碼
貨物(wù)條碼barcode字符串sku條碼
貨物(wù)數量qty數字理(lǐ)論入庫數量
入庫數量qtyActual數字實際入庫數量
生(shēng)産日(rì)期createdate日(rì)期yyyy-MM-dd HH:mm:ss
過期日(rì)期expiredate日(rì)期yyyy-MM-dd HH:mm:ss

出庫反饋params格式說(shuō)明(míng):

名稱編碼類型必填示例
出庫單号code字符串O191027001
出庫日(rì)期outdate日(rì)期yyyy-MM-dd HH:mm:ss
貨主owner字符串貨主編碼
倉庫warehouse字符串倉庫編碼
入庫狀态status字符串已完成、關閉
承運商名稱carrier字符串順豐速運
運單号logisticscodeJSON數組運單号可能會有(yǒu)多個(gè),["ZTO123","ZTO124"]
反饋信息msg字符串當出庫失敗時(shí),會将出庫單中的(de)備注返回

響應結果:當接收方成功接收到信息,需要返回成功響應,code需要為(wèi)100,WMS接收到成功響應後,代表此單反饋完成;若接收方返回的(de)code非100或者無返回信息,則代表接收失敗,WMS會定時(shí)重試,響應示例如下(xià)

成功:{ "code": 100, "message": "success" }
失敗:{ "code": 500, "message": "此處可返回失敗原因" }

Java調用示例:


  /* 參數大緻格式:
  { code: 'xxx', warehouse: '倉庫編碼或名稱', owner: '貨主編碼或名稱', orderday: '2020-02-02', d_receiver, d_mobile, d_addr, udfx, remark,
     items: [
        {code: 'sxx1', qty: 100, lotattx: 'xxx'....},
        {code: 'sxx2', qty: 200, lotattx: 'xxx'....}
     ]
  }
  */
  public void pushOrder() {
    JSONObject ov = new JSONObject();
    ov.put("code", "O191027001");
    ov.put("warehouse", "W002");
    ov.put("owner", "O001");
    ov.put("orderday", "2024-01-01 22:13:46");
    ov.put("d_receiver", "李四");
    ov.put("d_mobile", "18767166333");
    ov.put("d_province", "北京市(shì)");
    ov.put("d_city", "北京市(shì)");
    ov.put("d_district", "東城(chéng)區(qū)");
    ov.put("d_addr", "中關村(cūn)119号");
    ov.put("remark", "請盡快安排出庫");

    JSONArray items = new JSONArray();

    JSONObject item1 = new JSONObject();
    item1.put("code", "S001");
    item1.put("name", "農(nóng)夫山泉(560ml*24)");
    item1.put("qty", 96);
    items.put(item1);

    JSONObject item2 = new JSONObject();
    item2.put("code", "S002");
    item2.put("name", "鴻茅藥酒(360ml*16)");
    item2.put("qty", 32);
    items.put(item2);

    ov.put("items", items);

    PostMethod postMethod = new PostMethod("https://wmsdev.boudata.com/tss/wms/edi/order");
    postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");

    postMethod.setParameter("params", ov.toString());
    postMethod.setParameter("uName", uName);
    String time = DateUtil.formatCare2Second(new Date());
    postMethod.setParameter("timestamp", time);
    postMethod.setParameter("uSign", InfoEncoder.string2MD5(uToken + time));  // 必要工(gōng)具:MD5加密方法,此處為(wèi)自(zì)有(yǒu)方法 InfoEncoder.string2MD5

    HttpClient httpClient = new HttpClient();
    httpClient.executeMethod(postMethod);
    String responseBody = postMethod.getResponseBodyAsString();
    System.out.println(responseBody);
  }

以上(shàng)示例代碼依賴的(de)jar包:
  <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20180130</version>
  </dependency>
  <dependency>
      <groupId>commons-httpclient</groupId>
      <artifactId>commons-httpclient</artifactId>
      <version>3.1</version>
   </dependency>

響應結果:

響應code及含義:
100  成功
101  參數錯(cuò)誤
102  重複請求
503  簽名為(wèi)空
504  時(shí)間(jiān)戳無效
505  驗簽失敗
506  令牌驗證失敗
555  接口內(nèi)部異常