如何通过Shopware 6 API向已作废订单添加现有商品?
Shopware 6 API 修改作废订单添加商品操作指南
前置注意事项
作废订单(cancelled状态)默认处于不可编辑的闭环状态,必须先调整订单状态至可编辑状态(如open或in_progress),完成商品添加后再按需恢复作废状态。
步骤1:切换订单至可编辑状态
使用PATCH请求调用订单修改接口:
- 接口路径:
/api/order/{orderId} - 请求体(仅传必要字段):
{ "stateId": "<可编辑状态ID>" }
可编辑状态ID可通过/api/state-machine-state接口筛选stateMachine.technicalName = 'order_state'获取,比如open状态的对应ID
步骤2:添加已有商品至订单
使用POST请求调用订单行项目添加接口:
- 接口路径:
/api/order/{orderId}/line-items - 请求体(仅传核心必要字段,商品已存在于SWDB):
{ "productId": "<目标商品ID>", "quantity": 1, "type": "product", "referencedId": "<目标商品ID>" }
*字段说明:
productId与referencedId均填写目标商品的IDtype固定为product,标识添加的是实体商品quantity为需要添加的商品数量*
步骤3:恢复订单作废状态(可选)
完成商品添加后,再次使用PATCH请求将订单状态改回cancelled,请求体同步骤1,替换为作废状态对应的ID即可。
常见问题排查
- 权限不足:确保API账号拥有
order_writer权限 - 状态ID错误:确认使用的是
order_state状态机下的状态ID,勿混淆其他状态组的ID - 字段缺失:
type字段为必填项,遗漏会导致API识别失败 - 订单锁定:部分版本作废订单会被锁定,可通过
PATCH请求修改订单的locked字段为false解除锁定
内容的提问来源于stack exchange,提问作者Dwza
相关产品推荐
相关产品推荐

