Procházet zdrojové kódy

企德宝API接口文档抓取(https://open.7debao.com/7?page_id=100)

skyline před 4 týdny
rodič
revize
2b8eb31289

+ 137 - 0
qdb-sdk/00-概述与接入指南.md

@@ -0,0 +1,137 @@
+# 概述与接入指南
+
+## 简介
+
+企得宝ERP开放API,供外部系统对接企得宝ERP系统使用。所有API基于HTTP POST协议,采用JSON格式进行数据交互。
+
+---
+
+## 请求地址
+
+| 环境 | URL |
+|------|-----|
+| **正式环境** | `https://api.7debao.com/router/api` |
+| **测试环境** | `https://apitest.7debao.com/router/api` |
+
+- 请求方式:**POST**
+- Content-Type:**application/json**
+
+---
+
+## 签名算法
+
+为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。
+
+支持的签名算法为:**MD5(sign_method=md5)**
+
+### 签名步骤
+
+1. 将所有**公共参数**按照参数名的首字母先后顺序排列
+2. 把排序后的结果按照参数名+参数值的方式拼接
+3. 拼装好的字符串首尾拼接 `client_secret` 进行 md5(小写32位)
+4. secret 的值是开放平台后台分配的 `client_secret`
+
+### 签名示例
+
+假设 `client_secret` 为 `secret`,公共参数如下:
+
+```
+client_id=tfs20000
+format=json
+method=foonsu.erp.warehouse.list
+partner_id=foonsu-sdk-java-httpdns-20191113
+timestamp=1599095989
+v=1.0
+```
+
+排序后拼装(首尾加secret):
+
+```
+secretclient_idtfs20000formatjsonmethodfoonsu.erp.warehouse.listpartner_idfoonsu-sdk-java-httpdns-20191113timestamp1599095989v1.0secret
+```
+
+对该字符串进行MD5加密(小写32位)得到签名。
+
+### URL拼接示例
+
+```
+https://api.7debao.com/router/api?timestamp=1624870813&client_id=tfs20000&format=json&method=foonsu.erp.warehouse.list&partner_id=foonsu-sdk-java-httpdns-20191113&v=1.0&sign=43a35d0d3dc9a37e8095082101dda33
+```
+
+请求时,URL拼接公共参数,body传入业务参数(JSON格式)。
+
+---
+
+## 公共请求参数
+
+所有API调用都必须携带以下公共参数:
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| client_id | 是 | String | 分配给应用的 clientId |
+| method | 是 | String | 接口名称 |
+| partner_id | 是 | String | 默认 `foonsu-sdk-java-httpdns-20191113` |
+| timestamp | 是 | String | 时间戳 |
+| v | 是 | String | 版本,默认 `1.0` |
+| format | 是 | String | 默认 `json` |
+| sign | 是 | String | 签名(由签名算法生成) |
+
+---
+
+## 基本返回参数
+
+所有API统一返回以下格式:
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| errorCode | String | 错误编码 |
+| msg | String | 提示信息 |
+| data | Object | 成功时返回数据,失败为 null |
+| date | Date | 响应时间 |
+| version | Integer | 版本信息 |
+| success | Boolean | 成功为 true,失败为 false |
+
+### 返回示例(成功)
+
+```json
+{
+    "errorCode": null,
+    "msg": "操作成功",
+    "data": { ... },
+    "date": null,
+    "version": null,
+    "success": true
+}
+```
+
+### 返回示例(失败)
+
+```json
+{
+    "errorCode": "19140001",
+    "msg": "必填参数未填",
+    "data": null,
+    "date": null,
+    "version": null,
+    "success": false
+}
+```
+
+---
+
+## 接口列表总览
+
+| 分类 | API数量 | 文档 |
+|------|---------|------|
+| 基础资料 | 9 | [01-基础资料.md](./01-基础资料.md) |
+| 商品管理 | 6 | [02-商品管理.md](./02-商品管理.md) |
+| 平台商品管理(个性) | 19 | [03-平台商品管理(个性).md](./03-平台商品管理(个性).md) |
+| 订单管理 | 16 | [04-订单管理.md](./04-订单管理.md) |
+| 采购管理 | 5 | [05-采购管理.md](./05-采购管理.md) |
+| 调拨管理 | 2 | [06-调拨管理.md](./06-调拨管理.md) |
+| 其他出入库管理 | 3 | [07-其他出入库管理.md](./07-其他出入库管理.md) |
+| 盘点管理 | 2 | [08-盘点管理.md](./08-盘点管理.md) |
+| 库存管理 | 2 | [09-库存管理.md](./09-库存管理.md) |
+| 消息推送 | 8 | [10-消息推送.md](./10-消息推送.md) |
+| 路由管理 | 1 | [11-路由管理.md](./11-路由管理.md) |
+| **合计** | **73** | - |

+ 375 - 0
qdb-sdk/01-基础资料.md

@@ -0,0 +1,375 @@
+# 基础资料
+
+基础资料分类提供店铺、仓库、物流公司等基础数据的管理接口,共 **9** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [店铺查询](#1-店铺查询) | `foonsu.erp.shop.shopInfo` | 查询店铺信息 |
+| 2 | [仓库查询](#2-仓库查询) | `foonsu.erp.warehouse.list` | 查询仓库信息 |
+| 3 | [系统物流公司查询](#3-系统物流公司查询) | `foonsu.erp.logisticsCompany.list` | 查询系统物流公司 |
+| 4 | [企业物流公司查询](#4-企业物流公司查询) | `foonsu.erp.logisticsCompany.enterpriseList` | 查询企业物流公司 |
+| 5 | [批量新增/修改仓库](#5-批量新增修改仓库) | `foonsu.erp.warehouse.save` | 批量新增或修改仓库 |
+| 6 | [批量新增/修改店铺](#6-批量新增修改店铺) | `foonsu.erp.shop.save` | 批量新增或修改店铺 |
+| 7 | [查询店铺授权URL](#7-查询店铺授权url) | `foonsu.erp.shop.oauthURL` | 获取店铺平台授权地址 |
+| 8 | [查询店铺授权进度状态](#8-查询店铺授权进度状态) | `foonsu.erp.shop.asyncProcess` | 查询店铺授权进度 |
+| 9 | [店铺非标准授权](#9-店铺非标准授权) | `foonsu.erp.shop.nonStandardAuth` | 店铺非标准授权 |
+
+---
+
+## 1. 店铺查询
+
+**Method:** `foonsu.erp.shop.shopInfo`
+
+**请求方式:** POST
+
+**简要描述:** 查询店铺信息
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopId | 否 | Long | 店铺ID |
+| outShopIds | 否 | List[Long] | 外部店铺ID集合 |
+| pageIndex | 否 | String | 默认 1 |
+| pageSize | 否 | String | 默认 20,最大不超过 50 |
+| modifyDateStart | 否 | Date | 修改时间开始 |
+| modifyDateEnd | 否 | Date | 修改时间结束 |
+| platformShopId | 否 | String | 平台店铺ID |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| total | Integer | 记录总数 |
+| data | List[Object] | 集合参数响应 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| shopId | Long | 店铺id |
+| outShopId | String | 外部店铺id |
+| shopName | String | 店铺名称 |
+| shopPlatformCode | String | 店铺平台编号 |
+| nickName | String | 卖家账号 |
+| accessTokenExpiredTime | Date | 授权到期时间 |
+| createDate | Date | 创建时间 |
+| status | String | 状态:0-停用 1-启用 |
+| modifyDate | Date | 修改时间 |
+| shopCode | String | 店铺编码 |
+| platformShopId | String | 平台店铺ID |
+| authorizationFlag | String | 1-已授权,否则未授权 |
+| serviceExpirationTime | Date | 服务到期时间 |
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": "操作成功",
+    "data": {
+        "total": 1,
+        "data": [{
+            "shopId": 9900100000000136,
+            "shopName": "淘宝-小小白5101",
+            "shopPlatformCode": "01",
+            "accessTokenExpiredTime": "2020-10-15 06:00:00",
+            "nickName": "小小白5101",
+            "status": "1",
+            "createDate": "2019-06-28 15:39:30",
+            "modifyDate": "2020-05-19 12:28:01",
+            "shopCode": "SP1B15805655077888",
+            "serviceExpirationTime": "2028-10-15 00:00:00"
+        }]
+    },
+    "date": null,
+    "version": null,
+    "success": true
+}
+```
+
+---
+
+## 2. 仓库查询
+
+**Method:** `foonsu.erp.warehouse.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询仓库信息
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 页码,默认 1 |
+| pageSize | 否 | Integer | 每页大小,默认 20,最大不超过 50 |
+| modifyDateStart | 否 | Date | 开始时间 |
+| modifyDateEnd | 否 | Date | 结束时间 |
+| timeStatus | 否 | String | 搜索时间类型:0-创建时间;1-修改时间;默认 1 |
+| status | 否 | String | 仓库启用状态:0-禁用;1-启用 |
+| warehouseName | 否 | String | 仓库名称 |
+| warehouseId | 否 | Long | 仓库ID |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| warehouseId | Integer | 仓库Id |
+| warehouseName | String | 仓库名称 |
+| warehouseAddress | String | 仓库地址 |
+| remark | String | 备注 |
+| createDate | Date | 创建时间 |
+| modifyDate | Date | 修改时间 |
+| linkman | String | 联系人 |
+| phone | String | 联系电话 |
+| mobile | String | 联系手机 |
+| warehouseTypeId | Long | 仓库类型 |
+| district | String | 地区信息 |
+| status | String | 启用状态 |
+
+---
+
+## 3. 系统物流公司查询
+
+**Method:** `foonsu.erp.logisticsCompany.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询系统支持的物流公司列表
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 第几页,从1开始 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| logisticsCompanyCode | String | 快递公司编码,ERP唯一 |
+| logisticsCompanyNameZh | String | 快递公司名称 |
+
+---
+
+## 4. 企业物流公司查询
+
+**Method:** `foonsu.erp.logisticsCompany.enterpriseList`
+
+**请求方式:** POST
+
+**简要描述:** 查询企业自定义的物流公司列表
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 第几页,从1开始 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| logisticsCompanyId | 否 | Long | 企业物流公司ID |
+| status | 否 | String | 状态:1-启用;0-停用 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| logisticsCompanyId | Long | 快递公司ID |
+| systemLogisticsCompanyCode | String | 快递公司编码,ERP唯一 |
+| logisticsCompanyName | String | 快递公司名称 |
+| status | String | 状态:1-启用;0-停用 |
+
+---
+
+## 5. 批量新增/修改仓库
+
+**Method:** `foonsu.erp.warehouse.save`
+
+**请求方式:** POST
+
+**简要描述:** 批量新增或修改仓库,根据 `outWarehouseId` 判断新增或更新
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| data | 是 | List[Object] | 仓库数据集合 |
+
+### data(List[Object]) 参数说明
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| outWarehouseId | 是 | Long | 外部仓库ID(唯一) |
+| warehouseName | 是 | String | 仓库名称(唯一) |
+| warehouseCode | 否 | String | 仓库编码 |
+| warehouseTypeName | 否 | String | 仓库类型名称(系统存在自动匹配,不存在自动创建。不传值会新建"默认类型"的仓库类型并匹配上) |
+| linkman | 是 | String | 联系人 |
+| phone | 是 | String | 手机 |
+| mobile | 是 | String | 电话 |
+| province | 是 | String | 省份 |
+| city | 是 | String | 城市 |
+| district | 是 | String | 市/区 |
+| address | 是 | String | 地址 |
+| isPeriod | 否 | String | 是否关账仓库:0-否,1-是,默认 0 |
+| isNegativeInventory | 否 | String | 是否允许负库存:0-否,1-是,默认 0 |
+| remark | 否 | String | 备注 |
+| distributorsId | 否 | Long | 经销商ID |
+
+### data[Object]返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| totalCount | Integer | 总的条数 |
+| updateCount | Integer | 更新的条数 |
+| insertCount | Integer | 插入的条数 |
+| failCount | Integer | 失败的条数 |
+| errorMsgList | List[Object] | 错误数据的具体报错信息,有则返回,无则为null |
+
+### errorMsgList 返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| failOutId | String | 失败的外部仓库ID |
+| errorMsg | String | 失败信息 |
+| errorCode | String | 失败编码 |
+
+---
+
+## 6. 批量新增/修改店铺
+
+**Method:** `foonsu.erp.shop.save`
+
+**请求方式:** POST
+
+**简要描述:** 批量新增或修改店铺,根据 `outShopId` 判断新增或更新
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| data | 是 | List[Object] | 店铺数据集合 |
+
+### data(List[Object]) 参数说明
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| outShopId | 是 | String | 外部店铺ID(唯一) |
+| shopName | 是 | String | 店铺名称 |
+| linkman | 否 | String | 联系人 |
+| phone | 否 | String | 手机 |
+| mobile | 否 | String | 电话 |
+| province | 否 | String | 省份 |
+| city | 否 | String | 城市 |
+| district | 否 | String | 市/区 |
+| address | 否 | String | 地址 |
+| customCode | 否 | String | 店铺编码 |
+| deduction | 否 | BigDecimal | 扣点,百分之一传 0.01 |
+| stockPushAddress | 否 | String | 库存修改推送地址 |
+| deliveryPushAddress | 否 | String | 发货信息推送地址 |
+| routePushAddress | 否 | String | 路由信息推送地址 |
+| presellType | 否 | String | 预售类型:0-不下载;1-下载,默认 0 |
+| providerIds | 否 | String | 供应商Id集合 |
+| remark | 否 | String | 备注 |
+| autoMatchWhileDownload | 否 | String | 自动匹配商品:0-否;1-是,默认 0 |
+
+### data[Object]返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| totalCount | Integer | 总的条数 |
+| updateCount | Integer | 更新的条数 |
+| insertCount | Integer | 插入的条数 |
+| failCount | Integer | 失败的条数 |
+| errorMsgList | List[Object] | 错误数据的具体报错信息,有则返回,无则为null |
+| successShopInfoList | List[Object] | 成功的数据集合,有则返回,无则为null |
+
+### errorMsgList 返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| failOutId | String | 失败的外部店铺ID |
+| errorMsg | String | 错误信息 |
+| errorCode | String | 错误编码 |
+
+### successShopInfoList 返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| shopId | Long | 企得宝的店铺ID |
+| shopName | String | 店铺名称 |
+| customCode | String | 店铺编码 |
+| state | String | 新增还是修改:added新增,modified修改 |
+
+---
+
+## 7. 查询店铺授权URL
+
+**Method:** `foonsu.erp.shop.oauthURL`
+
+**请求方式:** POST
+
+**简要描述:** 获取店铺在平台的授权URL,用于店铺授权流程
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopPlatformCode | 是 | String | 店铺平台编码,例如抖店:43 |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| request | String | 请求ID,用于查询授权进度 |
+| authorizationCodeURL | String | 平台授权地址 |
+
+---
+
+## 8. 查询店铺授权进度状态
+
+**Method:** `foonsu.erp.shop.asyncProcess`
+
+**请求方式:** POST
+
+**简要描述:** 查询店铺授权进度状态
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| requestId | 是 | String | 请求ID,由查询店铺授权URL接口返回 |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| status | String | 0-等待授权;1-成功;-1-失败 |
+| shopId | String | 平台店铺ID |
+| shopName | String | 平台店铺名称 |
+| msg | String | 描述信息 |
+
+---
+
+## 9. 店铺非标准授权
+
+**Method:** `foonsu.erp.shop.nonStandardAuth`
+
+**请求方式:** POST
+
+**简要描述:** 店铺非标准授权
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| platformShopId | 是 | String | 平台店铺ID(平台提供) |
+| shopPlatformCode | 是 | String | 店铺平台编码,例如视频号:B5 |
+
+### 返回参数
+
+data 为 String 类型,成功返回 `"授权成功"`,失败为 null。

+ 332 - 0
qdb-sdk/02-商品管理.md

@@ -0,0 +1,332 @@
+# 商品管理
+
+商品管理分类提供商品上传、查询、单位管理等接口,共 **6** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [商品上传](#1-商品上传) | `foonsu.erp.goods.save` | 上传至系统商品及店铺商品 |
+| 2 | [系统商品上传](#2-系统商品上传) | `foonsu.erp.sysGoods.save` | 上传至系统商品 |
+| 3 | [商品单位查询](#3-商品单位查询) | `foonsu.erp.sysGoods.listUnit` | 查询商品单位 |
+| 4 | [系统商品查询](#4-系统商品查询) | `foonsu.erp.sysGoods.list` | 查询系统商品信息 |
+| 5 | [批量新增店铺商品](#5-批量新增店铺商品) | `foonsu.erp.platForm.goods.batchSave` | 批量新增店铺商品 |
+| 6 | [批量修改店铺商品](#6-批量修改店铺商品) | `foonsu.erp.platForm.goods.batchUpdate` | 批量修改店铺商品 |
+
+---
+
+## 1. 商品上传
+
+**Method:** `foonsu.erp.goods.save`
+
+**请求方式:** POST
+
+**简要描述:** 商品上传(上传至系统商品以及店铺商品,即【商品信息】、【店铺商品设置】页面)
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopId | 是 | Long | 当前商品所属店铺ID |
+| goodsOuterId | 是 | String | 当前一个字段会当作系统商品编码以及平台商品sku编码 |
+| platformGoodsCode | 否 | String | 当前一个字段会当作平台商品ID、平台商品skuId;如不填写则默认取 goodsOuterId |
+| goodsName | 是 | String | 商品名称 |
+| picPath | 否 | String | 图片路径 |
+| price | 否 | String | 价格 |
+| properties | 否 | String | 销售属性(即规格名称) |
+| unit | 否 | String | 单位 |
+| brand | 否 | String | 商品品牌 |
+| categoryCode | 否 | String | 商品类别代码 |
+| categoryName | 否 | String | 商品类别名称(当 categoryCode 不为空且不存在已有类别时,此值默认取 categoryCode) |
+| shortName | 否 | String | 商品简称 |
+| goodsWeight | 否 | String | 商品重量 |
+| barCodeList | 否 | List[String] | 商品条码 |
+| providerName | 否 | String | 供应商名称 |
+| batchType | 否 | String | 商品类型:0-无;1-批次库存;2-唯一码;4-序列号 |
+
+---
+
+## 2. 系统商品上传
+
+**Method:** `foonsu.erp.sysGoods.save`
+
+**请求方式:** POST
+
+**简要描述:** 系统商品上传(上传至系统商品,即【商品信息】页面),单次最大100条
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| data | 是 | List[Object] | 系统商品新增请求集合,最大100 |
+
+### data 内参数说明
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| outGoodsId | 是 | Long | 商品外部ID |
+| goodsCode | 是 | String | 商品编码 |
+| goodsName | 是 | String | 商品名称 |
+| unit | 否 | String | 商品单位 |
+| brand | 否 | String | 商品品牌 |
+| shortGoodsName | 否 | String | 商品短标题 |
+| specs | 否 | String | 商品规格 |
+| salePrice | 否 | BigDecimal | 商品价格 |
+| goodsWeight | 否 | BigDecimal | 商品重量 |
+| barCodeList | 否 | List[String] | 商品条码 |
+| ext1 ~ ext6 | 否 | String | 自定义字段1~6 |
+| picPath / picPath2 ~ picPath5 | 否 | String | 图片路径1~5 |
+| providerCode | 否 | String | 供应商编码 |
+| batchType | 否 | String | 商品类型:0-无;1-批次库存;2-唯一码;4-序列号 |
+| checkDistributor | 否 | String | 出入库是否校验经销商:0-不校验;1-校验 |
+| length | 否 | Integer | 商品长度,单位:mm |
+| width | 否 | Integer | 商品宽度,单位:mm |
+| height | 否 | Integer | 商品高度,单位:mm |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| totalCount | Integer | 上传总数 |
+| updateCount | Integer | 更新数量 |
+| insertCount | Integer | 新增数量 |
+| failCount | Integer | 失败数量 |
+| errorMsgList | List[Object] | 错误信息集合 |
+
+### errorMsgList 返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| failOutId | String | 失败的外部唯一ID |
+| errorMsg | String | 失败信息 |
+
+### 请求示例
+
+```json
+{
+  "data": [{
+    "brand": "华为",
+    "goodsCode": "huaweicode",
+    "goodsName": "华为手机",
+    "outGoodsId": 111,
+    "salePrice": 111.11,
+    "shortGoodsName": "短标题",
+    "specs": "蓝色",
+    "unit": "部"
+  }]
+}
+```
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "totalCount": 3,
+    "updateCount": 1,
+    "insertCount": 0,
+    "failCount": 2,
+    "errorMsgList": [
+      {"failOutId": "32", "errorMsg": "当前商品编码已存在"},
+      {"failOutId": "33", "errorMsg": "当前商品编码已存在"}
+    ]
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```
+
+---
+
+## 3. 商品单位查询
+
+**Method:** `foonsu.erp.sysGoods.listUnit`
+
+**请求方式:** POST
+
+**简要描述:** 查询商品单位列表
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| total | Integer | 记录总数 |
+| data | List[Object] | 集合参数响应 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| id | Long | 单位ID |
+| unit | String | 单位名称 |
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "total": 3,
+    "data": [
+      {"id": 7861034, "unit": "件"},
+      {"id": 7861033, "unit": "箱"},
+      {"id": 7861032, "unit": "个"}
+    ]
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```
+
+---
+
+## 4. 系统商品查询
+
+**Method:** `foonsu.erp.sysGoods.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询系统商品信息(即【商品信息】、【组合商品】页面数据)
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| goodsId | 否 | Long | 商品ID |
+| goodsCode | 否 | String | 商品编码 |
+| status | 否 | Integer | 商品状态:0-停用;1-启用 |
+| combination | 否 | Integer | 组合商品:0-非组合;1-组合 |
+| articleNo | 否 | String | 商品货号 |
+| modifyDateStart | 否 | Date | 修改时间开始 |
+| modifyDateEnd | 否 | Date | 修改时间结束 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| goodsId | Long | 商品ID |
+| goodsCode | String | 商品编码 |
+| goodsName | String | 商品名称 |
+| shortGoodsName | String | 商品简称 |
+| specs | String | 规格名称 |
+| skUnit | String | 单位名称 |
+| goodsKindCode | String | 商品类别编码 |
+| goodsKindName | String | 商品类别名称 |
+| brand | String | 品牌名称 |
+| taxType | Integer | 税率类型:0-含税;1-免税;2-未税 |
+| stockTaxRate | BigDecimal | 税率 |
+| batchType | String | 商品类型:0-普通商品;1-批次;2-唯一码 |
+| isExpried | String | 含有效期:0-不含;1-含 |
+| validDays | Integer | 保质期天数 |
+| barCodeList | List[String] | 商品条码 |
+| providerId | Long | 供应商ID |
+| providerName | String | 供应商名称 |
+| salePrice | BigDecimal | 标准售价 |
+| picPath | String | 图片路径 |
+| combination | String | 组合商品:0-非组合;1-组合 |
+| articleNo | String | 商品货号 |
+| weight | BigDecimal | 重量 |
+| length | Integer | 长(单位mm) |
+| width | Integer | 宽(单位mm) |
+| height | Integer | 高(单位mm) |
+| bulkUnit | String | 体积单位 |
+| costPrice | BigDecimal | 采购指导价 |
+| ext1 ~ ext6 | String | 自定义字段1~6 |
+| modifyDate | Date | 修改日期 |
+| combinationGoodsList | List[Object] | 组合商品明细集合 |
+
+---
+
+## 5. 批量新增店铺商品
+
+**Method:** `foonsu.erp.platForm.goods.batchSave`
+
+**请求方式:** POST
+
+**简要描述:** 批量新增店铺商品
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| data | 是 | Object | 请求数据 |
+| data.shopId | 是 | Number | 店铺id |
+| data.goodsOuterId | 是 | String | 平台商品sku编码(需与匹配的系统商品编码一致) |
+| data.platformGoodsCode | 是 | String | 平台商品ID |
+| data.platformGoodsName | 否 | String | 平台商品名称 |
+| data.platformGoodsSpecs | 否 | String | 平台规格名称 |
+| data.platformSalePrice | 否 | Number | 平台商品售价 |
+
+### 成功响应示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "totalCount": 1,
+    "successCount": 1,
+    "failCount": 0,
+    "errorMsgList": []
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```
+
+---
+
+## 6. 批量修改店铺商品
+
+**Method:** `foonsu.erp.platForm.goods.batchUpdate`
+
+**请求方式:** POST
+
+**简要描述:** 批量更新店铺商品
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| data | 是 | Arrays | 请求数据 |
+| data.shopId | 是 | Number | 店铺id |
+| data.goodsOuterId | 是 | String | 平台商品sku编码 |
+| data.platformGoodsCode | 是 | String | 平台商品ID |
+| data.platformGoodsName | 否 | String | 平台商品名称 |
+| data.platformGoodsSpecs | 否 | String | 平台规格名称 |
+| data.platformSalePrice | 否 | Number | 平台商品售价 |
+
+### 成功响应示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "totalCount": 1,
+    "successCount": 1,
+    "failCount": 0,
+    "errorMsgList": []
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```

+ 498 - 0
qdb-sdk/03-平台商品管理(个性).md

@@ -0,0 +1,498 @@
+# 平台商品管理(个性)
+
+> **注意:** 以下所有接口仅对特殊客户开放,其他客户无权限调用。
+
+平台商品管理(个性)分类提供平台商品发布、查询、素材管理等接口,共 **19** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [查询平台运费模板(个性)](#1-查询平台运费模板个性) | `foonsu.erp.platForm.goods.queryFreightTemplateList` | 查询运费模板 |
+| 2 | [查询平台品牌(个性)](#2-查询平台品牌个性) | `foonsu.erp.platForm.goods.queryPlatformBrandList` | 查询平台品牌 |
+| 3 | [查询平台商品发布规则(个性)](#3-查询平台商品发布规则个性) | `foonsu.erp.platForm.goods.queryPlatformGoodsCreateRule` | 查询发布规则 |
+| 4 | [查询平台商品属性(个性)](#4-查询平台商品属性个性) | `foonsu.erp.platForm.goods.queryPlatformCateProperty` | 查询商品属性 |
+| 5 | [发布平台商品(个性)](#5-发布平台商品个性) | `foonsu.erp.platForm.goods.createPlatformGoods` | 发布商品到平台 |
+| 6 | [修改平台商品(个性)](#6-修改平台商品个性) | `foonsu.erp.platForm.goods.updatePlatformGoods` | 修改平台商品 |
+| 7 | [查询平台商品类目(个性)](#7-查询平台商品类目个性) | `foonsu.erp.platForm.goods.queryPlatformCategoryList` | 查询商品类目 |
+| 8 | [搜索素材中心文件夹(个性)](#8-搜索素材中心文件夹个性) | `foonsu.erp.platForm.goods.materialSearchFolder` | 搜索素材文件夹 |
+| 9 | [批量上传图片到素材中心(个性)](#9-批量上传图片到素材中心个性) | `foonsu.erp.platForm.goods.materialBatchUploadImageSync` | 批量上传图片 |
+| 10 | [根据素材id查素材详情(个性)](#10-根据素材id查素材详情个性) | `foonsu.erp.platForm.goods.materialQueryMaterialDetail` | 查询素材详情 |
+| 11 | [查询平台商品列表(个性)](#11-查询平台商品列表个性) | `foonsu.erp.platForm.goods.queryProductInfoList` | 查询平台商品列表 |
+| 12 | [查询平台商品详情(个性)](#12-查询平台商品详情个性) | `foonsu.erp.platForm.goods.queryProductInfoDetail` | 查询平台商品详情 |
+| 13 | [查询质检仓配置(个性)](#13-查询质检仓配置个性) | `foonsu.erp.platForm.goods.queryQicInspectConfig` | 查询质检仓配置 |
+| 14 | [查询送检配置模板信息(个性)](#14-查询送检配置模板信息个性) | `foonsu.erp.platForm.goods.queryQicInspectSubmitConfig` | 查询送检配置 |
+| 15 | [打印质检码(个性)](#15-打印质检码个性) | `foonsu.erp.platForm.goods.queryQicInspectCodePrintInfo` | 打印质检码 |
+| 16 | [绑定送检信息(个性)](#16-绑定送检信息个性) | `foonsu.erp.platForm.goods.submitQicInspect` | 绑定送检信息 |
+| 17 | [查询平台商家结算账单(个性)](#17-查询平台商家结算账单个性) | `foonsu.erp.platForm.finance.getSettleBillDetail` | 查询结算账单 |
+| 18 | [获取平台订单物流信息(个性)](#18-获取平台订单物流信息个性) | `foonsu.erp.platForm.logistics.queryLogisticsDetail` | 获取平台物流信息 |
+| 19 | [获取平台联盟订单明细(个性)](#19-获取平台联盟订单明细个性) | `foonsu.erp.platForm.goods.getAllianceOrderList` | 获取联盟订单明细 |
+
+---
+
+## 通用说明
+
+### 个性接口通用请求结构
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopId | 是 | Long | 店铺id |
+| requestId | 是 | string | 请求id(随机数) |
+| requestParam | 是 | string | 平台接口的请求参数的Json String |
+
+### 个性接口通用返回结构
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| data | object | 返回数据 |
+| requestId | String | 请求id |
+| success | boolean | 是否成功 |
+| errorMsg | String | 错误信息 |
+
+---
+
+## 1. 查询平台运费模板(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryFreightTemplateList`
+
+**支持平台:** 抖店、快手、淘宝
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "1122211111111455",
+  "requestParam": "{\"page\":0,\"pageSize\":100}"
+}
+```
+
+**返回参数:**
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| data | object | 返回数据 |
+| requestId | String | 请求id |
+| platformGoodsInfo | String | 平台返回信息 |
+| success | boolean | 是否成功 |
+| errorMsg | String | 错误信息 |
+
+---
+
+## 2. 查询平台品牌(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryPlatformBrandList`
+
+**支持平台:** 抖店
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "1122211111111455",
+  "requestParam": "{\"category_id\":20178}"
+}
+```
+
+**平台文档:** [抖店品牌查询](https://op.jinritemai.com/docs/api-docs/14/1267)
+
+---
+
+## 3. 查询平台商品发布规则(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryPlatformGoodsCreateRule`
+
+**支持平台:** 抖店
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "1122211111111455",
+  "requestParam": "{\"category_id\":20178}"
+}
+```
+
+**平台文档:** [抖店发布规则](https://op.jinritemai.com/docs/api-docs/14/1614)
+
+---
+
+## 4. 查询平台商品属性(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryPlatformCateProperty`
+
+**支持平台:** 抖店
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "1122211111111455",
+  "requestParam": "{\"category_leaf_id\":20178}"
+}
+```
+
+**平台文档:** [抖店商品属性](https://op.jinritemai.com/docs/api-docs/14/1373)
+
+---
+
+## 5. 发布平台商品(个性)
+
+**Method:** `foonsu.erp.platForm.goods.createPlatformGoods`
+
+**支持平台:** 抖店
+
+**请求示例:**
+```json
+{
+  "requestId": "12312313111",
+  "requestParam": "{...平台商品信息...}",
+  "shopId": 100030000000003021
+}
+```
+
+requestParam 中包含商品名称、规格、价格、图片、运费模板、品牌等完整商品信息。
+
+**平台文档:** [抖店发布商品](https://op.jinritemai.com/docs/api-docs/14/249)
+
+---
+
+## 6. 修改平台商品(个性)
+
+**Method:** `foonsu.erp.platForm.goods.updatePlatformGoods`
+
+**支持平台:** 抖店
+
+**返回参数:**
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| data | object | 返回数据 |
+| requestId | String | 请求id |
+| platformGoodsInfo | String | 平台返回信息 |
+| success | boolean | 是否成功 |
+| errorMsg | String | 错误信息 |
+
+**平台文档:** [抖店修改商品](https://op.jinritemai.com/docs/api-docs/14/250)
+
+---
+
+## 7. 查询平台商品类目(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryPlatformCategoryList`
+
+**支持平台:** 抖店、淘宝、快手
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "1122211111111455",
+  "requestParam": "{\"cid\":0}"
+}
+```
+
+**平台文档:**
+- 抖店:https://op.jinritemai.com/docs/api-docs/13/1820
+- 淘宝:https://open.taobao.com/api.htm?docId=122&docType=2
+- 快手:https://open.kwaixiaodian.com/zone/new/docs/api?name=open.item.category.optional.get&version=1
+
+---
+
+## 8. 搜索素材中心文件夹(个性)
+
+**Method:** `foonsu.erp.platForm.goods.materialSearchFolder`
+
+**支持平台:** 抖店
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "987654321",
+  "requestParam": "{\"orderBy\":1,\"pageNum\":1,\"pageSize\":40,\"name\":\"商品\"}"
+}
+```
+
+**平台文档:** [抖店素材中心](https://op.jinritemai.com/docs/api-docs/69/1149)
+
+---
+
+## 9. 批量上传图片到素材中心(个性)
+
+**Method:** `foonsu.erp.platForm.goods.materialBatchUploadImageSync`
+
+**支持平台:** 抖店
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "987654321",
+  "requestParam": "{\"materials\":[{\"request_id\":\"123456789\",\"folder_id\":\"102\",\"name\":\"测试上传\",\"url\":\"https://example.com/image.jpg\",\"material_type\":\"photo\"}]}"
+}
+```
+
+**平台文档:** [抖店批量上传图片](https://op.jinritemai.com/docs/api-docs/69/1616)
+
+---
+
+## 10. 根据素材id查素材详情(个性)
+
+**Method:** `foonsu.erp.platForm.goods.materialQueryMaterialDetail`
+
+**支持平台:** 抖店
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "987654321",
+  "requestParam": "{\"material_id\":\"72937055346656709750897\"}"
+}
+```
+
+**平台文档:** [抖店素材详情](https://op.jinritemai.com/docs/api-docs/69/1145)
+
+---
+
+## 11. 查询平台商品列表(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryProductInfoList`
+
+**支持平台:** 抖店、快手、淘宝
+
+**请求示例:**
+```json
+{
+  "shopId": "100030000000003037",
+  "requestId": "123456",
+  "requestParam": "{\"page_no\":1,\"page_size\":50,\"order_by\":\"list_time:modified\",\"start_modified\":\"2024-03-01 00:00:00\",\"end_modified\":\"2024-03-21 00:00:00\"}"
+}
+```
+
+**平台文档:**
+- 抖店:https://op.jinritemai.com/docs/api-docs/14/633
+- 快手:https://open.kwaixiaodian.com/zone/docs/api?name=open.item.list.get&version=1
+- 淘宝:https://open.taobao.com/api.htm?docId=162&docType=2
+
+---
+
+## 12. 查询平台商品详情(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryProductInfoDetail`
+
+**支持平台:** 抖店、快手、淘宝
+
+**请求示例:**
+```json
+{
+  "shopId": "100030000000003037",
+  "requestId": "123456",
+  "requestParam": "{\"num_iids\":\"584747567232,748902807330\"}"
+}
+```
+
+**平台文档:**
+- 抖店:https://op.jinritemai.com/docs/api-docs/14/56
+- 快手:https://open.kwaixiaodian.com/zone/docs/api?name=open.item.get&version=1
+- 淘宝:https://open.taobao.com/api.htm?docId=24626&docType=2
+
+---
+
+## 13. 查询质检仓配置(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryQicInspectConfig`
+
+**支持平台:** 微信视频号
+
+**返回参数:**
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| data | object | 返回数据 |
+| requestId | String | 请求id |
+| platformResponseInfo | String | 平台返回信息 |
+| success | boolean | 是否成功 |
+| errorMsg | String | 错误信息 |
+
+**平台文档:** [微信视频号质检仓配置](https://developers.weixin.qq.com/doc/channels/API/qic/getinspectconfig.html)
+
+---
+
+## 14. 查询送检配置模板信息(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryQicInspectSubmitConfig`
+
+**支持平台:** 微信视频号
+
+**平台文档:** [微信视频号送检配置](https://developers.weixin.qq.com/doc/channels/API/qic/getinspectsubmitconfig.html)
+
+---
+
+## 15. 打印质检码(个性)
+
+**Method:** `foonsu.erp.platForm.goods.queryQicInspectCodePrintInfo`
+
+**支持平台:** 微信视频号
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "1122211111111455",
+  "requestParam": "{\"order_id\":\"37423523451235145\"}"
+}
+```
+
+**平台文档:** [微信视频号打印质检码](https://developers.weixin.qq.com/doc/channels/API/qic/printinspectcode.html)
+
+---
+
+## 16. 绑定送检信息(个性)
+
+**Method:** `foonsu.erp.platForm.goods.submitQicInspect`
+
+**支持平台:** 微信视频号
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003021,
+  "requestId": "1122211111111455",
+  "requestParam": "{\"order_id\":\"37423523451235145\",\"inspect_info\":{\"delivery_id\":\"SF\",\"backup_delivery_id\":\"STO\",\"delivery_product_id\":2,\"backup_delivery_product_id\":1,\"express_insure\":true,\"express_insure_amount\":999,\"delivery_insure_id\":\"INSURE\",\"backup_express_insure\":false,\"express_merge\":true,\"refund_intercept\":0,\"inspect_org_id\":\"001\",\"inspect_org_name\":\"中质\",\"warehouse_name\":\"xxx\",\"warehouse_addr\":\"kklmp\"}}"
+}
+```
+
+**平台文档:** [微信视频号绑定送检](https://developers.weixin.qq.com/doc/channels/API/qic/submitinspectinfo.html)
+
+---
+
+## 17. 查询平台商家结算账单(个性)
+
+**Method:** `foonsu.erp.platForm.finance.getSettleBillDetail`
+
+**支持平台:** 抖店
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003037,
+  "requestId": "123456",
+  "requestParam": "{\"startIndex\":\"123445\",\"payType\":\"1\",\"productId\":\"123456\",\"size\":100,\"orderId\":\"4778345176320227200\",\"timeType\":\"0\",\"startTime\":\"2024-04-08 00:00:00\",\"endTime\":\"2024-04-10 00:00:00\",\"flowType\":\"1\"}"
+}
+```
+
+**返回参数:**
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| data | object | 返回数据 |
+| requestId | String | 请求id |
+| financeInfo | String | 平台返回信息 |
+| success | boolean | 是否成功 |
+| errorMsg | String | 错误信息 |
+
+**平台文档:** [抖店结算账单](https://op.jinritemai.com/docs/api-docs/46/1753)
+
+---
+
+## 18. 获取平台订单物流信息(个性)
+
+**Method:** `foonsu.erp.platForm.logistics.queryLogisticsDetail`
+
+**支持平台:** 淘宝、快手、抖音、微信视频号
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopId | 是 | Long | 店铺id |
+| requestId | 是 | string | 请求id |
+| tradeNo | 是 | string | 平台交易编号 |
+
+**请求示例:**
+```json
+{
+  "shopId": 100030000000003037,
+  "requestId": "123456",
+  "tradeNo": "2423234234234"
+}
+```
+
+### PlatformLogisticsResp 返回对象
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| logisticsInfo | LogisticsInfo | 返回对象数据 |
+| requestId | String | 请求id |
+| success | boolean | 是否成功 |
+| errorMsg | String | 错误信息 |
+
+### LogisticsInfo 对象
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| logisticsOrderInfos | List | LogisticsOrderInfo 对象列表 |
+| tradeNo | String | 平台交易编号 |
+| postAmount | String | 运费 |
+| sendTime | Date | 发货时间 |
+| platformCode | String | 企得宝电商平台编号 |
+
+### LogisticsOrderInfo 对象
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| logisticsNo | String | 运单号 |
+| logisticsCode | String | 物流公司编号 |
+| logisticsCompany | String | 物流公司 |
+| sendTime | Date | 发货时间 |
+| logisticsStatus | String | 物流状态 |
+
+**平台文档:**
+- 淘宝:[查询订单详情](https://open.taobao.com/api.htm?docId=54&docType=2) / [查询物流订单](https://open.taobao.com/api.htm?docId=234&docType=2)
+- 抖店:[查询订单详情](https://op.jinritemai.com/docs/api-docs/15/1343) / [查询运单轨迹](https://op.jinritemai.com/docs/api-docs/1262/1851)
+- 快手:[查询订单详情](https://open.kwaixiaodian.com/zone/new/docs/api?name=open.order.detail)
+- 微信视频号:[查询订单详情](https://developers.weixin.qq.com/doc/channels/API/order/get.html)
+
+---
+
+## 19. 获取平台联盟订单明细(个性)
+
+**Method:** `foonsu.erp.platForm.goods.getAllianceOrderList`
+
+**支持平台:** 抖店
+
+**请求示例:**
+```json
+{
+  "shopId": "100030000000003408",
+  "requestId": "0.987654321",
+  "requestParam": "{\"order_ids\":[6932777433868735826]}"
+}
+```
+
+**返回参数:**
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| data | object | 返回数据 |
+| requestId | String | 请求id |
+| platformReturnResult | String | 平台返回信息 |
+| success | boolean | 是否成功 |
+| errorMsg | String | 错误信息 |
+
+**返回示例:**
+```json
+{
+  "errorCode": null,
+  "msg": null,
+  "data": {
+    "requestId": "0.987654321",
+    "platformReturnResult": "{\"code\":\"10000\",\"data\":{\"code\":\"100000\",\"codeMsg\":\"success\",\"datas\":[{\"allianceBizType\":\"COMMON\",\"authorAccount\":\"于谦铺子\",\"commissionRate\":2000,\"estimatedComission\":122400,\"orderId\":\"6932777433868735826\",\"orderStatus\":\"退款\",\"phaseId\":1,\"productId\":\"3697602450732220716\",\"realComission\":0,\"shopId\":\"110269615\",\"shortId\":\"22534514211\",\"totalPayAmount\":680000}]},\"logId\":\"2024081215062509CC7595066156CB4B70\",\"msg\":\"success\",\"subCode\":\"\",\"subMsg\":\"\",\"success\":true}",
+    "success": true,
+    "errorMsg": null
+  },
+  "date": "2024-08-12 15:06:30",
+  "version": null,
+  "success": true
+}
+```
+
+**平台文档:** [抖店联盟订单](https://op.jinritemai.com/docs/api-docs/46/469)

+ 871 - 0
qdb-sdk/04-订单管理.md

@@ -0,0 +1,871 @@
+# 订单管理
+
+订单管理分类提供订单上传、查询、发货、售后等接口,共 **16** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [订单上传](#1-订单上传) | `foonsu.erp.orders.save` | 上传订单 |
+| 2 | [售后订单上传](#2-售后订单上传) | `foonsu.erp.returnOrders.save` | 上传售后订单 |
+| 3 | [订单查询](#3-订单查询) | `foonsu.erp.orders.list` | 查询订单 |
+| 4 | [发货单查询](#4-发货单查询) | `foonsu.erp.deliveryOrders.list` | 查询发货单 |
+| 5 | [退款单查询](#5-退款单查询) | `foonsu.erp.refundOrders.list` | 查询退款单 |
+| 6 | [退货单查询](#6-退货单查询) | `foonsu.erp.returnOrders.list` | 查询退货单 |
+| 7 | [换货单查询](#7-换货单查询) | `foonsu.erp.changeOrders.list` | 查询换货单 |
+| 8 | [卖家备注修改](#8-卖家备注修改) | `foonsu.erp.deliveryOrders.updateSellerMessage` | 修改卖家备注 |
+| 9 | [包裹称重](#9-包裹称重) | `foonsu.erp.deliveryOrders.packageWeigh` | 包裹称重 |
+| 10 | [修改订单旗帜](#10-修改订单旗帜) | `foonsu.erp.orders.updateOrderBanner` | 修改订单旗帜 |
+| 11 | [抖店bic订单发货](#11-抖店bic订单发货) | `foonsu.erp.deliveryOrders.consignBicOrder` | 抖店BIC订单发货 |
+| 12 | [批量下载bic订单码](#12-批量下载bic订单码) | `foonsu.erp.deliveryOrders.batchDownloadBicCode` | 批量下载BIC码 |
+| 13 | [商品标签查询](#13-商品标签查询) | `foonsu.erp.goodsLabel.list` | 查询商品标签 |
+| 14 | [企得宝订单信息查询](#14-企得宝订单信息查询) | `foonsu.erp.orders.listOrderStatus` | 查询企得宝订单状态 |
+| 15 | [包裹称重(支持上传图片)](#15-包裹称重支持上传图片) | `foonsu.erp.deliveryOrders.packageWeighNew` | 包裹称重并上传图片 |
+| 16 | [DMS订单回告](#16-dms订单回告) | `foonsu.erp.dms.callback` | DMS订单回告 |
+
+---
+
+## 1. 订单上传
+
+**Method:** `foonsu.erp.orders.save`
+
+**请求方式:** POST
+
+**简要描述:** 订单上传(仅支持自建商城平台店铺)。订单上传成功后,需要店铺开启自动下单或者订单审核页面手动拉单进系统。
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopId | 是 | Long | 店铺ID(ERP内店铺主键ID,可通过店铺查询接口获得) |
+| tradeNo | 是 | String | 平台交易单号 |
+| platformTradeStatus | 是 | String | 平台订单交易状态:01-待付款,02-待发货,03-已发货待签收,10-已签收,11-交易关闭 |
+| platformRefundStatus | 是 | String | 订单退款状态:0-未退款,1-已退款,2-部分退款,4-退款中 |
+| orderTypeCode | 是 | String | 订单的交易类型:1-代收货款,2-在线交易,3-线下交易 |
+| postAmount | 是 | BigDecimal | 运费 |
+| payAmount | 是 | BigDecimal | 付款金额 单位元 |
+| receiverProvince | 是 | String | 收件人省份 |
+| receiverCity | 是 | String | 收件人城市 |
+| receiverDistrict | 是 | String | 收件人区/县级市 |
+| receiverAddress | 是 | String | 收件人地址 |
+| receiverName | 是 | String | 收件人名称 |
+| receiverMobile | 是 | String | 收件人手机(与电话二选一入参即可) |
+| receiverPhone | 是 | String | 收件人电话(与手机二选一入参即可) |
+| sendProvince | 否 | String | 发件人省份 |
+| sendCity | 否 | String | 发件人城市 |
+| sendDistrict | 否 | String | 发件人区/县级市 |
+| sendAddress | 否 | String | 发件人地址 |
+| sendName | 否 | String | 发件人名称 |
+| sendMobile | 否 | String | 发件人手机(与电话二选一入参即可) |
+| sendPhone | 否 | String | 发件人电话(与手机二选一入参即可) |
+| sendZipCode | 否 | String | 发件人邮编 |
+| ordersGoods | 是 | List[Object] | 订单商品集合 |
+| buyerMessage | 否 | String | 买家留言 |
+| buyerNick | 否 | String | 买家昵称 |
+| sellerMessage | 否 | String | 卖家备注 |
+| vipNo | 否 | String | 会员编码 |
+| vipName | 否 | String | 会员名称 |
+| advertId | 否 | String | 广告ID |
+| ordersInvoice | 否 | List[Object] | 订单发票集合 |
+| ordersPay | 否 | List[Object] | 订单支付信息集合 |
+| presellType | 否 | String | 预售类型:0-非预售;1-预售 |
+| presellDeliveryTime | 否 | Date | 指定(预售)发货时间 yyyy-MM-dd HH:mm:ss |
+| payStatus | 否 | String | 预售付款状态:1-已付款;2-未付尾款;3-未付款(预售单必填) |
+| payDate | 否 | String | 订单付款时间 |
+| warehouseName | 否 | String | 仓库名称,精确匹配 |
+| markLevel | 否 | String | 订单旗帜:0-空;1-红旗;2-黄旗;3-绿旗;4-蓝旗;5-紫旗 |
+| paymentOfCharge | 否 | String | 运费付款方式:1-寄付;2-收方付;3-第三方付;4-寄付现结 |
+| monthlyAccount | 否 | String | 月结卡号 |
+| carrierProduct | 否 | String | 业务类型 |
+| logisticsCode | 否 | String | 物流公司编码 |
+| logisticsNo | 否 | String | 物流单号(isYddPush为1时必传) |
+| isYddPush | 否 | String | 是否自流转(自流转默认在企得宝下载订单后执行审核、发货):1-是;0或null-否 |
+| sftcOrderId | 否 | String | 顺丰同城订单ID(顺丰同城的物流单号必传) |
+| extOrderNo | 否 | String | 分销外部单号 |
+| orderMark | 否 | String | 订单标识,默认0:0-非拆非合;1-合;2-拆 |
+| platformLogisticsCompanyCode | 否 | String | 平台物流公司编码(匹配物流使用) |
+
+### ordersGoods(订单商品集合)请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| platformGoodsCode | 是 | String | 当前一个字段会当作平台商品SkuId以及平台商品Id |
+| platformGoodsName | 是 | String | 平台商品标题 |
+| goodsPlatformCode | 否 | String | 平台商品Sku编码 |
+| quantity | 是 | BigDecimal | 商品数量 |
+| price | 是 | BigDecimal | 商品单价 单位元 |
+| realPrice | 是 | BigDecimal | 实际售价 单位元 |
+| picUrl | 否 | String | 图片地址链接 |
+| shortGoodsName | 否 | String | 替换的商品简称 |
+| unit | 否 | String | 单位 |
+| weight | 否 | BigDecimal | 商品重量 |
+| platformGoodsSpecs | 否 | String | 平台商品规格名称 |
+| platformRefundStatus | 否 | String | 订单商品退款状态:0-未退款,1-已退款,4-退款中 |
+| extOrderNo | 否 | String | 分销外部单号 |
+| payAmount | 否 | BigDecimal | 商品支付金额 |
+| orderAmount | 否 | BigDecimal | 商品实际金额 |
+| postAmount | 否 | BigDecimal | 运费 |
+| useGovSubsidy | 否 | String | 是否使用国补:0-否;1-是 |
+| externalDetailNo | 否 | String | 外部系统单据明细行号 |
+| wpService | 否 | String | 微派服务:0-否;1-是 |
+
+### ordersPay(订单支付信息)请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| payTypeCode | 是 | String | 付款方式编号:1-支付宝;2-微信;3-线下支付;4-在线支付;5-代收货款 |
+| payTime | 否 | Date | 支付时间 |
+| payNo | 否 | String | 交易号 |
+| accountNo | 否 | String | 账号 |
+| remark | 否 | String | 备注 |
+
+### ordersInvoice(订单发票)请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| invoiceKind | 是 | String | 发票种类:1-增值专用发票;2-增值普通发票 |
+| invoiceTitleKind | 是 | String | 发票抬头种类:1-个人;2-企业 |
+| invoiceTitleType | 是 | String | 发票类型:1-纸质发票;2-电子发票 |
+| invoiceTitle | 否 | String | 发票抬头 |
+| invoiceContent | 否 | String | 发票内容 |
+| taxpayerNumber | 否 | String | 纳税人识别号 |
+| depositBank | 否 | String | 开户行 |
+| invoiceAmount | 否 | BigDecimal | 发票金额 单位元 |
+| phone | 否 | String | 电话 |
+| address | 否 | String | 地址 |
+| remark | 否 | String | 备注 |
+| unvoiceAmount | 否 | BigDecimal | 未开票金额 单位元 |
+| accounts | 否 | String | 帐号 |
+
+---
+
+## 2. 售后订单上传
+
+**Method:** `foonsu.erp.returnOrders.save`
+
+**请求方式:** POST
+
+**简要描述:** 售后订单上传(仅支持自建商城平台店铺)。订单上传成功后,需要开启自动下载退换货单或者退货单页面手动拉单进系统。
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopId | 是 | Long | 店铺ID(ERP内店铺主键ID,可通过店铺查询接口获得) |
+| afterSaleOrderId | 是 | String | 平台售后单号 |
+| tradeNo | 是 | String | 平台交易单号(用于匹配ERP内的发货单) |
+| returnKind | 是 | String | 售后类别:1-退货;2-换货;3-退款 |
+| returnTypeName | 否 | String | 退换货类型 |
+| platformExchangeStatus | 否 | String | (售后类型为换货时必填)换货单平台状态:1-换货待处理;2-待买家退货;3-已退货待收货;4-换货关闭;5-换货成功;6-待买家修改;8-待发出换货商品;10-待买家收货 |
+| platformReturnStatus | 否 | String | (售后类型为退货/退款时必填)退货/退款单平台状态:1-(退款:待同意退款/退货:待同意退货),2-待买家退货,3-待卖家确认收货,4-卖家拒绝退款,5-退款关闭,6-退款成功 |
+| returnInPlatformSkuId | 否 | String | 退回商品平台skuId(逐渐弃用) |
+| changeOutPlatformSkuId | 否 | String | (售后类型为换货时必填)换出商品平台skuId(逐渐弃用) |
+| returnInPlatformSkuIdArr | 是 | List[String] | 退回商品平台skuId 列表 |
+| changeOutPlatformSkuIdArr | 否 | List[String] | (售后类型为换货时必填)换出商品平台skuId列表 |
+| returnGoodsInfo | 是 | List[Object] | 退回商品属性信息,退回商品属性必须在此列表中 |
+| returnQuantity | 否 | BigDecimal | 退换货数量(此属性移到returnGoodsInfo中上送,此字段逐步启用) |
+| refundFee | 否 | BigDecimal | 退款金额 |
+| returnCreateDate | 否 | Date | 售后订单创建时间 |
+| desc | 否 | String | 退款说明 |
+| reason | 否 | String | 退款原因 |
+| buyerName | 否 | String | 买家昵称/收件人(换货单) |
+| buyerPhone | 否 | String | 收件人手机号(换货单) |
+| buyerAddress | 否 | String | 发件人地址(换货单) |
+| buyerLogisticsCompanyCode | 否 | String | 退回物流公司编码(通过 foonsu.erp.logisticsCompany.list 接口查询) |
+| sellerLogisticsCompanyCode | 否 | String | 换出物流公司编码(通过 foonsu.erp.logisticsCompany.list 接口查询) |
+| buyerLogisticsNo | 否 | String | 退回运单号 |
+
+### ChangeGoodsInfo(退回商品属性对象)
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| returnInPlatformSkuId | 是 | String | 退回商品sku |
+| returnQuantity | 是 | BigDecimal | 退回数量 |
+
+### 请求示例
+
+```json
+{
+    "afterSaleOrderId": "090801-02",
+    "tradeNo": "210908",
+    "shopId": 9900100000000190,
+    "returnKind": "2",
+    "platformReturnStatus": "3",
+    "platformExchangeStatus": "1",
+    "returnInPlatformSkuId": "6953406501074",
+    "changeOutPlatformSkuId": "6972482390129",
+    "returnQuantity": "1",
+    "refundFee": "50",
+    "returnInPlatformSkuIdArr": ["301","231"],
+    "changeOutPlatformSkuIdArr": ["301","231"],
+    "returnGoodsInfo": [
+        {"returnInPlatformSkuId": "301", "returnQuantity": "10"},
+        {"returnInPlatformSkuId": "231", "returnQuantity": "21"}
+    ],
+    "desc": "remark",
+    "reason": "reason",
+    "buyerName": "李是会计法律",
+    "buyerPhone": "13207022299",
+    "buyerAddress": "广东省深圳市宝安区xxx",
+    "buyerLogisticsNo": "123klj",
+    "buyerLogisticsCompanyCode": "01",
+    "sellerLogisticsCompanyCode": "02"
+}
+```
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": "操作成功",
+    "data": null,
+    "date": null,
+    "version": null,
+    "success": true
+}
+```
+
+---
+
+## 3. 订单查询
+
+**Method:** `foonsu.erp.orders.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询订单
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码,默认1 最小1 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| shopId | 否 | Long | 店铺ID |
+| beginDate | 是 | Date | 起始时间,和结束时间必须同时存在,时间间隔不能超过7天 |
+| endDate | 是 | Date | 结束时间,和起始时间必须同时存在,时间间隔不能超过7天 |
+| timeType | 是 | Date | 时间范围类型:0-创建时间;1-修改时间;2-付款时间(默认时间类型为修改时间) |
+| tradeNoList | 否 | List[String] | 交易单号,最多20 |
+| orderStatus | 否 | String | 订单状态:0-未审核;1-已审核;2-待财审;9-作废 |
+| goodsName | 否 | String | 商品名称(支持模糊查询) |
+| sortType | 否 | String | 排序字段:asc-正序;desc-倒序,默认asc。支持排序字段:0-创建时间;1-修改时间;2-付款时间 |
+| latestDeliveryTimeStart | 否 | Date | 最晚发货时间的起始时间 |
+| latestDeliveryTimeEnd | 否 | Date | 最晚发货时间的结束时间 |
+| platformGoodsSkuCode | 否 | String | 平台商品sku编码 |
+| refundState | 否 | String | 平台退款状态:0-未退款;1-已退款;2-部分退款;3-未退款,部分退款;4-退款中 |
+
+---
+
+## 4. 发货单查询
+
+**Method:** `foonsu.erp.deliveryOrders.list`
+
+**请求方式:** POST
+
+**简要描述:** 发货单查询(此接口默认不包含淘系订单所有数据)
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| shopId | 否 | Long | 店铺ID |
+| modifyDateStart | 是 | Date | 修改起始时间,和结束时间必须同时存在,时间间隔不能超过1天 |
+| modifyDateEnd | 是 | Date | 修改结束时间,和起始时间必须同时存在,时间间隔不能超过1天 |
+| deliveryDateStart | 是 | Date | 发货起始时间,和结束时间必须同时存在,时间间隔不能超过1天 |
+| deliveryDateEnd | 是 | Date | 发货结束时间(修改时间、发货时间以及审核时间三选一传入即可) |
+| checkDateStart | 是 | Date | 审核起始时间,和结束时间必须同时存在,时间间隔不能超过1天 |
+| checkDateEnd | 是 | Date | 审核结束时间(修改时间、发货时间以及审核时间三选一传入即可) |
+| tradeNoList | 否 | List[String] | 交易单号,最多20 |
+| deliveryStatus | 否 | String | 发货状态:0-未发货;1-已发货;2-部分发货;4-发货失败(不传默认查询已发货订单) |
+| logisticsNo | 否 | String | 运单号 |
+
+---
+
+## 5. 退款单查询
+
+**Method:** `foonsu.erp.refundOrders.list`
+
+**请求方式:** POST
+
+**简要描述:** 退款单查询(此接口默认不包含淘系订单所有数据,淘系平台:淘宝、阿里巴巴)
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| shopId | 否 | Long | 店铺ID |
+| modifyDateStart | 是 | Date | 审核起始时间,和结束时间必须同时存在,时间间隔不能超过1天 |
+| modifyDateEnd | 是 | Date | 审核结束时间,和起始时间必须同时存在,时间间隔不能超过1天 |
+| timeType | 否 | String | 时间范围类型:0-创建时间;1-审核时间(默认时间类型为审核时间) |
+| refundOrderStatus | 否 | String | 审核状态:0-未审核;1-已审核(默认审核状态为已审核) |
+| tradeNoList | 否 | List[String] | 交易单号,最多20 |
+| returnKind | 否 | String | 退货类别:1-退货;2-换货;3-仅退款;4-三无包裹入库 |
+
+---
+
+## 6. 退货单查询
+
+**Method:** `foonsu.erp.returnOrders.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询退货单(此接口默认不包含淘系订单所有数据)
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认20,最大不超过50 |
+| shopId | 否 | Long | 店铺ID |
+| tradeNo | 否 | String | 交易单号 |
+| modifyDateStart | 是 | Date | 审核起始时间,和结束时间必须同时存在,间隔不超过1天 |
+| modifyDateEnd | 是 | Date | 审核结束时间,和起始时间必须同时存在,间隔不超过1天 |
+
+---
+
+## 7. 换货单查询
+
+**Method:** `foonsu.erp.changeOrders.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询换货单(此接口默认不包含淘系订单所有数据)
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认20,最大不超过50 |
+| shopId | 否 | Long | 店铺ID |
+| modifyDateStart | 是 | Date | 审核起始时间,和结束时间必须同时存在,间隔不超过1天 |
+| modifyDateEnd | 是 | Date | 审核结束时间,和起始时间必须同时存在,间隔不超过1天 |
+| tradeNoList | 否 | List[String] | 交易单号,最多20 |
+
+### data(List)返回参数(换货单列表)
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| deliverOrderNo | String(30) | 发货单号 |
+| deliverReturnOrderNo | String(30) | 退换货单号 |
+| tradeNo | String(40) | 平台订单编号(交易单号) |
+| platformReturnNo | String(50) | 平台退货单号 |
+| shopId | Long(20) | 店铺ID |
+| outShopId | String(30) | 外部店铺ID |
+| shopName | String(100) | 店铺名称 |
+| orderSourceCode | String(1) | 订单来源:1-手工建单;2-平台订单 |
+| returnWarehouseId | Long(20) | 退回仓库ID |
+| changeWarehouseId | Long(20) | 换货仓库ID |
+| returnWarehouseName | String(20) | 退回仓库名称 |
+| changeWarehouseName | String(20) | 换货仓库名称 |
+| returnLogisticsCompanyId | String(30) | 退回物流公司ID |
+| changeLogisticsCompanyId | String(30) | 换货物流公司ID |
+| returnLogisticsNo | String(40) | 退回快递单号 |
+| refundAmount | BigDecimal | 退款金额 |
+| returnDate | Date | 退货日期 |
+| receiverName | String(400) | 收件人姓名 |
+| receiverMobile | String(60) | 收件人手机 |
+| receiverPhone | String(60) | 收件人电话 |
+| receiverProvince | String(60) | 收件人省份 |
+| receiverCity | String(60) | 收件人城市 |
+| receiverDistrict | String(60) | 收件人区/乡镇 |
+| receiverAddress | String(300) | 收件人地址 |
+| remark | String(100) | 备注 |
+| refundReason | String(100) | 退款原因 |
+| agreeToReturn | String | 审核状态:1-审核;0-未审核 |
+| urgentOrder | String | 加急订单:0-否;1-是 |
+| status | String | 收货入仓状态:0-否;1-是 |
+| createDate | Date | 创建时间 |
+| statusDate | Date | 收货入仓时间 |
+| agreeDate | Date | 审核时间 |
+| creator | String | 创建人 |
+| returnOrdersGoodsList | List[Object] | 退货订单商品明细 |
+| changeOrdersGoodsList | List[Object] | 换货订单商品明细 |
+
+### 退货订单商品明细
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| goodsCode | String(50) | 商品编码 |
+| outGoodsId | Long(20) | 外部商品ID |
+| goodsName | String(400) | 商品名称 |
+| goodsSpecs | String(100) | 规格名称 |
+| quantity | BigDecimal | 商品数量 |
+| price | BigDecimal | 标准售价 |
+| amount | BigDecimal | 标准金额 |
+| realPrice | BigDecimal | 实际售价 |
+| payAmount | BigDecimal | 实际金额 |
+| agioAmount | BigDecimal | 折扣金额 |
+| taxRate | BigDecimal | 税率 |
+| taxType | String | 税率类型:0-含税;1-免税;2-未税 |
+| remark | String(100) | 备注 |
+
+### 换货订单商品明细
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| goodsCode | String(50) | 商品编码 |
+| outGoodsId | Long(20) | 外部商品ID |
+| goodsName | String(400) | 商品名称 |
+| unit | String(100) | 商品单位 |
+| goodsSpecs | String(100) | 规格名称 |
+| quantity | BigDecimal | 商品数量 |
+| price | BigDecimal | 标准售价 |
+| amount | BigDecimal | 标准金额 |
+| realPrice | BigDecimal | 实际售价 |
+| payAmount | BigDecimal | 实际金额 |
+| agioAmount | BigDecimal | 折扣金额 |
+| taxRate | BigDecimal | 税率 |
+| taxType | String | 税率类型:0-含税;1-免税;2-未税 |
+| remark | String(100) | 备注 |
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": "操作成功",
+    "data": {
+        "total": 1,
+        "data": [{
+            "deliverOrderNo": "DO27F601306000",
+            "deliverReturnOrderNo": "DRO27F601306000",
+            "returnOrdersGoodsList": [{
+                "goodsCode": "sub_01",
+                "quantity": 1,
+                "goodsName": "sub_01"
+            }],
+            "changeOrdersGoodsList": [{
+                "goodsCode": "sub_01",
+                "quantity": 1,
+                "goodsName": "sub_01"
+            }]
+        }]
+    },
+    "date": null,
+    "version": null,
+    "success": true
+}
+```
+
+---
+
+## 8. 卖家备注修改
+
+**Method:** `foonsu.erp.deliveryOrders.updateSellerMessage`
+
+**请求方式:** POST
+
+**简要描述:** 修改卖家备注
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| tradeNo | 是 | String | 交易单号 |
+| content | 是 | String | 修改内容 |
+
+### 请求示例
+
+```json
+{
+    "tradeNo": "2059945776529852447",
+    "content": "66666"
+}
+```
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": "操作成功",
+    "data": "2059945776529852447",
+    "date": null,
+    "version": null,
+    "success": true
+}
+```
+
+---
+
+## 9. 包裹称重
+
+**Method:** `foonsu.erp.deliveryOrders.packageWeigh`
+
+**请求方式:** POST
+
+**简要描述:** 包裹称重
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| logisticsNo | 是 | String | 运单号 |
+| weight | 是 | BigDecimal | 称重重量 |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| logisticsNo | String | 运单号 |
+| deliveryOrderNo | String | 发货单号 |
+
+### 请求示例
+
+```json
+{
+    "logisticsNo": "SF1334493735275",
+    "weight": 30.22
+}
+```
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": "操作成功",
+    "data": {
+        "logisticsNo": "SF1334493735275",
+        "deliveryOrderNo": "DO27E703278004"
+    },
+    "date": null,
+    "version": null,
+    "success": true
+}
+```
+
+---
+
+## 10. 修改订单旗帜
+
+**Method:** `foonsu.erp.orders.updateOrderBanner`
+
+**请求方式:** POST
+
+**简要描述:** 修改订单旗帜
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| tradeNo | 是 | string | 交易单号 |
+| orderBanner | 是 | string | 订单旗帜:0-空;1-红旗;2-黄旗;3-绿旗;4-蓝旗;5-紫旗 |
+
+### 请求示例
+
+```json
+{
+    "tradeNo": "2404417646423507213",
+    "orderBanner": "5"
+}
+```
+
+---
+
+## 11. 抖店bic订单发货
+
+**Method:** `foonsu.erp.deliveryOrders.consignBicOrder`
+
+**请求方式:** POST
+
+**支持平台:** 抖店
+
+**简要描述:** 抖店BIC订单发货
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopId | 是 | Long | 店铺id |
+| requestId | 是 | string | 请求id(随机数) |
+| requestParam | 是 | string | 平台接口请求参数的Json String |
+
+### 返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| data | object | 返回数据 |
+| requestId | String | 请求id |
+| platformReturnResult | String | 平台返回信息 |
+| success | boolean | 是否成功 |
+| errorMsg | String | 错误信息 |
+
+### 请求示例
+
+```json
+{
+    "shopId": "100030000000003021",
+    "requestId": "987654321",
+    "requestParam": "{\"shop_package_id\":\"6941730766905180453\",\"delivery_type\":0,\"ship_type\":1}"
+}
+```
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": null,
+    "data": {
+        "requestId": "987654321",
+        "platformReturnResult": "{\"code\": 10000, \"msg\": \"success\"}",
+        "success": true,
+        "errorMsg": null
+    },
+    "date": "2023-10-25 09:34:04",
+    "version": null,
+    "success": true
+}
+```
+
+**平台文档:** https://op.jinritemai.com/docs/api-docs/51/480
+
+---
+
+## 12. 批量下载bic订单码
+
+**Method:** `foonsu.erp.deliveryOrders.batchDownloadBicCode`
+
+**请求方式:** POST
+
+**支持平台:** 抖店
+
+**简要描述:** 抖店批量下载BIC订单码
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopId | 是 | Long | 店铺id |
+| requestId | 是 | string | 请求id(随机数) |
+| requestParam | 是 | string | 平台接口请求参数的Json String |
+
+### 请求示例
+
+```json
+{
+    "shopId": "100030000000003021",
+    "requestId": "987654321",
+    "requestParam": "{\"order_ids\":[4652554264337710006,4652998694668485077]}"
+}
+```
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": null,
+    "data": {
+        "requestId": "987654321",
+        "platformReturnResult": "{\"data\":{\"batch_data\":[{\"order_code\":\"0067108864\",\"order_id\":\"4817027636051904078\"}],\"delivery_type\":\"0\",\"ship_type\":\"3\"}}",
+        "success": true,
+        "errorMsg": null
+    },
+    "date": "2023-10-25 09:34:04",
+    "version": null,
+    "success": true
+}
+```
+
+**平台文档:** https://op.jinritemai.com/docs/api-docs/51/1872
+
+---
+
+## 13. 商品标签查询
+
+**Method:** `foonsu.erp.goodsLabel.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询商品标签
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| printTimeStart | 是 | String | 打印开始时间 |
+| printTimeEnd | 是 | String | 打印结束时间 |
+| pageIndex | 是 | Integer | 页码,0为第1页 |
+| pageSize | 是 | Integer | 每页记录数,默认100 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| id | String | id |
+| labelCode | String | 标签序列号 |
+| warehouseName | String | 仓库名称 |
+| logisticName | String | 物流公司名称 |
+| logisticNo | String | 物流单号 |
+| goodsCode | String | 商品编码 |
+| goodsNo | String | 商品货号 |
+| goodsName | String | 商品名称 |
+| skuName | String | 规格名称 |
+| printTime | Date | 标签打印时间 |
+| goodsType | String | 商品标签类型:0-多件;1-单件 |
+
+### 请求示例
+
+```json
+{
+    "printTimeStart": "2024-07-27 00:00:00",
+    "printTimeEnd": "2024-08-26 23:59:59",
+    "pageIndex": 0,
+    "pageSize": 20
+}
+```
+
+---
+
+## 14. 企得宝订单信息查询
+
+**Method:** `foonsu.erp.orders.listOrderStatus`
+
+**请求方式:** POST
+
+**简要描述:** 查询企得宝订单信息
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| orderNoList | 是 | List[String] | 订单编号,最多50 |
+
+### 返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| orderNo | String | 订单编号 |
+| orderStatus | String | 订单状态:0-未审核;1-已审核;2-待财审;9-作废 |
+| platformRefundStatus | String | 退款状态:0-未退款;1-已退款;2-部分退款;3-未退款,部分退款;4-退款中 |
+| logisticsNoFlag | String | 是否有运单号:0-没有;1-有 |
+| storageExceptionStatus | String | 取消同步外仓状态:2-失败 |
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": "操作成功",
+    "data": {
+        "total": 2,
+        "data": [
+            {"orderNo": "SO274207704389", "orderStatus": "0", "platformRefundStatus": "0", "logisticsNoFlag": "0", "storageExceptionStatus": "2"},
+            {"orderNo": "SO274207704421", "orderStatus": "1", "platformRefundStatus": "0", "logisticsNoFlag": "1", "storageExceptionStatus": "2"}
+        ]
+    },
+    "date": null,
+    "version": null,
+    "success": true
+}
+```
+
+---
+
+## 15. 包裹称重(支持上传图片)
+
+**Method:** `foonsu.erp.deliveryOrders.packageWeighNew`
+
+**请求方式:** POST(multipart/form-data)
+
+**简要描述:** 包裹称重,支持上传图片
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| logisticsNo | 是 | String | 运单号 |
+| weight | 是 | BigDecimal | 称重重量 |
+| fileType | 否 | String | 图片类型,png、jpg |
+| file | 否 | File | 图片文件 |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| logisticsNo | String | 运单号 |
+| deliveryOrderNo | String | 发货单号 |
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": "操作成功",
+    "data": {
+        "logisticsNo": "SF1334493735275",
+        "deliveryOrderNo": "D027E703278004"
+    },
+    "date": null,
+    "version": null,
+    "success": true
+}
+```
+
+---
+
+## 16. DMS订单回告
+
+**Method:** `foonsu.erp.dms.callback`
+
+**请求方式:** POST
+
+**简要描述:** DMS订单回告
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| unionTenantId | 是 | String | 商户ID |
+| version | 是 | String | 套餐名称(例如:企得宝基础版、企得宝标准版) |
+| result | 是 | String | Y-开通成功;N-开通失败 |
+| payTime | 否 | Date | 支付时间 |
+| payType | 否 | String | 支付方式 |
+| startTime | 是 | Date | 套餐开始时间 |
+| expirationTime | 是 | Date | 套餐到期时间 |
+| orderNo | 是 | String | 快递鸟订单号 |
+| type | 否 | Integer | 0-试用;1-新购;2-续费 |
+| realAmount | 否 | BigDecimal | 套餐金额 |
+| payAmount | 否 | BigDecimal | 付款金额 |
+
+### 请求示例
+
+```json
+{
+    "unionTenantId": "10050",
+    "version": "企得宝基础版",
+    "result": "Y",
+    "payTime": "2025-11-20 0:00:00",
+    "payType": "支付宝",
+    "startTime": "2025-11-20 0:00:00",
+    "expirationTime": "2026-11-20 0:00:00",
+    "orderNo": "9420251111161912447",
+    "type": 1,
+    "realAmount": 998.00,
+    "payAmount": 998.00
+}
+```
+
+### 返回示例
+
+```json
+{
+    "errorCode": null,
+    "msg": "操作成功",
+    "data": "操作成功",
+    "date": null,
+    "version": null,
+    "success": true
+}
+```

+ 464 - 0
qdb-sdk/05-采购管理.md

@@ -0,0 +1,464 @@
+# 采购管理
+
+采购管理分类提供供应商查询、采购订单创建、采购入库/退货单等接口,共 **5** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [供应商查询](#1-供应商查询) | `foonsu.erp.provider.list` | 查询供应商 |
+| 2 | [采购订单创建](#2-采购订单创建) | `foonsu.erp.purchaseOrders.addPurchaseOrder` | 创建采购订单 |
+| 3 | [采购入库/退货单创建](#3-采购入库退货单创建) | `foonsu.erp.stockInOrders.add` | 创建采购入库或退货单 |
+| 4 | [采购入库/退货单查询](#4-采购入库退货单查询) | `foonsu.erp.stockInOrders.list` | 查询采购入库/退货单 |
+| 5 | [采购退货单查询](#5-采购退货单查询) | `foonsu.erp.stockOutOrders.list` | 查询采购退货单 |
+
+---
+
+## 1. 供应商查询
+
+**Method:** `foonsu.erp.provider.list`
+
+**请求方式:** POST
+
+**简要描述:** 供应商查询
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| providerName | 否 | String | 供应商名称 |
+| providerCode | 否 | String | 供应商编码 |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| total | Integer | 记录总数 |
+| data | List[Object] | 集合参数响应 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| providerName | String | 供应商名称 |
+| providerTypeName | String | 供应商类型 |
+| linkMan | String | 联系人 |
+| phone | String | 电话号码 |
+| mobile | String | 手机号码 |
+| fax | String | 传真 |
+| province | String | 省份 |
+| city | String | 城市 |
+| district | String | 区 |
+| address | String | 地址 |
+| zipCode | String | 邮编 |
+| remark | String | 备注 |
+| status | String | 状态:0-停用;1-启用 |
+| providerCode | String | 供应商编码 |
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "total": 5,
+    "data": [
+      {
+        "providerName": "cdd",
+        "providerCode": "a23",
+        "providerTypeName": "一级供应商",
+        "linkMan": "**",
+        "phone": "",
+        "mobile": "13923742665",
+        "fax": "*",
+        "province": "上海",
+        "city": "上海市",
+        "district": "嘉定区",
+        "address": "*****",
+        "zipCode": "***",
+        "remark": "无"
+      }
+    ]
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```
+
+---
+
+## 2. 采购订单创建
+
+**Method:** `foonsu.erp.purchaseOrders.addPurchaseOrder`
+
+**请求方式:** POST
+
+**简要描述:** 采购订单创建
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| warehouseName | 是 | String | 仓库名称 |
+| purchaseType | 是 | String | 采购类型:1-标准采购;2-新品采购;3-补货采购 |
+| provideName | 是 | String | 供应商名称 |
+| expectedArrivalTime | 是 | Date | 预计到货时间 |
+| theTotalAmountActuallyPaid | 否 | BigDecimal | 实际支付总金额(如果未输入默认取商品总金额) |
+| reamrk | 否 | String | 备注(长度不能大于100) |
+| ext1 | 否 | String | 自定义字段1 |
+| ext2 | 否 | String | 自定义字段2 |
+| ext3 | 否 | String | 自定义字段3 |
+| externalUniqueCode | 否 | String | 请求的唯一标识,如果传入则需要保证每次请求数据具有唯一性,长度不可超32位 |
+| purchaseOrdersGoodsInfoList | 是 | List[Object] | 商品信息列表 |
+
+### PurchaseOrdersGoodsInfo 参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| goodsType | 是 | String | 商品类型:0-普通商品;1-批次商品;2-唯一码商品 |
+| goodsCode | 是 | String | 商品编码 |
+| goodsName | 是 | String | 商品名称 |
+| quantity | 是 | BigDecimal | 商品数量 |
+| price | 是 | BigDecimal | 单价 |
+| totalAmount | 是 | BigDecimal | 商品总价(商品数量*单价) |
+| taxRate | 否 | BigDecimal | 税率(未输入默认为0) |
+| taxType | 否 | String | 税率类型:0-含税;1-免税;2-未税,默认为含税 |
+| remark | 否 | String | 备注(长度不能大于100) |
+
+### 请求示例
+
+```json
+{
+  "expectedArrivalTime": "2021-11-11 11:11:11",
+  "provideName": "A00001供应商",
+  "purchaseOrdersGoodsInfoList": [
+    {
+      "goodsCode": "sub_01",
+      "goodsName": "sub_01",
+      "goodsType": "0",
+      "price": 10,
+      "quantity": 1,
+      "totalAmount": 10
+    },
+    {
+      "goodsCode": "pc_01",
+      "goodsName": "pc_01",
+      "goodsType": "1",
+      "price": 10,
+      "quantity": 1,
+      "totalAmount": 10
+    },
+    {
+      "goodsCode": "wym_01",
+      "goodsName": "wym_01",
+      "goodsType": "2",
+      "price": 10,
+      "quantity": 1,
+      "totalAmount": 10
+    }
+  ],
+  "purchaseType": "1",
+  "reamrk": "测试数据",
+  "theTotalAmountActuallyPaid": 30,
+  "warehouseName": "仓库01"
+}
+```
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": null,
+  "date": null,
+  "version": null,
+  "success": true
+}
+```
+
+---
+
+## 3. 采购入库/退货单创建
+
+**Method:** `foonsu.erp.stockInOrders.add`
+
+**请求方式:** POST
+
+**简要描述:** 采购入库/退货单创建
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| warehouseName | 是 | String | 仓库名称 |
+| purchaseType | 是 | String | 采购类型:1-标准采购;2-新品采购;3-补货采购(orderFlag=-1时不传) |
+| orderFlag | 是 | Integer | 单据类型:1-采购入库;-1-采购退货,默认1 |
+| provideName | 是 | String | 供应商名称 |
+| expectedArrivalTime | 是 | Date | 预计到货时间 |
+| theTotalAmountActuallyPaid | 否 | BigDecimal | 实际支付总金额(如果未输入默认取商品总金额) |
+| reamrk | 否 | String | 备注(长度不能大于100) |
+| ext1 | 否 | String | 自定义字段1 |
+| ext2 | 否 | String | 自定义字段2 |
+| ext3 | 否 | String | 自定义字段3 |
+| externalUniqueCode | 否 | String | 请求的唯一标识,如果传入则需要保证每次请求数据具有唯一性,长度不可超32位 |
+| externalOrderNo | 否 | String | 外部系统单据编号 |
+| stockInOrdersGoodsInfoList | 是 | List[Object] | 商品信息列表 |
+
+### StockInOrdersGoodsInfo 参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| goodsType | 是 | String | 商品类型:0-普通商品;1-批次商品;2-唯一码商品 |
+| goodsCode | 是 | String | 商品编码 |
+| goodsName | 是 | String | 商品名称 |
+| quantity | 是 | BigDecimal | 商品数量 |
+| price | 是 | BigDecimal | 单价 |
+| totalAmount | 是 | BigDecimal | 商品总价(商品数量*单价) |
+| taxRate | 否 | BigDecimal | 税率(未输入默认为0) |
+| taxType | 否 | String | 税率类型:0-含税;1-免税;2-未税,默认为含税 |
+| remark | 否 | String | 备注(长度不能大于100) |
+| externalDetailNo | 否 | String | 外部系统单据明细行号 |
+| stockInOrdersGoodsBatchInfoList | 是 | List[Object] | 批次/唯一码信息(goodsType为1或2时为必填字段) |
+
+### StockInOrdersGoodsBatchInfo 参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| batchNo | 是 | String | 批次号 |
+| batchQuantity | 是 | BigDecimal | 数量(goodsType=2时数量默认必须为1) |
+| productionDate | 否 | Date | 生产日期 |
+| validDays | 否 | Integer | 保质期天数 |
+| distributorsCode | 否 | String | 经销商编码 |
+
+### 请求示例
+
+```json
+{
+  "expectedArrivalTime": 1596165536758,
+  "provideName": "上海供应商",
+  "purchaseType": "1",
+  "orderFlag": 1,
+  "reamrk": "123dhjskhfasf",
+  "stockInOrdersGoodsInfoList": [
+    {
+      "goodsCode": "PC_001",
+      "goodsType": "1",
+      "price": 15,
+      "quantity": 10,
+      "stockInOrdersGoodsBatchInfoList": [
+        {
+          "batchNo": "PC_00000001",
+          "batchQuantity": 10,
+          "productionDate": 1596165536755,
+          "validDays": 50,
+          "distributorsCode": 32424
+        }
+      ],
+      "taxRate": 0.1,
+      "totalAmount": 150
+    },
+    {
+      "goodsCode": "WYM_001",
+      "goodsType": "2",
+      "price": 11,
+      "quantity": 1,
+      "externalDetailNo": "12313213",
+      "stockInOrdersGoodsBatchInfoList": [
+        {
+          "batchNo": "WYM_00000002",
+          "batchQuantity": 1,
+          "productionDate": 1596165536757,
+          "validDays": 50
+        }
+      ],
+      "taxRate": 0.05,
+      "totalAmount": 11
+    },
+    {
+      "goodsCode": "SUB_01",
+      "goodsType": "0",
+      "price": 40,
+      "quantity": 5,
+      "taxRate": 0.05,
+      "totalAmount": 200
+    }
+  ],
+  "warehouseName": "测试仓库"
+}
+```
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": "SIO1820419963117568",
+  "date": null,
+  "version": null,
+  "success": true
+}
+```
+
+---
+
+## 4. 采购入库/退货单查询
+
+**Method:** `foonsu.erp.stockInOrders.list`
+
+**请求方式:** POST
+
+**简要描述:** 采购入库/退货单查询
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| poList | 否 | List[String] | 采购订单编号集合,最多20 |
+| orderFlag | 否 | Integer | 单据类型:1-采购入库;-1-采购退货 |
+| timeStatus | 否 | String | 时间范围类型:0-创建时间;1-修改时间 |
+| modifyDateStart | 是 | Date | 起始时间 |
+| modifyDateEnd | 是 | Date | 结束时间(间隔不超过7天) |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| orderNo | String | 入库单号 |
+| orderFlag | Integer | 单据类型:1-采购入库;-1-采购退货 |
+| warehouseName | String | 仓库名称 |
+| poOrderNo | String | 采购订单编号 |
+| createDate | Date | 创建时间 |
+| stockDate | Date | 入库日期 |
+| orderType | String | 采购类型:1-标准采购;2-新品采购;3-补货采购 |
+| providerName | String | 供应商 |
+| logisticsCost | BigDecimal | 快递运费 |
+| remark | String | 备注 |
+| stockPackCount | BigDecimal | 入库数量 |
+| taxAmount | BigDecimal | 总含税金额 |
+| ext1 | String | 自定义字段1 |
+| ext2 | String | 自定义字段2 |
+| ext3 | String | 自定义字段3 |
+| stockInOrdersGoodsList | List[Object] | 商品明细集合 |
+
+### stockInOrdersGoodsList 商品明细返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| goodsName | String | 商品名称 |
+| goodsCode | String | 商品编码 |
+| packCount | BigDecimal | 数量 |
+| price | BigDecimal | 单价 |
+| amount | BigDecimal | 金额 |
+| remark | String | 备注 |
+| batchList | List[Object] | 批次信息 |
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "total": 1,
+    "data": [{
+      "orderNo": "SIO1820419963117568",
+      "orderFlag": 1,
+      "warehouseName": "测试仓库",
+      "providerName": "上海供应商",
+      "createDate": "2024-01-01 12:00:00",
+      "stockDate": "2024-01-01 12:00:00",
+      "orderType": "1",
+      "stockPackCount": 16,
+      "taxAmount": 371,
+      "stockInOrdersGoodsList": [{
+        "goodsCode": "PC_001",
+        "goodsName": "PC_001",
+        "packCount": 10,
+        "price": 15,
+        "amount": 150
+      }]
+    }]
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```
+
+---
+
+## 5. 采购退货单查询
+
+**Method:** `foonsu.erp.stockOutOrders.list`
+
+**请求方式:** POST
+
+**简要描述:** 采购退货单查询
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| stockOutOrdersNoList | 否 | List[String] | 采购退货单编号集合,最多20 |
+| timeType | 否 | String | 时间范围类型:0-创建时间;1-修改时间 |
+| beginDate | 是 | Date | 创建起始时间 |
+| endDate | 是 | Date | 创建结束时间(间隔不超过7天) |
+| isStorage | 否 | String | 是否包含仓储订单:0-不包含(默认);1-全部 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| orderNo | String | 采购退货单号 |
+| poOrderNo | String | 关联采购入库单号 |
+| warehouseName | String | 仓库名称 |
+| providerName | String | 供应商名称 |
+| stockPackCount | BigDecimal | 退货数量 |
+| taxAmount | BigDecimal | 总含税金额 |
+| createDate | Date | 创建时间 |
+| modifyDate | Date | 修改时间 |
+| stockDate | Date | 出库时间 |
+| stockOutOrdersGoodsList | List[Object] | 商品明细集合 |
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "total": 1,
+    "data": [{
+      "orderNo": "SOO1820419963117569",
+      "warehouseName": "测试仓库",
+      "providerName": "上海供应商",
+      "stockPackCount": 5,
+      "taxAmount": 200,
+      "createDate": "2024-01-01 12:00:00",
+      "stockDate": "2024-01-02 12:00:00",
+      "stockOutOrdersGoodsList": [{
+        "goodsCode": "SUB_01",
+        "goodsName": "SUB_01",
+        "skCount": 5,
+        "price": 40,
+        "amount": 200
+      }]
+    }]
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```

+ 103 - 0
qdb-sdk/06-调拨管理.md

@@ -0,0 +1,103 @@
+# 调拨管理
+
+调拨管理分类提供调拨单查询和调出单创建接口,共 **2** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [调拨单查询](#1-调拨单查询) | `foonsu.erp.stockTransferOrders.list` | 查询调拨单 |
+| 2 | [调出单创建](#2-调出单创建) | `foonsu.erp.stockTransferOrders.save` | 创建调出单 |
+
+---
+
+## 1. 调拨单查询
+
+**Method:** `foonsu.erp.stockTransferOrders.list`
+
+**请求方式:** POST
+
+**简要描述:** 调拨单查询
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| stockTransferOrdersNoList | 否 | List[String] | 调拨单编号集合,最多20 |
+| timeType | 否 | String | 时间范围类型:0-创建时间;1-修改时间 |
+| beginDate | 是 | Date | 创建起始时间 |
+| endDate | 是 | Date | 创建结束时间(间隔不超过7天) |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| orderNo | String | 调拨单单号 |
+| inWarehouseName | String | 调入仓库 |
+| outWarehouseName | String | 调出仓库 |
+| outStatus | String | 调出单审核状态:0-未审核;1-已审核;9-作废 |
+| inStatus | String | 调入单审核状态:0-未审核;1-已审核;9-作废 |
+| taxAmount | BigDecimal | 总含税金额 |
+| createDate | Date | 创建时间 |
+| modifyDate | Date | 修改时间 |
+| outStockDate | Date | 调出日期 |
+| inStockDate | Date | 调入日期 |
+| stockOutOrdersGoodsList | List[Object] | 调拨单商品明细集合 |
+
+---
+
+## 2. 调出单创建
+
+**Method:** `foonsu.erp.stockTransferOrders.save`
+
+**请求方式:** POST
+
+**简要描述:** 调出单创建
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| outWarehouseId | 是 | Long | 调出仓库ID |
+| inWarehouseId | 是 | Long | 调入仓库ID |
+| outStockDate | 是 | Date | 调出日期 |
+| inStockDate | 否 | Date | 调入日期 |
+| remark | 否 | String | 备注 |
+| cancel | 否 | String | 取消订单:0-否;1-是 |
+| orderNo | 否 | String | 调拨单号,取消订单时必传 |
+| stockTransferOrdersGoodsList | 是 | List[Object] | 调出单商品明细列表 |
+
+### stockTransferOrdersGoodsList 参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| goodsCode | 是 | String | 商品编码 |
+| packCount | 是 | BigDecimal | 商品数量 |
+| taxRate | 否 | BigDecimal | 税率(未输入默认为0) |
+| taxType | 否 | BigDecimal | 税率类型:0-含税;1-免税;2-未税 |
+| remark | 否 | String | 备注 |
+| transferFee | 否 | String | 调拨费用 |
+| batchList | 否 | List[Object] | 批次、唯一码信息 |
+
+### batchList 参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| batchNo | String | 批次、唯一码 |
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": null,
+  "date": null,
+  "version": null,
+  "success": true
+}
+```

+ 161 - 0
qdb-sdk/07-其他出入库管理.md

@@ -0,0 +1,161 @@
+# 其他出入库管理
+
+其他出入库管理分类提供其他出入库单类型查询、单据查询和创建接口,共 **3** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [其他出入库单类型查询](#1-其他出入库单类型查询) | `foonsu.erp.stockOtherOrders.listType` | 查询出入库类型 |
+| 2 | [其他出入库单查询](#2-其他出入库单查询) | `foonsu.erp.stockOtherOrders.list` | 查询出入库单 |
+| 3 | [其他出入库单创建](#3-其他出入库单创建) | `foonsu.erp.stockOtherOrders.save` | 创建出入库单 |
+
+---
+
+## 1. 其他出入库单类型查询
+
+**Method:** `foonsu.erp.stockOtherOrders.listType`
+
+**请求方式:** POST
+
+**简要描述:** 查询其他出入库单类型
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| type | 否 | String | 单据类型:0-其他入库单;1-其他出库单 |
+| status | 否 | String | 状态:0-启用;1-禁用 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| type | String | 类型编码 |
+| id | Long | 类型ID |
+| othersName | String | 类型名称 |
+| status | String | 状态:0-启用;1-禁用 |
+| remark | String | 备注 |
+
+---
+
+## 2. 其他出入库单查询
+
+**Method:** `foonsu.erp.stockOtherOrders.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询其他出入库单
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 第几页,从1开始,默认1 |
+| pageSize | 否 | Integer | 默认20,最大不超过50 |
+| stockOtherOrdersNoList | 否 | List[String] | 其他出入库单号列表 |
+| outStockOtherOrdersNoList | 否 | List[String] | 外部单号列表 |
+| beginDate | 否 | Date | 起始时间 |
+| endDate | 否 | Date | 结束时间 |
+| timeType | 否 | String | 时间类型:1-创建时间;2-修改时间 |
+| type | 否 | String | 类型 |
+| status | 否 | String | 状态 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| stockOtherOrdersId | Long | 单据ID |
+| stockOtherOrdersNo | String | 单据编号 |
+| type | String | 类型 |
+| typeName | String | 类型名称 |
+| warehouseName | String | 仓库名称 |
+| totalQuantity | BigDecimal | 总数量 |
+| totalAmount | BigDecimal | 总金额 |
+| createDate | Date | 创建时间 |
+| status | String | 状态 |
+| remark | String | 备注 |
+| outOrderNo | String | 外部单号 |
+| stockOtherOrdersGoodsList | List[Object] | 商品明细列表 |
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "total": 3,
+    "data": [
+      {
+        "stockOtherOrdersId": 123,
+        "stockOtherOrdersNo": "QTCK202001010001",
+        "type": "1",
+        "typeName": "盘亏出库",
+        "warehouseName": "主仓库",
+        "totalQuantity": 10,
+        "totalAmount": 100.00,
+        "createDate": "2020-01-01 12:00:00",
+        "status": "1",
+        "remark": "",
+        "outOrderNo": "EXT202001010001",
+        "stockOtherOrdersGoodsList": [
+          {
+            "goodsId": 456,
+            "goodsCode": "SP001",
+            "goodsName": "测试商品",
+            "quantity": 10,
+            "price": 10.00,
+            "amount": 100.00,
+            "batchNo": "B20200101",
+            "productionDate": "2020-01-01",
+            "validDays": 365
+          }
+        ]
+      }
+    ]
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```
+
+---
+
+## 3. 其他出入库单创建
+
+**Method:** `foonsu.erp.stockOtherOrders.save`
+
+**请求方式:** POST
+
+**简要描述:** 创建其他出入库单
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| warehouseId | 是 | Long | 仓库ID |
+| type | 是 | String | 单据类型:0-其他入库单;1-其他出库单 |
+| stockDate | 是 | Date | 出入库日期 |
+| othersTypeId | 是 | Long | 出入库类型ID |
+| outStockOthersOrderNo | 否 | String | 外部系统单号 |
+| shopId | 否 | Long | 店铺ID(其他出库单选填) |
+| reamrk | 否 | String | 单据备注 |
+| providerName | 否 | String | 供应商名称 |
+| cancel | 否 | String | 取消订单:0-否;1-是 |
+| stockOtherOrdersGoodsList | 是 | List[Object] | 商品明细列表 |
+
+### stockOtherOrdersGoodsList 参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| goodsCode | 是 | String | 商品编码 |
+| quantity | 是 | BigDecimal | 数量 |
+| remark | 否 | String | 备注 |
+| price | 否 | BigDecimal | 单价 |
+| externalPrice | 否 | String | 外部价格 |

+ 129 - 0
qdb-sdk/08-盘点管理.md

@@ -0,0 +1,129 @@
+# 盘点管理
+
+盘点管理分类提供盘点单创建和查询接口,共 **2** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [盘点单创建](#1-盘点单创建) | `foonsu.erp.stockCheckOrder.save` | 创建盘点单 |
+| 2 | [盘点单查询](#2-盘点单查询) | `foonsu.erp.stockCheckOrder.list` | 查询盘点单 |
+
+---
+
+## 1. 盘点单创建
+
+**Method:** `foonsu.erp.stockCheckOrder.save`
+
+**请求方式:** POST
+
+**简要描述:** 创建盘点单
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| warehouseId | 是 | Long | 仓库ID |
+| checkDate | 是 | Date | 盘点日期 |
+| outOrderNo | 否 | String | 外部系统盘点单号 |
+| remark | 否 | String | 备注 |
+| stockCheckOrderGoodsList | 是 | List[Object] | 盘点单商品明细列表,最大50 |
+
+### stockCheckOrderGoodsList 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| goodsCode | 是 | String | 商品编码 |
+| skCount | 是 | BigDecimal | 盘点数量 |
+
+### 返回参数
+
+data 为 null,成功返回 `"success": true`。
+
+### 请求示例
+
+```json
+{
+    "warehouseId": 9000000000001253,
+    "checkDate": "2021-06-20 11:11:11",
+    "remark": "备注xxx",
+    "stockCheckOrderGoodsList": [{
+        "goodsCode": "111",
+        "skCount": 10
+    }, {
+        "goodsCode": "8012882331",
+        "skCount": 22
+    }, {
+        "goodsCode": "bj001",
+        "skCount": 65
+    }],
+    "outOrderNo": "outso123"
+}
+```
+
+---
+
+## 2. 盘点单查询
+
+**Method:** `foonsu.erp.stockCheckOrder.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询盘点单
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认 20,最大不超过 50 |
+| stockCheckOrderNoList | 否 | List[String] | 指定盘点单号(ERP系统单号),最多20,和时间段不能同时为空 |
+| outStockCheckOrderNoList | 否 | List[String] | 指定盘点单号(外部系统盘点单号),最多20,和时间段不能同时为空 |
+| beginDate | 否 | Date | 创建起始时间,和结束时间必须同时存在,时间间隔不能超过7天,和盘点单号不能同时为空 |
+| endDate | 否 | Date | 创建结束时间,和起始时间必须同时存在,时间间隔不能超过7天,和盘点单号不能同时为空 |
+| checkStatus | 否 | String | 状态:0-未审核;1-已审核;9-作废 |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| total | Integer | 记录总数 |
+| data | List[Object] | 集合参数响应 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| orderNo | String | ERP系统盘点单号 |
+| outOrderNo | String | 外部系统盘点单号 |
+| warehouseId | Long | 仓库ID |
+| warehouseName | String | 仓库名称 |
+| createDate | Date | 创建时间 |
+| stockDate | Date | 盘点时间 |
+| statusDate | Date | 审核时间 |
+| creator | String | 创建人 |
+| statusUser | String | 审核人 |
+| status | String | 状态:0-未审核;1-已审核;9-作废 |
+| remark | String | 备注 |
+| stockCheckCount | BigDecimal | 盘点数量 |
+| stockCheckOrdersGoodsList | List[Object] | 库存盘点单商品集合 |
+
+### stockCheckOrdersGoodsList 响应参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| goodsCode | String | 商品编码 |
+| goodsName | String | 商品名称 |
+| goodsSpecs | String | 规格名称 |
+| skCount | BigDecimal | 盘点数量 |
+| remark | String | 备注 |
+| stockCheckOrdersGoodsBatchList | List[Object] | 库存盘点单商品批次集合 |
+
+### stockCheckOrdersGoodsBatchList 响应参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| batchNo | String | 批次号/唯一码 |
+| skCount | BigDecimal | 盘点数量 |

+ 153 - 0
qdb-sdk/09-库存管理.md

@@ -0,0 +1,153 @@
+# 库存管理
+
+库存管理分类提供库存查询和进销存查询接口,共 **2** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [库存查询](#1-库存查询) | `foonsu.erp.stock.list` | 查询库存信息 |
+| 2 | [进销存查询](#2-进销存查询) | `foonsu.erp.saleStock.list` | 查询进销存信息 |
+
+---
+
+## 1. 库存查询
+
+**Method:** `foonsu.erp.stock.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询商品库存信息
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 第几页,从1开始,默认1 |
+| pageSize | 否 | Integer | 默认20,最大不超过50 |
+| modifyDateStart | 否 | Date | 修改起始时间,和结束时间必须同时存在,间隔不超过7天 |
+| modifyDateEnd | 否 | Date | 修改结束时间,和起始时间必须同时存在,间隔不超过7天 |
+| goodsCodeList | 否 | List[String] | 商品编码列表(ERP系统商品编码),最多20 |
+| warehouseId | 否 | Long | 仓库ID |
+| status | 否 | String | 商品启用状态:0-停用;1-启用 |
+
+### data(Object)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| total | Integer | 记录总数 |
+| data | List[Object] | 集合参数响应 |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| goodsCode | String | 商品编码 |
+| skCount | Long | 库存数 |
+| canSaleCount | Long | 可销售数 |
+| wayCount | Long | 在途数 |
+| canAllocateCount | Long | 可配货数 |
+| wmsSkCount | Long | 外仓库存数 |
+| modifyDate | Date | 修改时间 |
+| warehouseId | Long | 仓库ID |
+| warehouseName | String | 仓库名称 |
+| tempCost | BigDecimal | 本期成本价 |
+| costPrice | BigDecimal | 采购指导价 |
+| batchList | List[Object] | 批次信息集合 |
+
+### 批次信息响应参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| batchNo | String | 批次号 |
+| batchType | String | 0-无;1-批次库存;2-唯一码 |
+| canAllocateCount | Long | 可配货数 |
+| skCount | BigDecimal | 库存数量 |
+| productionDate | Date | 生产日期 |
+| validDays | Integer | 保质期天数 |
+| expriedDate | Date | 保质期 |
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "total": 3,
+    "data": [
+      {
+        "goodsCode": "L2",
+        "skCount": 1,
+        "wayCount": 444,
+        "canSaleCount": 333,
+        "canAllocateCount": 222,
+        "modifyDate": "2020-04-21 12:20:10",
+        "tempCost": 100
+      }
+    ]
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```
+
+---
+
+## 2. 进销存查询
+
+**Method:** `foonsu.erp.saleStock.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询进销存信息
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 第几页,从1开始,默认1 |
+| pageSize | 否 | Integer | 默认20,最大不超过50 |
+| beginDate | **是** | Date | 起始时间,和结束时间必须同时存在,间隔不超过7天 |
+| endDate | **是** | Date | 结束时间,和起始时间必须同时存在,间隔不超过7天 |
+| goodsCodeList | 否 | List[String] | 商品编码(ERP系统商品编码),最多20 |
+| warehouseId | **是** | Integer | 仓库ID |
+
+### data(List)返回参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| goodsCode | String | 商品编码 |
+| goodsName | String | 商品名称 |
+| inCount | BigDecimal | 入库数量(收入小计) |
+| outCount | BigDecimal | 出库数量(支出小计) |
+| skUnit | String | 单位 |
+| warehouseId | Integer | 仓库ID |
+| warehouseName | String | 仓库名称 |
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "total": 3,
+    "data": [
+      {
+        "goodsCode": "L2",
+        "goodsName": "L2名称",
+        "inCount": 1,
+        "outCount": 1,
+        "skUnit": "件"
+      }
+    ]
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```

+ 511 - 0
qdb-sdk/10-消息推送.md

@@ -0,0 +1,511 @@
+# 消息推送
+
+消息推送由企得宝ERP系统主动向开发者配置的推送地址推送消息,共 **8** 种推送类型。
+
+---
+
+## 推送说明
+
+### 推送方式
+
+- **请求方式:** HTTP POST
+- **Content-Type:** `application/json;charset=UTF-8`
+
+### 推送签名规则
+
+1. 所有参数(除 sign)按照字典序排列
+2. 排序好的参数(除 sign)根据参数名称+参数值直接拼接(key1value1key2value2)
+3. 拼接完成后字符串两端加上当前企业的 `secret` 进行 MD5 加密并转小写
+
+### 返回结果
+
+接收方处理完成后,返回字符串 `success` 认为推送成功,返回其他认为失败。
+
+---
+
+## 推送类型列表
+
+| 序号 | 推送类型 | 说明 |
+|------|----------|------|
+| 1 | [库存推送](#1-库存推送) | 库存变更时触发 |
+| 2 | [发货推送(旧版)](#2-发货推送旧版) | 发货时触发 |
+| 3 | [发货推送(新)](#3-发货推送新) | 发货时触发(需联系开启) |
+| 4 | [路由推送](#4-路由推送) | 物流路由更新时触发 |
+| 5 | [入库推送](#5-入库推送) | 退货入库时触发 |
+| 6 | [订单流程消息推送](#6-订单流程消息推送) | 订单流程状态变更时触发 |
+| 7 | [发货单推送](#7-发货单推送) | 发货单创建或状态变更时触发 |
+| 8 | [退货单推送](#8-退货单推送) | 退货单创建或状态变更时触发 |
+
+---
+
+## 1. 库存推送
+
+**推送时机:** ERP系统中商品库存发生变更时触发
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| productId | 否 | String | 平台商品Id |
+| skuId | 否 | String | 平台商品SkuId |
+| skuCode | 否 | String | 平台商品Sku编码 |
+| shopId | 否 | String | 当前商品所属店铺ID |
+| quantity | 否 | String | 根据店铺选择的上传类型×上传比例 |
+| modifyDate | 否 | String | 库存变更时间 |
+| timestamp | 否 | String | 时间戳(毫秒) |
+| sign | 否 | String | 签名 |
+
+### 响应参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| state | 否 | boolean | 响应结果:true-成功;false-失败 |
+| code | 否 | int | 响应码:0-成功;1-错误 |
+| message | 否 | String | 错误信息 |
+
+---
+
+## 2. 发货推送(旧版)
+
+**推送时机:** 发货时触发
+
+**推送须知:** 推送成功后,如果当前订单在对方系统是整单发货,请调用 `foonsu.erp.orders.save` 接口同步当前订单为已发货;如果是部分发货可同步成部分发货。
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| orderKind | 否 | String | 订单类别 |
+| logisticsCompanyCode | 否 | String | 物流公司编码 |
+| tradeNo | 否 | String | 交易单号 |
+| logisticsNo | 否 | String | 运单号 |
+| timestamp | 否 | String | 时间戳(毫秒) |
+| sign | 否 | String | 签名 |
+
+**返回结果:** 返回 `success` 认为推送成功。
+
+---
+
+## 3. 发货推送(新)
+
+**推送时机:** 发货时触发(对接此推送方式需要联系对接负责人员为企业开启)
+
+**推送须知:** 推送成功后,如果当前订单在对方系统是整单发货,请调用 `foonsu.erp.orders.save` 接口同步当前订单为已发货。
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pushJson | 否 | String | 推送内容Json字符串 |
+| timestamp | 否 | String | 时间戳(毫秒) |
+| sign | 否 | String | 签名 |
+
+### pushJson 推送内容参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| logisticsCompanyCode | 否 | String | 物流公司编码 |
+| externalStorageCode | 否 | String | 外部仓库编码 |
+| tradeNo | 否 | String | 交易单号 |
+| logisticsNo | 否 | String | 运单号 |
+| orderKind | 否 | String | 订单类别 |
+| addLogistcisNo | 否 | String | 追加运单号 |
+| subLogistcisNo | 否 | String | 子运单号 |
+| payAmount | 否 | BigDecimal | 付款金额 |
+| postAmount | 否 | BigDecimal | 运费 |
+| deliveryOrderParentGoodsList | 否 | List[Object] | 发货父商品列表 |
+| deliveryOrderGoodsList | 否 | List[Object] | 发货商品列表 |
+| packages | 否 | List[Object] | 订单包裹信息 |
+
+### deliveryOrderParentGoodsList 参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| goodsId | String | 商品id |
+| goodsCode | String | 系统商品编码 |
+| goodsName | String | 商品名称 |
+| goodsQuantity | BigDecimal | 商品数量 |
+| goodsUnit | String | 商品单位 |
+| goodsPlatformCode | String | 平台商品编码 |
+| platformGoodsCode | String | 平台商品id |
+| platformQuantity | BigDecimal | 平台数量 |
+| payAmount | BigDecimal | 付款金额 |
+| batchList | String | 唯一码/序列号列表,多个逗号隔开 |
+
+### deliveryOrderGoodsList 参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| goodsId | String | 商品id |
+| parentGoodsId | String | 父商品id |
+| goodsCode | String | 商品编码 |
+| goodsName | String | 商品名称 |
+| goodsQuantity | BigDecimal | 商品数量 |
+| goodsUnit | String | 商品单位 |
+| goodsPlatformCode | String | 平台商品编码 |
+| platformGoodsCode | String | 平台商品id |
+| platformQuantity | BigDecimal | 平台数量 |
+| payAmount | BigDecimal | 付款金额 |
+| batchList | String | 唯一码/序列号列表,多个逗号隔开 |
+
+### packages 参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| expressCode | String | 运单号 |
+| items | List[Object] | 商品列表 |
+| packageCode | BigDecimal | 包裹编号 |
+| batchCode | String | 唯一码/序列号列表,多个逗号隔开 |
+
+### items 参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| itemCode | String | 商品编码 |
+| itemId | String | 商品仓储系统编码 |
+| quantity | Long | 包裹内该商品的数量 |
+
+### 推送示例
+
+```json
+{
+  "pushJson": "{\"addLogistcisNo\":\"SF1040358886694,SF1040358886709,SF1310010989521\",\"deliveryOrderGoodsList\":[{\"goodsCode\":\"S1110\",\"goodsName\":\"测试商品\",\"goodsQuantity\":2.4,\"batchList\":\"A0001,A0002\"}],\"logisticsCompanyCode\":\"01\",\"logisticsNo\":\"SF1310010946622\",\"subLogistcisNo\":\"\",\"tradeNo\":\"2999\",\"packages\":[{\"expressCode\":\"fake_data\",\"items\":[{\"itemCode\":\"fake_data\",\"itemId\":\"fake_data\",\"quantity\":66}],\"packageCode\":\"fake_data\",\"batchCode\":\"A0001,A0002\"}],\"externalStorageCode\":\"121212\"}",
+  "sign": "58c3f00cc3792c9ad6f0c7575154a518",
+  "timestamp": "1611562103183"
+}
+```
+
+---
+
+## 4. 路由推送
+
+**推送时机:** 物流路由信息更新时触发(如揽件、中转、派送、签收等)
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| routePushList | 否 | String | 路由消息集合(JSON数组字符串) |
+| timestamp | 否 | String | 时间戳(毫秒) |
+| sign | 否 | String | 签名 |
+
+### routePushList 对象参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| acceptAddress | String | 路由发生的地点 |
+| acceptTime | Date | 路由发生的时间 |
+| exceptionType | String | 路由异常状态:0-正常;1-揽件超时;2-中转超时;3-派送超时;4-虚假签收;5-问题件;6-退件;7-拒收 |
+| logisticsNo | String | 运单号 |
+| parcelType | String | 路由包裹状态:1-已发货未揽件;2-已揽收未中转;3-已中转未派送;4-已派送未签收;5-已派送已签收;6-异常单;7-拒收;8-已送达 |
+| remark | String | 备注 |
+| expressman | String | 派送员姓名(目前只有顺丰路由才有该字段) |
+| expressmanMobile | String | 派送员电话(目前只有顺丰路由才有该字段) |
+| tradeNo | String | 交易单号 |
+
+### 请求示例
+
+```json
+{
+  "sign": "695eca7dcadd9fac7cc678f284553862",
+  "routePushList": "[{\"acceptAddress\":\"深圳市\",\"acceptTime\":\"2020-04-15 21:50:18\",\"exceptionType\":\"0\",\"logisticsNo\":\"SF1011737074881\",\"parcelType\":\"5\",\"remark\":\"已派送已签收\"},{\"acceptAddress\":\"深圳市\",\"acceptTime\":\"2020-04-15 20:50:18\",\"exceptionType\":\"0\",\"logisticsNo\":\"SF1011737074881\",\"parcelType\":\"4\",\"remark\":\"已派送未签收\"}]",
+  "timestamp": "1590042103647"
+}
+```
+
+---
+
+## 5. 入库推送
+
+**推送时机:** 退货商品入库时触发
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| orderNo | 否 | String | 退货单编号 |
+| afterSaleOrderId | **是** | String | 平台售后单号(平台退货单编号) |
+| tradeNo | **是** | String | 平台交易单号 |
+| warehouseId | 否 | Long | 仓库ID |
+| warehouseName | 否 | String | 仓库名称 |
+| stockType | 否 | String | 入库类型:1-退货入库 |
+| statusDate | 否 | String | 入库时间 |
+| timestamp | 否 | String | 时间戳(毫秒) |
+| sign | 否 | String | 签名 |
+
+### 请求示例
+
+```json
+{
+  "orderNo": "DRO274201560000",
+  "warehouseId": "9900100000000082",
+  "stockType": "1",
+  "sign": "2f045f4e12b37bb8bafc5f4785f36f56",
+  "warehouseName": "深圳仓",
+  "timestamp": "1655284940722"
+}
+```
+
+---
+
+## 6. 订单流程消息推送
+
+**推送时机:** 订单流程状态变更时触发(接单、客审、打印物流单、打印发货单、外仓操作等)
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| shopId | 否 | String | 店铺Id |
+| tradeNo | 否 | String | 交易单号 |
+| status | 否 | String | 状态:1-已接单;2-已客审;3-已打印物流单;4-已打印发货单;5-外仓已接单;6-外仓已拣货;7-外仓已打包;8-外仓已发货;9-订单已同步外仓;10-订单已从外仓取消;11-订单异常;12-订单已作废 |
+| exceptionMessage | 否 | String | 订单异常信息 |
+| operationDate | 否 | String | 操作时间 |
+| operationTimestamp | 否 | String | 操作时间戳(毫秒级) |
+| timestamp | 否 | String | 当前时间戳(毫秒) |
+| sign | 否 | String | 签名 |
+
+### 响应参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| state | 否 | boolean | 响应结果:true-成功;false-失败 |
+| code | 否 | int | 响应码:0-成功;1-错误 |
+| message | 否 | String | 错误信息 |
+
+---
+
+## 7. 发货单推送
+
+**推送时机:** 发货单创建或状态变更时触发
+
+### 请求参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| deliveryOrdersId | String | 发货单ID |
+| deliverOrderNo | String | 发货单号 |
+| orderNo | String | 订单编号 |
+| shopId | String | 当前商品所属店铺ID |
+| outShopId | String | 外部店铺ID |
+| tradeNo | String | 平台交易单号 |
+| deliveryDate | String | 发货时间 |
+| sourceCreateDate | String | 订单创建时间 |
+| postAmount | BigDecimal | 运费 |
+| goodsWeight | BigDecimal | 重量 |
+| systemLogisticsCompanyCode | String | 快递公司编码 |
+| logisticsNo | String | 快递单号(运单号) |
+| logisticsCompanyNameZh | String | 快递公司 |
+| orderKind | String | 订单类别 |
+| expressType | String | 业务类型 |
+| payAmount | BigDecimal | 付款金额 |
+| platformPromotionAmount | BigDecimal | 店铺让利金额 |
+| orderAgioAmount | BigDecimal | 平台让利金额 |
+| shopArrivalAmount | BigDecimal | 店铺到账金额 |
+| receiverName | String | 收件人名称 |
+| receiverMobile | String | 收件人手机 |
+| receiverPhone | String | 收件人电话 |
+| receiverProvince | String | 收件人省份 |
+| receiverCity | String | 收件人城市 |
+| receiverDistrict | String | 收件人区/县级市 |
+| receiverAddress | String | 收件人地址 |
+| payDate | String | 付款时间 |
+| operationDate | String | 操作时间 |
+| orderStatus | String | 单据状态 |
+| platformCode | String | 平台编号 |
+| deliveryStatus | String | 发货状态 |
+| warehouseName | String | 发货仓库 |
+| warehouseId | Long | 发货仓库id |
+| outWarehouseId | Long | 外部仓库ID |
+| oriChangeOrderNo | String | 当前发货单原换货单号 |
+| remark | String | 系统备注 |
+| sellerMessage | String | 卖家留言 |
+| buyerMessage | String | 买家留言 |
+| sendName | String | 发件人名称 |
+| sendProvince | String | 发件人省份 |
+| sendCity | String | 发件人城市 |
+| sendDistrict | String | 发件人区/县级市 |
+| sendAddress | String | 发件人地址 |
+| sendMobile | String | 发件人手机 |
+| sendPhone | String | 发件人电话 |
+| sendZipCode | String | 发件人邮编 |
+| bicOrderCode | String | BIC订单码 |
+| shopCode | String | 店铺编码 |
+| platformWarehouseCode | String | 平台仓库编码 |
+| externalStorageCode | String | 仓储仓库代码 |
+| desensitizeReceiverName | String | 脱敏后的收件人名称 |
+| desensitizeReceiverMobile | String | 脱敏后的收件人手机 |
+| desensitizeReceiverPhone | String | 脱敏后的收件人电话 |
+| desensitizeReceiverAddress | String | 脱敏后的收件人地址 |
+| merchantSubsidyAmount | String | 卖家承担的优惠金额 |
+| enterpriseId | String | 企业号 |
+| shopName | String | 店铺名称 |
+| logisticsCompanyCode | String | 物流公司编码 |
+| insuranceType | String | 保价类型 |
+| insureFlag | String | 是否保价 |
+| insuranceAmount | BigDecimal | 保价金额 |
+| postAmountPromotion | BigDecimal | 运费优惠 |
+| deliveryOrdersGoodsList | array | 发货订单商品明细列表 |
+| ordersPayList | array | 发货单支付方式列表 |
+| ordersInvoice | array | 订单发票明细列表 |
+
+### 发货订单商品明细参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| outGoodsId | Long | 外部商品ID |
+| outKindId | Long | 外部类别ID |
+| outUnitId | Long | 外部单位ID |
+| goodsCode | String | 商品编码 |
+| goodsName | String | 商品名称 |
+| unit | String | 商品单位 |
+| goodsSpecs | String | 商品规格 |
+| quantity | BigDecimal | 购买数量 |
+| realPrice | BigDecimal | 实际售价 |
+| payAmount | BigDecimal | 实际金额 |
+| taxRate | BigDecimal | 税率 |
+| taxType | String | 税率类型:0-含税;1-免税;2-未税 |
+| combinationFlag | String | 商品组合类型:0-普通商品;1-组合父商品;2-组合子商品 |
+| tradeNo | String | 交易单号 |
+| deliverOrderNo | String | 发货单号 |
+| agioAmount | BigDecimal | 折扣金额 |
+| afterAgioAmount | BigDecimal | 让利后金额 |
+| platformGoodsName | String | 平台商品名称 |
+| platformGoodsSpecs | String | 平台商品规格 |
+| gift | String | 是否赠品:1-赠品;0-不是赠品 |
+| authorId | String | 直播主播id(达人id) |
+| authorName | String | 直播主播名称(达人姓名) |
+| picUrl | String | 图片链接 |
+| ordersBatchs | List[String] | 商品唯一码列表 |
+| useGovSubsidy | String | 是否使用国补:0-否;1-是 |
+| ordersBatchsAndSn | array | 商品唯一码和SN码列表 |
+| supplierShopId | String | 销售公司ID |
+| supplierShopName | String | 销售公司名称 |
+| platformPromotionAmount | BigDecimal | 平台优惠金额 |
+| shopPromotionAmount | BigDecimal | 店铺优惠金额 |
+| govPromotionAmount | BigDecimal | 电商国补金额 |
+| paymentPromotionAmount | BigDecimal | 支付渠道国补金额 |
+| platformPaymentPromotionAmount | BigDecimal | 支付渠道优惠(平台承担) |
+| shopPaymentPromotionAmount | BigDecimal | 支付渠道优惠(商家承担) |
+| externalDetailNo | String | 外部系统单据行号 |
+
+### 订单发票明细参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| invoiceKind | String | 发票种类:1-增值专用发票;2-增值普通发票 |
+| invoiceTitleKind | String | 发票种类:1-个人;2-企业 |
+| invoiceTitleType | String | 发票类型:1-纸质发票;2-电子发票 |
+| invoiceTitle | String | 发票抬头 |
+| invoiceContent | String | 发票内容 |
+| taxpayerNumber | String | 纳税人识别号 |
+| depositBank | String | 开户行 |
+| invoiceAmount | BigDecimal | 发票金额 |
+| phone | String | 电话 |
+| address | String | 地址 |
+| remark | String | 备注 |
+| unvoiceAmount | BigDecimal | 未开票金额 |
+| accounts | String | 帐号 |
+
+### 支付方式参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| payTypeCode | String | 支付方式编码:1-支付宝;2-微信;3-线下支付;4-在线支付;5-代收货款;6-银行转账 |
+| payTypeName | String | 支付方式名称 |
+| orderNo | String | 订单编号 |
+
+### 商品唯一码和SN码列表明细
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| batchNo | String | 唯一码 |
+| sn | String | sn码 |
+
+---
+
+## 8. 退货单推送
+
+**推送时机:** 退货单创建或状态变更时触发
+
+### 请求参数
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| shopPlatformCode | String | 平台编码 |
+| deliverReturnOrderId | String | 退货单ID |
+| deliverOrderNo | String | 发货单号 |
+| deliverReturnOrderNo | String | 退货单号 |
+| orderNo | String | 订单编号 |
+| tradeNo | String | 平台交易单号 |
+| shopId | String | 当前商品所属店铺ID |
+| outShopId | String | 外部店铺ID |
+| shopName | String | 店铺名称 |
+| platformReturnNo | String | 平台退货单号 |
+| orderSourceCode | String | 建单类型:1-手工建单;2-平台单 |
+| returnWarehouseId | String | 退回仓库id |
+| returnWarehouseName | String | 退回仓库 |
+| changeWarehouseId | String | 换货的仓库id |
+| changeWarehouseName | String | 换货仓库 |
+| returnLogisticsCompanyId | String | 退回物流公司Id |
+| changeLogisticsCompanyId | String | 换出物流公司id |
+| returnLogisticsNo | String | 退回运单号 |
+| refundAmount | String | 退款金额 |
+| returnDate | String | 退回入仓时间 |
+| remark | String | 备注 |
+| receiverName | String | 收件人名称 |
+| receiverMobile | String | 收件人手机 |
+| receiverPhone | String | 收件人电话 |
+| receiverProvince | String | 收件人省份 |
+| receiverCity | String | 收件人城市 |
+| receiverDistrict | String | 收件人区/县级市 |
+| receiverAddress | String | 收件人地址 |
+| encryptReceiverCode | String | 加密收件人编码 |
+| refundReason | String | 退款原因 |
+| agreeToReturn | String | 审核状态 |
+| urgentOrder | String | 加急订单 |
+| status | String | 收货入仓状态 |
+| createDate | String | 创建时间 |
+| statusDate | String | 收货入仓时间 |
+| agreeDate | String | 审核时间 |
+| creator | String | 创建人 |
+| returnType | String | 退货类别 |
+| shopCode | String | 店铺编码 |
+| platformWarehouseCode | String | 平台仓库编码 |
+| externalStorageCode | String | 仓储仓库代码 |
+| returnKind | String | 退货类别 |
+| platformReturnStatus | String | 平台退货状态 |
+| refundableAmount | String | 应退金额 |
+| returnOrdersGoodsList | array | 退回商品列表 |
+| changeOrdersGoodsList | array | 换出商品列表 |
+
+### 退货/换货商品明细
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| tradeNo | String(50) | 交易单号 |
+| goodsCode | String(50) | 商品编码 |
+| outGoodsId | Long(20) | 外部商品ID |
+| goodsName | String(400) | 商品名称 |
+| unit | String(100) | 商品单位 |
+| goodsSpecs | String(100) | 规格名称 |
+| quantity | BigDecimal | 商品数量 |
+| price | BigDecimal | 标准售价 |
+| amount | BigDecimal | 标准金额 |
+| realPrice | BigDecimal | 实际售价 |
+| payAmount | BigDecimal | 实际金额 |
+| agioAmount | BigDecimal | 折扣金额 |
+| taxRate | BigDecimal | 税率 |
+| taxType | String | 税率类型:0-含税;1-免税;2-未税 |
+| remark | String(100) | 备注 |
+| ordersBatchs | List[String] | 商品唯一码列表 |
+| useGovSubsidy | String | 是否使用国补:0-否;1-是 |
+| ordersBatchsAndSn | array | 商品唯一码和SN码列表 |
+
+### 响应参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| state | 否 | boolean | 响应结果:true-成功;false-失败 |
+| code | 否 | int | 响应码:0-成功;1-错误 |
+| message | 否 | String | 错误信息 |

+ 70 - 0
qdb-sdk/11-路由管理.md

@@ -0,0 +1,70 @@
+# 路由管理
+
+路由管理分类提供物流路由查询接口,共 **1** 个API。
+
+---
+
+## 接口列表
+
+| 序号 | 接口名称 | Method | 说明 |
+|------|----------|--------|------|
+| 1 | [路由查询](#1-路由查询) | `foonsu.erp.routeRecord.list` | 查询物流路由信息 |
+
+---
+
+## 1. 路由查询
+
+**Method:** `foonsu.erp.routeRecord.list`
+
+**请求方式:** POST
+
+**简要描述:** 查询物流路由信息
+
+### 请求参数
+
+| 参数名 | 必选 | 类型 | 说明 |
+|--------|------|------|------|
+| pageIndex | 否 | Integer | 当前页码 |
+| pageSize | 否 | Integer | 默认20,最大不超过50 |
+| logisticsNo | **是** | String | 运单号 |
+| systemLogisticsCompanyCode | **是** | String | 系统物流公司编码,例如:顺丰-01 |
+
+### data(List)返回参数(路由列表)
+
+| 参数名 | 类型 | 说明 |
+|--------|------|------|
+| parcelType | String | 包裹状态:1-已发货未揽件;2-已发货未中转;3-已中转未派送;4-已派送未签收;5-已派送已签收;6-异常单 |
+| exceptionType | String | 异常状态:0-正常;1-揽件超时;2-中转超时;3-派送超时;4-虚假签收;5-问题件;6-退件 |
+| logisticsNo | String | 运单号 |
+| logisticsType | String | 运单号类型:1-主单号;2-追加单号 |
+| systemLogisticsCompanyCode | String | 系统物流公司编码 |
+| acceptTime | Date | 路由发生的时间 |
+| acceptAddress | String | 路由发生的地点 |
+| remark | String | 具体描述 |
+
+### 返回示例
+
+```json
+{
+  "errorCode": null,
+  "msg": "操作成功",
+  "data": {
+    "total": 3,
+    "data": [
+      {
+        "parcelType": "5",
+        "exceptionType": "0",
+        "logisticsNo": "SF1011656081787",
+        "logisticsType": "1",
+        "systemLogisticsCompanyCode": "01",
+        "acceptTime": "2020-04-17 14:20:42",
+        "acceptAddress": "嘉兴市",
+        "remark": "快件交给xxx,正在派送途中(联系电话:xxx)"
+      }
+    ]
+  },
+  "date": null,
+  "version": null,
+  "success": true
+}
+```