aiM18开发者中心 aiM18开发者中心
文档主页
  • 平台

    • 平台总体概述
    • 前端开发须知
    • 后台开发须知
    • EBI开发须知
    • JSF组件属性表
    • BPM扩展接口
    • 一查到底扩展接口
    • 手机App设置
  • ERP

    • ERP 后端扩展
    • ERP 应用配置
    • ERP 前端扩展
  • 教程

    • 设置Eclipse开发环境
    • 创建App教程
  • 平台相关

    • API授权
    • 通用的数据对象
    • 核心的API
    • EBI相关接口
  • 企业资源规划
  • 人力资本管理
  • 业务流程处理
  • 日程管理
  • 文档管理
  • 教程

    • 通过API与aiM18进行交互
教程
GitHub (opens new window)
文档主页
  • 平台

    • 平台总体概述
    • 前端开发须知
    • 后台开发须知
    • EBI开发须知
    • JSF组件属性表
    • BPM扩展接口
    • 一查到底扩展接口
    • 手机App设置
  • ERP

    • ERP 后端扩展
    • ERP 应用配置
    • ERP 前端扩展
  • 教程

    • 设置Eclipse开发环境
    • 创建App教程
  • 平台相关

    • API授权
    • 通用的数据对象
    • 核心的API
    • EBI相关接口
  • 企业资源规划
  • 人力资本管理
  • 业务流程处理
  • 日程管理
  • 文档管理
  • 教程

    • 通过API与aiM18进行交互
教程
GitHub (opens new window)
  • 通用

    • 访问授权
    • 通用JSON对象
    • 核心服务
    • 商业智能
    • 错误码说明
  • 业务流程管理

    • 业务流程管理
  • 日程管理

    • 日程管理
  • 文档管理

    • 文档管理系统
  • 企业资源规划

    • ERP API授权流程
    • 基础资料
    • 财务
    • 财务EBI
    • 委外代销
    • EBI
    • 仓库管理方案
    • 零售
    • 零售储值
    • 零售和第三方物流
      • 零售 (POS) Web Services
        • 获取 POS 会员记录
        • 获取客户交易历史
        • 获取 POS 产品定价
        • 注册新 POS 会员
        • 获取会员的储值结余
        • 保存储值明细
      • 电子商务和 Magento Web Services
        • 获取电商会员记录
        • 获取 Magento 会员记录
      • 第三方物流 (3PL) Web Services
        • 获取捡货单列表
        • 获取捡货单详情
        • 保存捡货单
        • 获取包裹列表
        • 物流追踪
        • 下载物流标签
    • 生产
    • 贸易和财务
    • 采购
    • 销售
    • 库存
    • 委外
  • 人力资本管理

    • HCM API授权流程
    • 绩效管理
    • 考勤管理
    • 临时工
    • 人事管理
    • 请假管理
    • 医疗索偿
    • 薪资管理
    • 招聘管理
    • 培训&资助
  • Web Services中文
  • 企业资源规划
Multiable
2024-02-23
目录

零售和第三方物流

# 零售 (POS) Web Services

# 获取 POS 会员记录

获取详细信息,包括 POS 会员的客户编号/ID。


HTTP 请求

POST http://[server]/jsf/rfws/erp/poscore/member/getCustomer/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
beId int 必填. 企业法人 ID
code string 会员编号
displayName string 会员显示名称
email string 会员邮箱
mobile string 会员手机
tel string 会员电话

结果 (JSON 数组: "data" )

名字 类型 说明
memCode string 会员编号
memName string 会员显示名称
cusId int 客户ID
cusCode string 客户编号
mobile string 会员手机
tel string 会员电话
email string 会员邮箱

请求示例:

JsonObject data = new JsonObject();
data.addProperty("beId", 203);
data.addProperty("mobile", "98765432");

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/poscore/member/getCustomer/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
  "code": "0",
  "data": [
    {
      "memCode": "KS_M001",
      "memName": "Mr. TM Cheung",
      "cusId": 27394,
      "mobile": "98765432",
      "tel": "32459876",
      "cusCode": "KS_M001",
      "email": "tmchan@mailexpress.com"
    },
    {
      "memCode": "KS_M005",
      "memName": "Mr. Expire Cardo",
      "cusId": 27408,
      "mobile": "98765432",
      "tel": "",
      "cusCode": "KS_M005",
      "email": ""
    }
  ],
  "success": true,
  "message": "Success"
}


# 获取客户交易历史

获取指定日期范围内客户的交易历史记录(来自wholesale、 e-commerce、 magento 和 POS)。


HTTP 请求

POST http://[server]/jsf/rfws/erp/generalCus/getTransaction/


参数

名字 类型 说明
beId int 必填. 企业法人 ID
tranType string 必填. 交易类型: pos / ecom / magento / wholesale
customers JSONArray 客户编号的JSON数组
orders JSONArray 订单编号的JSON数组
dateFrom date 起始日期,格式为 "YYYY-MM-DD"
dateTo date 结束日期,格式为 "YYYY-MM-DD"

参数 (JSON 数组)

名字 类型 说明
code string 必填. 客户编号

orders (JSON 数组)

名字 类型 说明
code string 必填. 订单编号

结果 (JSON 数组: "data")

名字 类型 说明
header JSON Header 信息 JSON 字符串
footers JSONArray Footer 信息 JSON 数组
relations JSONArray 相关发票或送货单 JSON 数组

header (JSON 对象)

名字 类型 说明
code string 交易编号
tDate date 交易日期
cus JSON 客户信息 JSON 字符串
cur JSON 货币信息 JSON 字符串
netAmt decimal 发票净额
invDiscAmt decimal 整张发票的折扣金额

cus (JSON 对象)

名字 类型 说明
id int 客户 ID
code string 客户编号

cur (JSON 对象)

名字 类型 说明
id int 货币 ID
code string 货币编号
desc string 货币代号

footers (JSON 数组)

名字 类型 说明
proId int 产品 ID
proDesc String 产品说明
qty decimal 数量
unit JSON 单位信息 JSON 字符串
discAmt decimal 产品折扣金额
amt decimal 金额
up decimal 单价

unit (JSON 对象)

名字 类型 说明
id int 单位 ID
code string 单位编号

relations (JSON 数组)

名字 类型 说明
code string 编号
module string 模块名称: pos / dn / siso

请求示例:

JsonArray orderJsonArray = new JsonArray();
JsonObject orderJsonObj = new JsonObject();
orderJsonObj.put("code", "00320180611193917507");
orderJsonArray.add(orderJsonObj);

orderJsonObj = new JsonObject();
orderJsonObj.put("code", "00320180611170803142");
orderJsonArray.add(orderJsonObj);

JsonObject data = new JsonObject();
data.addProperty("beId", 203);
data.addProperty("dateFrom", "2018-06-11");
data.addProperty("tranType", "pos");
data.addProperty("orders", orderJsonArray);

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/generalCus/getTransaction/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
  "code": "0",
  "data": [
    {
      "header": {
        "cus": {
          "code": "",
          "id": 0
        },
        "tDate": "2018-06-11",
        "cur": {
          "code": "H",
          "id": 2,
          "desc": "HK$"
        },
        "netAmt": 1550,
        "code": "00320180611170803142",
        "invDiscAmt": 50
      },
      "relations": [],
      "footers": [
        {
          "proDesc": "KC Computer",
          "unit": {
            "code": "",
            "id": 39321
          },
          "proId": 4308,
          "qty": 1,
          "amt": 1600,
          "up": 1600,
          "discAmt": 0
        }
      ]
    },
    {
      "header": {
        "cus": {
          "code": "",
          "id": 0
        },
        "tDate": "2018-06-11",
        "cur": {
          "code": "H",
          "id": 2,
          "desc": "HK$"
        },
        "netAmt": 56,
        "code": "00320180611193917507",
        "invDiscAmt": 20
      },
      "relations": [
        {
          "code": "00320180611193230187",
          "module": "pos"
        }
      ],
      "footers": [
        {
          "proDesc": "雞肶",
          "unit": {
            "code": "",
            "id": 39298
          },
          "proId": 4288,
          "qty": 1,
          "amt": 19,
          "up": 19,
          "discAmt": 0
        },
        {
          "proDesc": "雞肶",
          "unit": {
            "code": "",
            "id": 39298
          },
          "proId": 4288,
          "qty": 1,
          "amt": 19,
          "up": 19,
          "discAmt": 0
        },
        {
          "proDesc": "雞肶",
          "unit": {
            "code": "",
            "id": 39298
          },
          "proId": 4288,
          "qty": 2,
          "amt": 38,
          "up": 19,
          "discAmt": 0
        }
      ]
    }
  ],
  "success": true,
  "message": "Success"
}


# 获取 POS 产品定价

从自动定价/价目表(POS)和产品 FM 中加载价格,获取特定日期的产品售价/折扣。


HTTP 请求

POST http://[server]/jsf/rfws/erp/poscore/product/getProInfoByCus/


参数

名字 类型 说明
beId int 必填. 企业法人 ID
date date 必填. 指定日期,格式为 "YYYY-MM-DD"
customers JSONArray 客户编号 JSON 数组
products JSONArray 产品编号 JSON 数组
shopId int POS 门店 ID

customers (JSON 数组)

名字 类型 说明
code string 必填. 客户编号

products (JSON 数组)

名字 类型 说明
code string 必填. 产品编号

结果 (JSON 数组:"data")

名字 类型 说明
cusCode string 客户编号
pros JSONArray 产品信息 JSON 数组

pros (JSON 数组)

名字 类型 说明
id int 产品 ID
code string 产品编号
desc string 产品说明
unit JSON 单位信息 JSON 字符串
price JSON 价格信息 JSON 字符串
series JSON 系列信息 JSON 字符串
amt decimal 金额
retailType string 零售类型: retail / packPro / service

unit (JSON 对象)

名字 类型 说明
id int 单位 ID
code string 单位编号

price (JSON 对象)

名字 类型 说明
disc decimal 折扣
up int 单价
type string 价格来源: autoPricing / priceList / product

series (JSON 对象)

名字 类型 说明
id int 系列 ID
code string 系列编号
desc string 系列说明

请求示例:

JsonArray cusJsonArray = new JsonArray();
JsonObject cusJsonObj new JsonObject();
cusJsonObj.put("code", "KS_M001");
cusJsonArray.add(cusJsonObj);

JsonArray proJsonArray = new JsonArray();
JsonObject proJsonObj = new JsonObject();
proJsonObj.put("code", "KC_POS_001");
proJsonArray.add(proJsonObj);
proJsonObj = new JsonObject();
proJsonObj.put("code", "KC_PC_001");
proJsonArray.add(proJsonObj);

JsonObject data = new JsonObject();
data.addProperty("beId", 203);
data.addProperty("date", "2018-06-05");
data.addProperty("customers", cusJsonArray);
data.addProperty("products", proJsonArray);

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/poscore/product/getProInfoByCus/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
  "code": "0",
  "data": [
    {
      "pros": [
        {
          "unit": {
            "code": "PCS",
            "id": 3
          },
          "retailType": "retail",
          "code": "KC_PC_001",
          "price": {
            "disc": 23,
            "up": 369,
            "type": "priceList"
          },
          "series": {
            "code": "KC-SES-001",
            "id": 3,
            "desc": "日常用品"
          },
          "id": 4308,
          "desc": "PC (HX84953)"
        },
        {
          "unit": {
            "code": "PCS",
            "id": 3
          },
          "retailType": "retail",
          "code": "KC_POS_001",
          "price": {
            "disc": 10,
            "up": 33,
            "type": "autoPricing"
          },
          "series": {
            "code": "KC-SES-001",
            "id": 3,
            "desc": "日常用品"
          },
          "id": 4288,
          "desc": "POS 雞肶"
        }
      ],
      "cusCode": "KS_M001"
    }
  ],
  "success": true,
  "message": "Success"
}


# 注册新 POS 会员

注册新 POS 会员。


HTTP 请求

POST http://[server]/jsf/rfws/erp/poscore/member/add/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
beId int 必填. 企业法人 ID
memTypeId int 必填. 会员类别 ID
mainCardNo string 主卡编号
cardNameId int 卡名
mobile string 手机
titleCode string 称谓编号: mr / mrs / miss
firstName string 名字
lastName string 姓氏
displayName string 简称
dayOfBirth int 出生日期
monthOfBirth int 出生月份
age int 年龄
idNo string ID 编号
gender string 性别: 男 / 女
shopId int POS 门店 ID

结果

名字 类型 说明
success int true 表示成功; false 表示错误
messageCode string 0001 表示成功; 其他信息编号代表着不同的信息
message string 成功 / 失败原因

请求示例:

JsonObject data = new JsonObject();
data.addProperty("beId", 203);
data.addProperty("lastName", "Chan");
data.addProperty("gender", "male");
data.addProperty("displayName", "Mr. Ben Chan");
data.addProperty("mobile", "23456789");
data.addProperty("titleCode", "mr");
data.addProperty("monthOfBirth", 1);
data.addProperty("firstName", "Ben");
data.addProperty("dayOfBirth", 1);
data.addProperty("cardNameId", 15);
data.addProperty("shopId", 2);
data.addProperty("memTypeId", 10);

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/poscore/member/add/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
    "success": true,
    "messageCode": "0001",
    "message":"Success"
}


# 获取会员的储值结余

获取指定日期会员的储值结余。


HTTP 请求

POST http://[server]/jsf/rfws/erp/storeValue/getSVBalance/


参数

名字 类型 说明
beId int 必填. 企业法人 ID
memId int 必填. 会员 ID
svId int 必填. 储值 ID
chkDate date 截至日期,格式为 "YYYY-MM-DD",默认为今天

结果 (JSON 对象:"data")

名字 类型 说明
balance string 储值结余

请求示例:

JsonObject data = new JsonObject();
data.addProperty("beId", 203);
data.addProperty("memId", 5);
data.addProperty("svId", 28);
data.addProperty("chkDate", "2019-06-28");

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "//jsf/rfws/erp/bonus/getBpBal/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
  "success": true,
  "code": "0",
  "message": "Success",
  "data": {
    "balance": 25
  }
}

# 保存储值明细

保存储值明细。


HTTP 请求

POST http://[server]/jsf/rfws/erp/poscore/storeValue/saveSVLedger/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
beId int 企业法人 ID, 数据列表的默认值。
memId int 会员 ID, 数据列表的默认值。
svId int 储值 ID, 数据列表的默认值。
svfId int 储值券 ID, 数据列表的默认值。
data JSONArray 储值明细数据列表。

数据列表 (JSON 对象: "data")

名字 类型 说明
beId int 企业法人 ID
memId int 会员 ID
svId int 储值 ID
svfId int 储值券 ID
svLedger decimal 必填. 储值明细,不能为0。
tranType String 来源交易类别
tranId int 来源交易 ID
tranCode String 来源交易编号
tranDate date 来源交易日期,格式为 "YYYY-MM-DD"。
expDate date 失效日期,格式为 "YYYY-MM-DD"。
desc String 说明

结果

名字 类型 说明
status boolean true 表示成功;false 表示错误
message string 失败原因

请求示例:

JSONObject data = new JSONObject();

data.put("beId", "298");
data.put("memId", "196");
data.put("svId", "34");
data.put("svfId", "0");

JSONArray dataArray = new JSONArray();
JSONObject obj = new JSONObject();

obj.put("beId", "298");
obj.put("memId", "196");
obj.put("svId", "34");
obj.put("svfId", "0");
obj.put("svLedger", "30297.3600");

obj.put("tranType", "poscoreSVTransfer");
obj.put("tranId", "1");
obj.put("tranDate", "2019-04-22");
obj.put("tranCode", "TEST");
obj.put("expDate", "9999-12-31");
obj.put("desc", "");
dataArray.put(obj);

data.put("data", dataArray);

String path = PRE_URL + "/jsf/rfws/erp/poscore/storeValue/saveSVLedger";
HttpPost post = new HttpPost(path);
post.setEntity(new StringEntity(data.toString()));
post.addHeader("authorization", AUTHORIZATION);
post.addHeader("client_id", clientID);
post.addHeader("Content-Type", "application/json");

HttpResponse res = client.execute(post);

响应示例:

{
    "success": true,
    "message":"ce01_poscore.dataEmpty"
}



# 电子商务和 Magento Web Services

# 获取电商会员记录

获取详细信息,包括电商会员的客户编号/ID。


HTTP 请求

POST http://[server]/jsf/rfws/erp/ecom/member/getCustomer/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
beId int 必填. 企业法人 ID
name string 会员名字
email string 会员邮箱
mobile string 会员手机

结果 (JSON 数组:"data")

名字 类型 说明
memName string 会员名字
cusId int 客户 ID
cusCode string 客户编号
mobile string 会员手机
email string 会员邮箱

请求示例:

JsonObject data = new JsonObject();
data.addProperty("beId", 203);
data.addProperty("name", "Lillie Dach");

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/ecom/member/getCustomer/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
  "code": "0",
  "data": [
    {
      "memName": "Lillie Dach",
      "cusId": 27406,
      "mobile": "",
      "cusCode": "CUS180005",
      "email": "Lillie.Dach@data-generator.com"
    }
  ],
  "success": true,
  "message": "Success"
}


# 获取 Magento 会员记录

获取详细信息,包括Magento会员的客户编号/ID。


HTTP 请求

POST http://[server]/jsf/rfws/eshop/getCustomer/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
beId int 必填. 企业法人 ID
firstName string 会员名字
lastName string 会员姓氏
email string 会员邮箱

结果 (JSON 数组: "data")

名字 类型 说明
memId int 会员 ID
cusId int 客户 ID
cusCode string 客户编号
firstName string 会员名字
lastName string 会员姓氏
email string 会员邮箱

请求示例:

JsonObject data = new JsonObject();
data.addProperty("beId", 203);
data.addProperty("lastName", "Alan");

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/eshop/getCustomer/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
  "code": "0",
  "data": [
    {
      "firstName": "Alan",
      "lastName": "Alan",
      "cusId": 27099,
      "cusCode": "CUS170004",
      "email": "alan.wk.wong@mac.hk",
      "memId": 1
    }
  ],
  "success": true,
  "message": "Success"
}



# 第三方物流 (3PL) Web Services

# 获取捡货单列表

获取特定企业法人的捡货单列表。


HTTP 请求

POST http://[server]/jsf/rfws/erp/lsp/pickinglist/getList/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
beId int 必填. 企业法人 ID
locId int 地点 ID
notYetScannedOnly boolean 如果为true,结果集将只返回至少有一行下款尚未扫描(scanned = 0)的捡货单。

结果 (JSON 数组: "data")

名字 类型 说明
id int 捡货单 ID
code string 捡货单编号
genDate date 捡货单的生成日期
lastScanDate date 捡货单的最后扫描日期
plStatus string 捡货单状态: open / pending / done
scanBy json 用户信息 JSON 字符串
be json 企业法人信息 JSON 字符串

scanBy (JSON 对象)

名字 类型 说明
id int 用户 ID
code string 用户编号
desc string 用户说明
avatar string 用户照片的URL

be (JSON 对象)

名字 类型 说明
id int 企业法人 ID
code string 企业法人编号
desc string 企业法人说明

请求示例:

JsonObject data = new JsonObject();
data.addProperty("beId", 173);

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/lsp/pickinglist/getList/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
    "data": [
        {
            "code": "PL20170065",
            "genDate": "2017-11-09 00:00:00",
            "lastScanDate": "1900-01-01 00:00:00",
            "scanBy": {
                  "code": "",
                  "id": 0,
                  "desc": "",
              	  "avatar": ""
            },
            "id": 51,
            "plStatus": "open",
            "be": {
                  "code": "KC_TEST_PICKING_LIST",
                  "id": 216,
                  "desc": "Test Picking List Company"
              }
        },
        {
            "code": "PL20170057",
            "genDate": "2017-11-09 00:00:00",
            "lastScanDate": "1900-01-01 00:00:00",
            "scanBy": {
                  "code": "",
                  "id": 0,
                  "desc": "",
              	  "avatar": ""
            },
            "id": 49,
            "plStatus": "open"",
            "be": {
                  "code": "KC_TEST_PICKING_LIST",
                  "id": 216,
                  "desc": "Test Picking List Company"
              }
        },
       {
            "code": "PL20170039",
            "genDate": "2017-10-13 00:00:00",
            "lastScanDate": "1900-01-01 00:00:00",
            "plStatus": "open",
            "scanBy": 0,
            "id": 33",
            "be": {
                  "code": "KC_TEST_PICKING_LIST",
                  "id": 216,
                  "desc": "Test Picking List Company"
              }
        }
    ],
    "success": true,
    "messageCode": "0001",
    "message": "Success"
}


# 获取捡货单详情

获取特定企业法人的特定捡货单。


HTTP 请求

POST http://[server]/jsf/rfws/erp/lsp/pickinglist/get/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
id int 必填. 捡货单 ID
beId int 必填. 企业法人 ID

结果 (JSON 对象: "data")

名字 类型 说明
id int 捡货单 ID
code string 捡货单编号
plStatus string 捡货单状态: open / pending / done
lsp json 物流服务供应商信息 JSON 字符串
products json 产品信息 JSON 数组
parcels json 包裹信息 JSON 数组

lsp (JSON 对象)

名字 类型 说明
id int 物流服务供应商 ID
code string 物流服务供应商编号
desc string 物流服务供应商说明

products (JSON 数组)

名字 类型 说明
id int 产品 ID
code string 产品编号
desc string 产品说明
finalQty decimal 要交付的产品数量
scanned decimal 产品的扫描数量
adjQty decimal 产品的调整数量
photos JSON 产品 FM 中选中了 打印 属性的照片列表
toBePicked decimal 待捡货产品数量
useLotno boolean 说明产品是否使用批号
baseUnit JSON 基本单位信息 JSON 字符串
lotNos JSON 批号信息 JSON 数组

baseUnit (JSON 对象)

名字 类型 说明
id int 单位 ID
code string 单位编号

lotNos (JSON 数组)

名字 类型 说明
id int 批号 ID
code string 批号编号
scanned decimal 批号的扫描数量
qty decimal 批号的最终数量

parcels (JSON 数组)

名字 类型 说明
widthCm decimal 包裹的宽
heightCm decimal 包裹的高
lengthCm decimal 包裹的长
ttlVolumeCBM decimal 总体积
ttlWeightKG decimal 总重量
ttlQty decimal 总数量
parcel JSON 包裹信息 JSON 字符串

parcel (JSON 对象)

名字 类型 说明
id int 包裹 ID
code string 包裹编号
desc string 包裹说明

请求示例:

JsonObject data = new JsonObject();
data.addProperty("beId", 173);
data.addProperty("id", 33);

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/lsp/pickinglist/get/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
    "data": {
        "code": "PL20180115",
        "lsp": {
            "code": "4PX_H3",
            "id": 18,
            "desc": "4PX Hong Kong"
        },
        "plStatus": "open",
        "id": 89,
        "parcels": [
            {
                "parcel": {
                    "code": "4PX_H3_P",
                    "id": 14,
                    "desc": "4PX Parcel "
                },
                "widthCm": 2,
                "heightCm": 3,
                "ttlVolumeCBM": 0.000006,
                "lengthCm": 1,
                "ttlWeightKG": 1,
                "ttlQty": 1
            }
        ],
        "products": [
            {
                "baseUnit": {
                    "code": "PCS",
                    "id": 3
                },
                "code": "IPAD 5",
                "finalQty": 10,
                "scanned": 0,
                "adjQty": 10,
                "id": 3982,
                "useLotno" : true,
                "lotNos": [
                    {
                        "code": "OS018015300000000000",
                        "scanned": 1,
                        "qty": 4,
                        "id": 1542
                    }
                ],
                "photos": [],
                "toBePicked": 10,
                "desc": "iPad 5"
            }
        ]
    },
    "success": true,
    "messageCode": "0001",
    "message": "Success"
}


# 保存捡货单

为特定的企业法人保存捡货单


HTTP 请求

POST http://[server]/jsf/rfws/erp/lsp/pickinglist/save/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

如果不提供包裹或产品,下款将保持不变。

名字 类型 说明
beId int 必填. 企业法人 ID
id int 必填. 捡货单 ID
action string pending / done / clear
lspId int 物流服务供应商 ID
parcels JSON 包裹信息 JSON 数组 (可选)
products JSON 产品信息 JSON 数组 (可选)

parcels (JSON 数组)

名字 类型 说明
widthCm decimal 必填. 包裹的宽
heightCm decimal 必填. 包裹的高
lengthCm decimal 必填. 包裹的长
ttlVolumeCBM decimal 必填. 总体积
ttlWeightKG decimal 必填. 总重量
parcel JSON 必填. 包裹信息 JSON 字符串

parcel (JSON 对象)

名字 类型 说明
id int 必填. 包裹 ID

products (JSON 数组)

名字 类型 说明
id int 必填. 产品 ID
finalQty decimal 必填. 要交付的产品数量
scanned decimal 必填. 产品的扫描数量
baseUnit JSON 必填. 基本单位信息 JSON 字符串
lotNos JSON 必填. 批号信息 JSON 数组

baseUnit (JSON 对象)

名字 类型 说明
id int 必填. 单位 ID

lotNos (JSON 数组)

名字 类型 说明
id int 必填. 批号 ID
code string 批号编号
scanned decimal 必填. 批号的扫描数量
qty decimal 必填. 批号的最终数量

结果

名字 类型 说明
success int true 表示成功; false 表示错误
messageCode string 0001 表示成功; 其他信息编号代表着不同的信息
message string 成功 / 失败原因

请求示例:

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/lsp/pickinglist/save/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
    "success": true,
    "messageCode": "0001",
    "message":"Success"
}


# 获取包裹列表

获取特定企业法人的包裹列表。


HTTP 请求

POST http://[server]/jsf/rfws/erp/lsp/serviceProvider/getParcelList/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
beId int 必填. 企业法人 ID
lspId int 物流服务供应商 ID

结果 (JSON 数组:"data")

名字 类型 说明
id int 包裹 ID
code string 包裹编号
desc string 包裹说明
length decimal 包裹的长
width decimal 包裹的宽
height decimal 包裹的高
lsp json 物流服务供应商信息 JSON 字符串

lsp (JSON 对象)

名字 类型 说明
id int 物流服务供应商 ID
code String 物流服务供应商编号
desc String 物流服务供应商说明

请求示例:

JsonObject data = new JsonObject();
data.addProperty("lspId", 17);

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/lsp/serviceProvider/getParcelList/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();

响应示例:

{
    "data": [
        {
            "code": "BIG",
            "length": 30,
            "width": 40,
            "lsp": {
                "code": "SF",
                "id": 5,
                "desc": "S.F. Express"
            },
            "id": 1,
            "desc": "Big size",
            "height": 20
        },
        {
            "code": "KC_ZTO_OBJ",
            "length": 1,
            "width": 2,
            "lsp": {
                "code": "ZTO",
                "id": 7,
                "desc": "中通"
            },
            "id": 3,
            "desc": "中通貨",
            "height": 3
        }
    ],
    "success": true,
    "messageCode": "0001",
    "message": "Success"
}


# 物流追踪

获取特定企业法人送货单的物流追踪信息。


HTTP 请求

POST http://[server]/jsf/rfws/erp/lsp/service/getTrackStatus/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
beId int 必填. 企业法人 ID
dnCode string aiM18中的送货单编号
trackCode string 物流商提供的追踪编号

只需要提供 dnCode 或 trackCode。


结果 (JSON 对象:"data")

名字 类型 说明
dnCode string 送货单编号
trackCode string 物流追踪编号
state string 状态
tracks json 物流追踪信息 JSON 数组

tracks (JSON 数组)

名字 类型 说明
date date 日期
status String 状态
remarks String 备注

请求示例:

JsonObject data = new JsonObject();
data.addProperty("dnCode", "DN201806300125");

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/lsp/serviceProvider/getTrackStatus/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();


# 下载物流标签

下载特定企业法人送货单的物流标签。


HTTP 请求

POST http://[server]/jsf/rfws/erp/lsp/service/printLabel/


参数

所有参数都封装在一个 JSON 对象中。请阅读请求示例了解详情。

名字 类型 说明
beId int 必填. 企业法人 ID
dnCode string aiM18中的送货单编号
trackCode string 物流商提供的追踪编号

只需要提供 dnCode 或 trackCode。


结果

HTML response code = 200,将下载物流标签的 pdf 或 html 文件。


请求示例:

JsonObject data = new JsonObject();
data.addProperty("dnCode", "DN201806300125");

RequestBody requestBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), data.toString());

String url = "http://" + server + "/jsf/rfws/erp/lsp/serviceProvider/printLabel/";

Request request = new Request.Builder()
  .url(url)
  .addHeader("client_id", MyValue.clientID)
  .addHeader("authorization", "Bearer " + access_token)
  .addHeader("cache-control", "no-cache")
  .post(requestBody)
  .build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();


Last Updated: 2025/05/29, 08:51:05
零售储值
生产

← 零售储值 生产→

Theme by Vdoing | Copyright © 1990-2025 Multiable | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式