加工单接口文档(storeprocess)
基本信息
- 接口地址:
/index.php/api - 请求方法:
POST - 接口类型:接收方接口(第三方 WMS 平台推送 → OMS 接收)
- 路由参数:
method = wms.storeprocess.{action}
接口方法列表
| 接口名 | 方法 | 功能描述 |
|---|---|---|
| wms.storeprocess.status_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.storeprocess.status_update |
| sign | string | 是 | 签名 | 用于验证请求合法性 |
签名算法说明
- 生成公式:
sign = strtoupper(md5(strtoupper(md5(assemble($params))). $token)) - 要点:
- 参与签名的参数集合不包含
sign本身;常以键名排序后按约定拼装 - 首次 md5 后转大写,与
token拼接后再 md5,最终再转大写 - 保持编码一致、去除多余空白
- 参与签名的参数集合不包含
接收参数(业务参数)
基础字段
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| processOrderCode | string | 是 | 加工单号(与 processOrderId 二选一) |
| processOrderId | string | 否 | WMS加工单ID(与 processOrderCode 二选一) |
| orderType | string | 否 | 订单类型 |
| orderCompleteTime | string | 否 | 订单完成时间,格式:Y-m-d H:i:s |
| actualQty | int | 否 | 实际数量 |
| warehouseCode | string | 否 | 仓库编码 |
| remark | string | 否 | 备注 |
| extendProps | string/array | 否 | 扩展属性(JSON字符串或数组) |
原料明细(materialitems)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| materialitems | string | 是 | 原料明细(JSON字符串),数组格式 |
materialitems 格式:
json
{
"item": [
{
"itemCode": "SKU001",
"itemId": "ITEM001",
"inventoryType": "ZP",
"quantity": 10,
"productDate": "2024-01-01",
"expireDate": "2025-01-01",
"produceCode": "PROD001",
"batchCode": "BATCH001",
"remark": "备注"
}
]
}item 数组元素字段:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| itemCode | string | 是 | 商品货号 |
| itemId | string | 否 | 商品ID |
| inventoryType | string | 否 | 库存类型:ZP(良品)、CC(残次品) |
| quantity | int | 是 | 数量 |
| productDate | string | 否 | 生产日期,格式:Y-m-d |
| expireDate | string | 否 | 过期日期,格式:Y-m-d |
| produceCode | string | 否 | 生产批次号 |
| batchCode | string | 否 | 批次号 |
| remark | string | 否 | 备注 |
成品明细(productitems)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| productitems | string | 是 | 成品明细(JSON字符串),数组格式 |
productitems 格式:与 materialitems 格式相同
注意:
materialitems和productitems参数需要 JSON 编码后传递- 支持单个 item 或多个 item 数组格式
- 相同
itemCode的明细会自动合并数量
响应参数
响应格式统一为 JSON,包含以下字段:
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| rsp | string | 是 | 响应状态:succ(成功)或 fail(失败) |
| msg | string | 否 | 响应消息(成功时包含操作描述,失败时包含错误信息) |
| data | object | 否 | 响应数据(成功时可能包含加工单号等信息) |
数据示例
请求示例(加工单确认)
json
{
"flag": "erpapi",
"app_id": "ecos.ome",
"method": "wms.storeprocess.status_update",
"timestamp": 1700000000,
"sign": "...",
"processOrderCode": "MP20250101001",
"orderType": "PROCESS",
"orderCompleteTime": "2025-01-01 10:00:00",
"warehouseCode": "WH001",
"materialitems": "{\"item\":[{\"itemCode\":\"SKU001\",\"quantity\":10,\"batchCode\":\"BATCH001\"}]}",
"productitems": "{\"item\":[{\"itemCode\":\"SKU002\",\"quantity\":5,\"batchCode\":\"BATCH002\"}]}"
}响应示例
响应成功
加工单确认成功(wms.storeprocess.status_update):
json
{
"rsp": "succ",
"msg": "加工单确认成功",
"data": {
"processOrderCode": "MP20250101001"
}
}响应失败
加工单确认失败(加工单号必填):
json
{
"rsp": "fail",
"msg": "加工单号必填"
}加工单确认失败(缺少materialitems):
json
{
"rsp": "fail",
"msg": "缺少materialitems"
}加工单确认失败(缺少productitems):
json
{
"rsp": "fail",
"msg": "缺少productitems"
}业务描述
功能说明
加工单用于处理商品加工业务,包含原料消耗和成品产出两个部分。
明细处理
- 原料明细(materialitems):记录加工消耗的原料商品和数量
- 成品明细(productitems):记录加工产出的成品商品和数量
- 数量合并:相同
itemCode的明细会自动合并数量 - 批次信息:支持批次管理的商品需要传递批次信息
幂等性
- 相同
processOrderCode或processOrderId重复推送时,系统会进行幂等处理
错误码定义
- E_PARAM:参数缺失或格式不正确(如:加工单号必填、缺少materialitems、缺少productitems等)
- E_STATE:业务状态不允许
- E_DUPLICATE:重复提交
- E_INTERNAL:内部处理异常
