You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过商品/客户编号而非ID在Shopware 6 Sync API中Upsert商品或客户?

Shopware 6 Sync API批量更新商品(无需提前查询ID)

Shopware 6的Sync API本身支持通过商品的唯一标识字段(比如商品编号productNumber)直接执行upsert操作,不需要额外调用search接口获取ID。核心是在sync请求的action配置中指定匹配用的唯一字段,payload里传入该字段的值而非ID即可。

具体请求示例

POST {{baseurl}}/api/_action/sync

请求体调整为:

{
  "upsert-products": {
    "action": "upsert",
    "entity": "product",
    "identifier": "productNumber", // 指定用商品编号作为匹配依据
    "payload": [
      {
        "productNumber": "PROD-001", // 替换为目标商品的编号
        "name": "更新后的商品名称",
        "price": [
          {
            "currencyId": "b7d2554b0ce847cd82f3ac9bd1c0dfca",
            "gross": 99.99,
            "net": 83.32,
            "linked": true
          }
        ]
        // 其他需要更新的字段
      },
      {
        "productNumber": "PROD-002",
        "stock": 50
        // 其他字段
      }
    ]
  }
}

关键注意事项

  • identifier参数用来指定匹配实体的唯一字段,Shopware默认productNumber是商品实体的唯一约束字段,可直接使用;如果用自定义唯一属性,只要该字段在实体定义中被设置为唯一,也可填入此处。
  • 该逻辑遵循upsert特性:Sync API会先根据identifier指定的字段值查找对应商品,找到则更新,找不到则创建新商品。
  • 务必确保传入的productNumber准确,避免意外创建重复商品。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 07:42:03