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

通过API更新交叉销售并移除旧关联(无需先获取旧ID)

Shopware 6 API 实现交叉销售替换(无需预先获取旧关联ID)

核心思路

由于product_cross_selling_assigned_products中间表不存储原始产品ID,无法直接通过原始产品ID过滤删除旧关联。我们需要通过关联的product_cross_selling实体来处理——该实体包含productId(原始产品UUID),且删除它会自动级联清理对应的中间表关联数据。


方案一:先清理旧关联,再创建新关联

1. 条件删除旧交叉销售组

通过同步API的delete操作,根据原始产品ID(可选加类型过滤)删除对应的product_cross_selling实体,关联的旧交叉销售产品会被自动级联删除:

{
  "entity": "product_cross_selling",
  "action": "delete",
  "filter": [
    {
      "type": "equals",
      "field": "productId",
      "value": "你的目标产品UUID"
    },
    // 可选:仅删除指定类型的交叉销售(如cross_sell/up_sell/accessory)
    {
      "type": "equals",
      "field": "type",
      "value": "cross_sell"
    }
  ]
}

2. 创建新的交叉销售关联

清理完成后,通过upsert操作创建新的交叉销售组及关联产品:

{
  "entity": "product_cross_selling",
  "action": "upsert",
  "payload": [
    {
      "id": "生成一个新的UUID",
      "productId": "你的目标产品UUID",
      "type": "cross_sell",
      "name": "交叉销售组",
      "assignedProducts": [
        {
          "productId": "关联产品1的UUID",
          "position": 1
        },
        {
          "productId": "关联产品2的UUID",
          "position": 2
        }
      ]
    }
  ]
}

方案二:直接更新现有交叉销售组(无需删除)

如果已知目标产品对应交叉销售组的UUID(或可通过一次简单查询获取),可以用upsert操作结合_replace参数直接替换关联产品,省去删除步骤:

{
  "entity": "product_cross_selling",
  "action": "upsert",
  "payload": [
    {
      "id": "已存在的交叉销售组UUID",
      "productId": "你的目标产品UUID",
      "type": "cross_sell",
      "_replace": ["assignedProducts"],
      "assignedProducts": [
        {
          "productId": "新关联产品1的UUID",
          "position": 1
        },
        {
          "productId": "新关联产品2的UUID",
          "position": 2
        }
      ]
    }
  ]
}

_replace: ["assignedProducts"]会强制替换该组下的所有旧关联产品,直接覆盖为新列表。


注意事项

  • 若需保留不同类型的交叉销售组(如同时存在交叉销售和向上销售),务必在过滤条件中添加type字段,避免误删其他类型的关联数据。
  • 所有UUID需符合Shopware 6的UUID格式要求,可通过代码生成或Shopware后台获取。

内容的提问来源于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 08:12:21