1. 简介
ISV需要对接qlink的第三方仓,需要看此文档
订单业务流程示意图:

2. 地址
环境 | 地址 |
---|---|
生产环境 | qlink-global.800best.com |
测试环境 | qlink-global-test.800best.com |
3. 环境要求
接口地址:第三方提供服务地址供qlink的ISV调用。 请求方式:
- Method: POST
- Content-Type: application/json
header参数:
字段名 | 类型 | 必填 | 备注 |
---|---|---|---|
appKey | String | Y | qlink给ISV的appkey |
sign | String | Y | 签名 |
warehouseType | String | N | 仓库类型 |
secret | String | N | 第三方仓秘钥。gwms用双方约定的秘钥验签 |
accessToken | String | N | accessToken |
refreshToken | String | N | refreshToken |
authInfo | String | N | gwms传物流商这边用到的授权信息。json格式 |
apiUrl | String | N | 服务请求域名: https://www.baidu.com |
authInfo 传值举例: "authInfo":[ {"authInfoKey":"MERCHANT_ID", "value":"BG2447"}, {"authInfoKey":"SECRET_KEY", "value":"f1dafc7b7c934d21327d990b0ea56cfcf4814ef699345a37010c07e02d5219a9"}, {"authInfoKey":"PRINT_SIZE", "value":""} ] 其中,MERCHANT_ID,SECRET_KEY,PRINT_SIZE均为物流商约定要传的字段,不同的物流商字段可能不同,都通过 json格式统一请求。
公共响应:
字段名 | 类型 | 必填 | 备注 |
---|---|---|---|
success | boolean | 是 | 业务处理是否成功 |
errorMsg | String | 否 | 业务处理异常消息 |
result | T | 否 | 具体接口返回数据 |
签名方式:
1、将appKey和content组成json字符串{"appKey":"appKey","content":"具体业务参数"},content为空时{"appKey":"appKey"}
2、将第三方分配的客户appSecret添加到json的末尾,得到待加密字串{"appKey":"appKey","content":"具体业务参数"}appSecret
3、对待加密字串做sha1加密得到签名(org.apache.commons.codec.digest.DigestUtils.sha1Hex(待加密字串))
4、将签名赋值到公共请求的sign字段
4. 仓库列表
描述: 获取所有的发货仓,用于后续下发入库单、库存同步、下发订单等流程
POST /global-api/v1/warehouse/initWarehouses
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseKey | 仓库key | Array | 是 |
返回信息:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseList | 仓库信息 | Array | ||
└ warehouseCode | 仓库编码 | String | 必填 | 需具有唯一性 |
└ warehouseName | 仓库名称 | String | 必填 | 需具有唯一性 |
请求示例:
返回示例:
5. 仓库物流列表
描述: initChannels接口就是用于获取仓库支持哪些物流的
POST /global-api/v1/warehouse/initChannels
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseKey | 仓库key | Array | 是 | |
warehouseCode | 仓库编码 | String | N |
返回信息:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
channelList | ArrayList | |||
└ channelCode | 仓库物流代码 | String | 必填 | 需具有唯一性 |
└ channelName | 仓库物流名称 | String | 必填 | |
└ warehouseCode | 仓库编码 | String | N | |
└ carrierName | 承运商名称 | String | N |
请求示例:
返回示例:
6. 创建订单
描述: 在ISV创建订单后会向仓库请求创建订单,以便仓库备货、发货
POST /global-api/v1/warehouse/createOrder
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseKey | 仓库key | String | 是 | |
orderNumber | 千易订单号 | String | 必填 | |
onlineOrderId | 平台订单号 | String | 必填 | 原始订单号,母单号 |
shopName | 店铺名称 | String | 必填 | |
warehouseCode | 仓库代码 | String | 必填 | |
logisticsCode | 发货渠道代码 | String | 必填 | |
platform | 平台 | String | 必填 | |
freight | 运费 | BigDecimal | 必填 | |
packageType | 包裹类型 | String | N | 默认NORMAL 普通包裹 OWN_PAKAGE 自发包裹 |
trackingNumber | 运单号 | String | N | 客供面单,包裹类型为自发包裹时必传 |
labelData | 面单 | String | N | 客供面单,包裹类型为自发包裹时必传,面单 数据为 PDF BASE64 |
codEnabled | 是否是cod订单 | Integer | 必填 | 1:cod订单 0:非cod订单 |
codPayAmount | cod订单金额 | BigDecimal | N | cod金额,cod订单必填 |
codCurrency | cod金额币种 | String | N | cod币种,cod订单必填 |
orderCreate | 订单创建时间 | Date | N | |
deliveryTime | 承诺送达时间 | Date | N | |
onlineShopId | 线上店铺id | String | N | 线上店铺id,只给部分仓库使用 |
receiver | 收件人信息 | Object | 必填 | |
└ name | 联系人 | String | 必填 | |
└ phone | 联系电话 | String | 必填 | |
联系邮箱 | String | Y | ||
└ country | 国家二字码 | String | 必填 | |
└ state | 省/州 | String | 必填 | |
└ city | 城市 | String | 必填 | |
└ district | 区 | String | N | |
└ address1 | 地址 1 | String | 必填 | |
└ address2 | 地址 2 | String | N | |
└ postalCode | 邮编 | String | 必填 | |
skuList | 订单商品信息 | Array | 必填 | |
└ sku | 仓库商品编码 | String | 必填 | |
└ erpSku | 商品编码 | String | 必填 | |
└ name | 商品名称 | String | 必填 | |
└ quantity | 数量 | String | 必填 | |
└ amount | 商品金额 | BigDecimal | 必填 | |
└ shippingPrice | 商品运费 | BigDecimal | N | |
└ hsCode | 海关编码 | String | N | |
└ chineseCustomsDeclarationName | 中文报关名 | String | N | |
└ englishCustomsDeclarationName | 英文报关名 | String | N |
返回信息:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseOrderNumber | 仓库订单号 | String | N |
请求示例:
返回示例:
7. 取消订单
描述: 用于ISV向仓库取消订单
POST /global-api/v1/warehouse/cancelOrder
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseKey | 仓库key | Array | 是 | |
orderNumber | 千易订单号 | String | 必填 | |
warehouseCode | 仓库编码 | String | N | |
warehouseOrderNumber | 仓库订单号 | String | N |
请求示例:
8. 查询订单信息
描述: 用于同步仓库的运单号、订单状态到千易
POST /global-api/v1/warehouse/getOrder
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
orderNumber | 千易订单号 | String | 必填 | |
warehouseCode | 仓库编码 | String | N | |
warehouseOrderNumber | 仓库订单号 | String |
返回信息:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
orderNumber | 千易订单号 | String | 必填 | |
wmsStatus | 第三方系统的出库订单状态 | String | 必填 | |
status | 千易出库单状态 | String | 必填 | 需由 wmsStatus 自行映射SENDING( 出 库 中 ) SUCCESS ( 已发货、 已出库) CANCEL(取消) FAILED(失败或异常) |
carrierName | 承运商名称 | String | N | |
trackingNumber | 运单号 | String | N | status 为 SUCCESS 时必填 |
failedReason | 失败原因 | String | N | status 为 FAILED 时必填 |
请求示例:
返回示例:
9. 库存同步
描述: 同步仓库的sku、sku库存信息到ISV
POST /global-api/v1/warehouse/syncInventory
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseKey | 仓库key | String | 是 | |
pageSize | 每页数量 | Integer | 必填 | |
page | 当前页 | Integer | 必填 | |
warehouseCode | 仓库编码 | String | 必填 | |
warehouseSku | 仓库商品编码 | String | N | |
返回信息:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
isLastPage | 是否是 最后一页 | Boolean | 必填 | true:最后一页false:不是最后一页 |
currentPage | 当前页 | Integer | 必填 | |
pageCount | 总页数 | Integer | 必填 | |
data | 库存信息 | List\ | ||
warehouseCode | 仓库编码 | String | 必填 | |
warehouseSku | 仓库商品编码 | String | 必填 | |
onwayQuantity | 在途数量 | String | Y | 默认 0 |
pendingQuantity | 待上架数量 | String | Y | 默认 0 |
sellableQuantity | 可售数量 | String | 必填 | |
unsellableQuantity | 不合格数量 | String | Y | 默认 0 |
reservedQuantity | 待出库数量 | String | Y | 默认 0 |
useQuantity | 占用数量 | String | Y | 默认 0 |
totalQuantity | 总库存数量 | String | 必填 |
请求示例:
返回示例:
10. 入库单创建
描述: 在ISV创建入库单后会向仓库请求创建入库单,目的是增加仓库sku的库存
POST /global-api/v1/warehouse/createAsnOrder
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseKey | 仓库key | String | 是 | |
asnNumber | 千易入库单号 | String | 必填 | |
warehouseCode | 仓库代码 | String | 必填 | |
customNumber | 参考号 | String | N | |
estimatedArrivalDate | 预计到货时间 | Long | 选填 | |
trackNumber | 运单号 | String | 选填 | |
type | 入库单类型 | String | 选填 | 入库单类型 |
orderNumber | erp订单号 | String | 选填 | 退货入库会有值 |
onlineOrderId | 线上订单号 | String | 选填 | 退货入库会有值 |
saleReturnReason | 退货原因 | String | 选填 | 退货入库会有值 |
skuList | 商品信息 | Array | 必填 | |
└ sku | 商品编码 | String | 必填 | |
└ name | 商品名称 | String | 选填 | |
└ quantity | 数量 | Number | 必填 | |
asnMarkSku | 装箱信息 | List | 选填 | |
└boxNumber | 箱号 | Number | 选填 | |
└ markCode | 箱唛号 | String | 选填 | |
└ quantity | 装箱数量 | Number | 选填 | |
└ sku | 商品编码 | String | 选填 | |
└ name | 商品名称 | String | 选填 |
请求示例:
返回示例:
11. 入库单查询
描述: 通过查询仓库入库单的状态,同步给ISV
POST /global-api/v1/warehouse/getAsnList
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseKey | 仓库key | String | 是 | |
asnNumbers | 千易入库单号(批量) | List <String> |
必填 | |
warehouseCode | 仓库编码 | String | 选填 |
返回信息:
字段名 | 字段描述 | 类型 | 必填 | 备注 | |
---|---|---|---|---|---|
asnNumber | 千易入库单号 | String | 必填 | ||
wmsStatus | 第三方系统的入库订单状态 | String | 必填 | 需由 wmsStatus 提供映射后的状态,映射表见下「入库单状态」 | |
referenceNumber | 仓库入库单号 | String | 必填 | ||
finishTime | 完成时间 | String | 必填 | ||
skuList | 商品信息 | Array | 必填 | ||
└ sku | 商品编码 | String | 必填 | ||
└ name | 商品名称 | String | 选填 | ||
└estimatedQuantity | 预计数量 | Number | 必填 | ||
└receivedQuantity | 已收数量 | Number | 必填 | ||
└goodQuantity | 良品数量 | Number | 必填 | ||
└badQuantity | 不良品数量 | Number | 必填 |
12. 入库单状态
枚举值 | 备注 |
---|---|
NEW | 新建 |
DELETED | 已删除 |
SHIPPING | 在途 |
RECEIVING | 收货中 |
FINISHED | 已完成 |
CLOSED | 已关闭 |
请求示例:
返回示例:
13. 入库单取消
描述: 用于ISV取消仓库入库单
POST /global-api/v1/warehouse/cancelAsnOrder
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseKey | 仓库key | String | 是 | |
asnNumbers | 千易入库单号(批量) | List <String> |
必填 | |
warehouseCode | 仓库编码 | String | 选填 |
返回信息:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
asnNumber | 千易入库单号 | String | 必填 | |
operation | 对入库单的操作 | String | 必填 | 取消:CANCEL |
info | 备注信息 | String | 选填 | 失败信息 |
请求示例:
返回示例:
14. 商品下发仓库
描述: ISV创建商品sku和仓库sku后下发映射关系给仓库,以便维护ISV和仓库的sku映射关系,仓库商品不存在新建,存在则更新
POST /global-api/v1/warehouse/insertSkuInfo
接口参数:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
warehouseKey | 仓库key | String | 是 | |
warehouseCode | 仓库编码 | String | 选填 | |
sku | 仓库商品SKU,最大255字符 | String | 必填 | |
erpSku | 商品SKU,最大255字符 | String | 必填 | |
title | 商品名称,最大255字符 | String | 选填 | |
barcode | 商品条码,最大255字符 | String | 选填 | |
specifications | 商品规格 | String | 选填 | |
imageUrl | 图片链接 | String | 选填 | |
weight | 毛重 | Decimal | 选填 | |
netWeight | 净重 | Decimal | 选填 | |
weightUnit | 重量单位 | String | 选填 | |
length | 长 | Decimal | 选填 | |
width | 宽 | Decimal | 选填 | |
height | 高 | Decimal | 选填 | |
dimensionUnit | 长度单位 | String | 选填 | |
itemPackage | 包装数量 | Number | 选填 |
返回信息:
字段名 | 字段描述 | 类型 | 必填 | 备注 |
---|---|---|---|---|
sku | 商品编码 | String | 必填 | |
operation | 对sku的操作 | String | 必填 | 新建:CREATE |
info | 备注信息 | String | 选填 | 失败信息 |
请求示例:
返回示例:
15. SDK调用
16. 支持仓库列表
仓库名称 | 仓库编码(warehouseKey) | 调试情况 | 仓库授权 | 仓库列表 | 仓库渠道列表 | 下发出库单 | 取消出库单 | 查询出库单 | 下发入库单 | 取消入库单 | 查询入库单 | 创建商品 | 同步库存 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
世晟海外仓 | SHISHENG |