8.4 KiB
8.4 KiB
Shopee 4.7 更新移库单接口测试用例
接口信息
- 接口:4.7 更新移库单
- URL:
POST http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/update_rt_order - Content-Type:
application/json - EDI 配置 key:
update_rt_order - WMS API:
shopee.inventory.racktransfer.updateRtOrder - XSLT:
edi-shopee/src/main/resources/xslt/out/4_7_update_rt_order.xslt
前置条件
- 本地已启动 EDI
9002和 WES9001。 - 测试库
shipment_header_ext1已包含 4.7 更新字段:urgentFlagfutureOrderQtyfutureSkuQtyoosOrderQty
- 测试库存在 RT 单:
whs_id = PHIXPrt_order_id = SH260709005004
SGL / RTSGL00020250102001当前用于验证单据不存在场景。
字段转换说明
请求报文使用 Shopee 原始字段,XSLT 负责转换到 WMS 内部字段:
| Shopee 字段 | WMS 字段 |
|---|---|
whs_id |
warehouseCode |
rt_order_list |
rtOrderList |
rt_order_id |
rtOrderId |
attr_list |
attrList |
urgent_flag |
shipment_header_ext1.urgentFlag,并同步 shipment_header.priority |
future_order_qty |
shipment_header_ext1.futureOrderQty |
future_sku_qty |
shipment_header_ext1.futureSkuQty |
oos_order_qty |
shipment_header_ext1.oosOrderQty |
测试结果汇总
| 用例 | 场景 | 预期结果 | 实测结果 |
|---|---|---|---|
| TC-01 | 真实 RT 单更新 future_order_qty |
成功,fail_order_id_list=[] |
通过 |
| TC-02 | 真实 RT 单更新 future_sku_qty |
成功,fail_order_id_list=[] |
通过 |
| TC-03 | 真实 RT 单更新 oos_order_qty |
成功,fail_order_id_list=[] |
通过 |
| TC-04 | 真实 RT 单全字段更新 | 成功,fail_order_id_list=[] |
通过 |
| TC-05 | 不存在 RT 单 | 接口成功,单号进入 fail_order_id_list |
通过 |
| TC-06 | 重复 attr_key |
返回具体无效报文错误 | 通过 |
| TC-07 | 不支持 attr_key |
返回具体无效报文错误 | 通过 |
TC-01 更新 future_order_qty
curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/update_rt_order' \
--header 'Content-Type: application/json' \
--data-raw '{
"whs_id": "PHIXP",
"rt_order_list": [
{
"rt_order_id": "SH260709005004",
"attr_list": [
{
"attr_key": "future_order_qty",
"attr_value_id": "21",
"attr_value_name": "21"
}
]
}
],
"update_event": 2
}'
预期结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":[]}}
实测结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":[]}}
TC-02 更新 future_sku_qty
curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/update_rt_order' \
--header 'Content-Type: application/json' \
--data-raw '{
"whs_id": "PHIXP",
"rt_order_list": [
{
"rt_order_id": "SH260709005004",
"attr_list": [
{
"attr_key": "future_sku_qty",
"attr_value_id": "22",
"attr_value_name": "22"
}
]
}
],
"update_event": 2
}'
预期结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":[]}}
实测结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":[]}}
TC-03 更新 oos_order_qty
curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/update_rt_order' \
--header 'Content-Type: application/json' \
--data-raw '{
"whs_id": "PHIXP",
"rt_order_list": [
{
"rt_order_id": "SH260709005004",
"attr_list": [
{
"attr_key": "oos_order_qty",
"attr_value_id": "23",
"attr_value_name": "23"
}
]
}
],
"update_event": 2
}'
预期结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":[]}}
实测结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":[]}}
TC-04 全字段更新
curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/update_rt_order' \
--header 'Content-Type: application/json' \
--data-raw '{
"whs_id": "PHIXP",
"rt_order_list": [
{
"rt_order_id": "SH260709005004",
"attr_list": [
{
"attr_key": "urgent_flag",
"attr_value_id": "5",
"attr_value_name": "5"
},
{
"attr_key": "future_order_qty",
"attr_value_id": "31",
"attr_value_name": "31"
},
{
"attr_key": "future_sku_qty",
"attr_value_id": "32",
"attr_value_name": "32"
},
{
"attr_key": "oos_order_qty",
"attr_value_id": "33",
"attr_value_name": "33"
}
]
}
],
"update_event": 2
}'
预期结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":[]}}
实测结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":[]}}
TC-05 不存在 RT 单
curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/update_rt_order' \
--header 'Content-Type: application/json' \
--data-raw '{
"whs_id": "SGL",
"rt_order_list": [
{
"rt_order_id": "RTSGL00020250102001",
"attr_list": [
{
"attr_key": "future_order_qty",
"attr_value_id": "1",
"attr_value_name": "1"
}
]
}
],
"update_event": 2
}'
预期结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":["RTSGL00020250102001"]}}
实测结果:
{"retcode":0,"message":"success","data":{"fail_order_id_list":["RTSGL00020250102001"]}}
分析:报文和字段转换成功,WES 未查到该 RT 单,按协议放入 fail_order_id_list。
TC-06 重复 attr_key
curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/update_rt_order' \
--header 'Content-Type: application/json' \
--data-raw '{
"whs_id": "PHIXP",
"rt_order_list": [
{
"rt_order_id": "SH260709005004",
"attr_list": [
{
"attr_key": "urgent_flag",
"attr_value_id": "1",
"attr_value_name": "1"
},
{
"attr_key": "urgent_flag",
"attr_value_id": "2",
"attr_value_name": "2"
}
]
}
],
"update_event": 2
}'
预期结果:
{"retcode":-10010002,"message":"无效的消息体: rtOrderList[0].attrList[1].attrKey is duplicated: urgent_flag","data":{}}
实测结果:
{"retcode":-10010002,"message":"无效的消息体: rtOrderList[0].attrList[1].attrKey is duplicated: urgent_flag","data":{}}
TC-07 不支持 attr_key
curl --location --request POST 'http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/update_rt_order' \
--header 'Content-Type: application/json' \
--data-raw '{
"whs_id": "PHIXP",
"rt_order_list": [
{
"rt_order_id": "SH260709005004",
"attr_list": [
{
"attr_key": "unknown_flag",
"attr_value_id": "1",
"attr_value_name": "1"
}
]
}
],
"update_event": 2
}'
预期结果:
{"retcode":-10010002,"message":"无效的消息体: rtOrderList[0].attrList[0].attrKey is not supported: unknown_flag","data":{}}
实测结果:
{"retcode":-10010002,"message":"无效的消息体: rtOrderList[0].attrList[0].attrKey is not supported: unknown_flag","data":{}}
历史问题记录
字段添加前,真实 RT 单更新 future_order_qty 会返回系统异常,WES 日志包含:
Unknown column 'futureOrderQty' in 'field list'
原因:测试库 shipment_header_ext1 缺少 4.7 新增字段。
处理:执行仓库已有 migration:
ALTER TABLE `shipment_header_ext1`
ADD COLUMN `futureOrderQty` int NOT NULL DEFAULT 0 COMMENT 'Shopee预计订单数量' AFTER `urgentFlag`,
ADD COLUMN `futureSkuQty` int NOT NULL DEFAULT 0 COMMENT 'Shopee预计SKU数量' AFTER `futureOrderQty`,
ADD COLUMN `oosOrderQty` int NOT NULL DEFAULT 0 COMMENT 'Shopee缺货订单数量' AFTER `futureSkuQty`;
字段添加后,future_order_qty、future_sku_qty、oos_order_qty 和全字段组合均已 curl 验证成功。