转储单接口文档(transferorder)
基本信息
- 接口地址:
/index.php/api - 请求方法:
POST - 接口类型:接收方接口(第三方 WMS 平台推送 → OMS 接收)
- 路由参数:
method = wms.transferorder.{action}
接口方法列表
| 接口名 | 方法 | 功能描述 |
|---|---|---|
| wms.transferorder.update | POST | 转储单状态更新(支持仓库间调拨) |
系统级参数
| 参数名 | 类型 | 必填 | 名称 | 描述 |
|---|---|---|---|---|
| flag | string | 是 | 接入标识 | 固定值 erpapi |
| app_id | string | 是 | 应用ID | 如 ecos.ome |
| certi_id | string | 是 | 证书ID | 系统证书编号 |
| from_node_id | string | 是 | 来源节点 | 推送方节点ID |
| node_id | string | 是 | 目标节点 | 店铺节点ID(OMS节点) |
| node_type | string | 是 | 节点类型 | 如 ecos.ome |
| timestamp | int | 是 | 时间戳 | 10位时间戳 |
| method | string | 是 | 接口方法名 | 形如 wms.transferorder.update |
| sign | string | 是 | 签名 | 用于验证请求合法性 |
签名算法说明
- 生成公式:
sign = strtoupper(md5(strtoupper(md5(assemble($params))). $token)) - 要点:
- 参与签名的参数集合不包含
sign本身;常以键名排序后按约定拼装 - 首次 md5 后转大写,与
token拼接后再 md5,最终再转大写 - 保持编码一致、去除多余空白
- 参与签名的参数集合不包含
接收参数(业务参数)
基础字段
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| order_code | string | 是 | 转储单号(与 erp_order_code 二选一) |
| erp_order_code | string | 否 | ERP转储单号(与 order_code 二选一) |
| order_status | string | 是 | 转储单状态 |
| io_status | string | 否 | 转储状态(当 order_status 为空时使用) |
| from_warehouse_code | string | 否 | 源仓库编码 |
| to_warehouse_code | string | 否 | 目标仓库编码 |
| out_order_code | string | 否 | 出库单号 |
| in_order_code | string | 否 | 入库单号 |
| out_confirm_time | string | 否 | 出库确认时间,格式:Y-m-d H:i:s |
| in_confirm_time | string | 否 | 入库确认时间,格式:Y-m-d H:i:s |
| create_time | string | 否 | 创建时间,格式:Y-m-d H:i:s,默认当前时间 |
| owner_code | string | 否 | 货主编码 |
| extendProps | string/array | 否 | 扩展属性(JSON字符串或数组) |
转储明细(item)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| item | string | 否 | 转储明细(JSON字符串),数组格式 |
item 数组元素字段:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| product_bn | string | 是 | 商品货号 |
| normal_num | int | 否 | 良品数量 |
| defective_num | int | 否 | 残次品数量 |
| plan_count | int | 否 | 计划数量 |
| in_count | int | 否 | 入库数量 |
| order_code | string | 否 | 明细单号 |
| item_id | string | 否 | WMS明细ID |
注意:
item参数需要 JSON 编码后传递- 相同
product_bn的明细会自动合并数量(计划数量、入库数量、良品数量、残次品数量分别累加)
响应参数
响应格式统一为 JSON,包含以下字段:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| rsp | string | 是 | 响应状态:succ(成功)或 fail(失败) |
| msg | string | 否 | 响应消息(成功时包含操作描述,失败时包含错误信息) |
| data | object | 否 | 响应数据(成功时可能包含转储单号等信息) |
数据示例
请求示例(转储单状态更新)
json
{
"flag": "erpapi",
"app_id": "ecos.ome",
"method": "wms.transferorder.update",
"timestamp": 1700000000,
"sign": "...",
"order_code": "TRF20250101001",
"order_status": "FINISH",
"from_warehouse_code": "WH001",
"to_warehouse_code": "WH002",
"create_time": "2025-01-01 10:00:00",
"item": "[{\"product_bn\":\"SKU001\",\"normal_num\":10,\"defective_num\":0,\"plan_count\":10,\"in_count\":10}]"
}响应示例
响应成功
转储单状态更新成功(wms.transferorder.update):
json
{
"rsp": "succ",
"msg": "转储单状态更新成功",
"data": {
"order_code": "TRF20250101001"
}
}响应失败
转储单状态更新失败(转储单号必填):
json
{
"rsp": "fail",
"msg": "转储单号必填"
}转储单状态更新失败(参数不符合规范):
json
{
"rsp": "fail",
"msg": "参数不符合规范"
}业务描述
功能说明
转储单用于仓库间调拨,支持从一个仓库调拨商品到另一个仓库。
明细处理
- 数量合并:相同
product_bn的明细会自动合并,计划数量、入库数量、良品数量、残次品数量分别累加 - 数量字段:系统会记录计划数量(
plan_count)和入库数量(in_count),以及良品数量(normal_num)和残次品数量(defective_num)
幂等性
- 相同
order_code或erp_order_code重复推送时,如果状态不同,系统会更新状态 - 如果状态相同,系统会进行幂等处理
错误码定义
- E_PARAM:参数缺失或格式不正确(如:转储单号必填、参数不符合规范等)
- E_STATE:业务状态不允许
- E_DUPLICATE:重复提交
- E_INTERNAL:内部处理异常
