Shopware 6 通过商店获取父产品-api

Shopware 6 fetch parent product through store-api

我正在尝试使用商店获取特定产品的父项-api。
当我添加 parent 关联时,我收到错误代码 FRAMEWORK__PARENT_ASSOCIATION_CAN_NOT_BE_FETCHED

我的请求是这样的:

我真的必须使用 parentId 进行第二次请求才能获取一些父产品信息,还是有其他方法?

我认为您只需要使用带有 parentId 的额外 API 调用。因为它在 EntityReader 内部受到限制。 此外,可以实现您自己的 ApiRoute 并通过一次 API 调用获取所有信息。

另请检查您的儿童产品的回复。由于产品的几乎所有字段都是继承的,可能您已经在第一个响应中获得了您需要的信息。

您可以尝试搜索子项 ID 为“xyz”的产品,而不是尝试查找一个变体的父项。 Shopware 支持过滤嵌套对象,例如“children.id”。

例如:

POST /store-api/product
Content-Type: application/json
Accept: application/json
sw-access-key: ...
sw-language-id: ...

{
  "includes": {
    "product": ["productNumber", "children", "name", "translated.name"]
  },
  "associations": {
    "children": []
  },
  "filter": [
    {"field": "children.id", "type": "equals", "value": "f87a875bc5fa47e08ea40a19ce9c5627"}
  ]
}

应该给你父子输出:

{
  "entity": "product",
  "total": 1,
  "aggregations": [],
  "page": 1,
  "limit": null,
  "elements": [
    {
      "productNumber": "252009 00-0002",
      "name": null,
      "children": [
        {
          "productNumber": "252009 00-0002.3",
          "name": null,
          "children": null,
          "translated": {
            "name": "T-Shirt Logo"
          },
          "apiAlias": "product"
        },
        {
          "productNumber": "252009 00-0002.1",
          "name": null,
          "children": null,
          "translated": {
            "name": "T-Shirt Logo"
          },
          "apiAlias": "product"
        },
        {
          "productNumber": "252009 00-0002.4",
          "name": null,
          "children": null,
          "translated": {
            "name": "T-Shirt Logo"
          },
          "apiAlias": "product"
        },
        {
          "productNumber": "252009 00-0002.2",
          "name": null,
          "children": null,
          "translated": {
            "name": "T-Shirt Logo"
          },
          "apiAlias": "product"
        }
      ],
      "translated": {
        "name": "T-Shirt Logo"
      },
      "apiAlias": "product"
    }
  ],
  "apiAlias": "dal_entity_search_result"
}