Files
ttx-project-doc/库内/shopee-4.7-update-rt-order-test-cases.md
T

8.4 KiB
Raw Blame History

Shopee 4.7 更新移库单接口测试用例

接口信息

  • 接口:4.7 更新移库单
  • URLPOST http://localhost:9002/api/v2/automation/tovendor/inventory/racktransfer/update_rt_order
  • Content-Typeapplication/json
  • EDI 配置 keyupdate_rt_order
  • WMS APIshopee.inventory.racktransfer.updateRtOrder
  • XSLTedi-shopee/src/main/resources/xslt/out/4_7_update_rt_order.xslt

前置条件

  1. 本地已启动 EDI 9002 和 WES 9001
  2. 测试库 shipment_header_ext1 已包含 4.7 更新字段:
    • urgentFlag
    • futureOrderQty
    • futureSkuQty
    • oosOrderQty
  3. 测试库存在 RT 单:
    • whs_id = PHIXP
    • rt_order_id = SH260709005004
  4. 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_qtyfuture_sku_qtyoos_order_qty 和全字段组合均已 curl 验证成功。