簡體   English   中英

如何使用 Shopware 中的產品 api 重組產品媒體的位置或刪除所有圖像

[英]How to restructure positions of product media or remove all images using product api in Shopware

所以我有一個產品,想更改其圖像的 position 並交換封面圖像,同時向分配給該產品的媒體添加更多圖像。
媒體應該看起來像這樣:

{
  "media": [
    {
      "id": "a060944a2938442c8d461b3a0107ecf5",
      "mediaId": "722d194bfbb84dc489f9f5b74da53bb3",
      "position": 1
    },
    {
      "id": "b060944a2938442c8d461b3a0107ecf6",
      "mediaId": "822d194bfbb84dc489f9f5b74da53bb4",
      "position": 2
    }
  ],
  "coverId": "a060944a2938442c8d461b3a0107ecf5"
}

並更改為:

{
  "media": [
    {
      "id": "a060944a2938442c8d461b3a0107ecf5",
      "mediaId": "722d194bfbb84dc489f9f5b74da53bb3",
      "position": 3
    },
    {
      "id": "b060944a2938442c8d461b3a0107ecf6",
      "mediaId": "822d194bfbb84dc489f9f5b74da53bb4",
      "position": 2
    },
    {
      "id": "c060944a2938442c8d461b3a0107ecf7",
      "mediaId": "922d194bfbb84dc489f9f5b74da53bb5",
      "position": 1
    }
  ],
  "coverId": "b060944a2938442c8d461b3a0107ecf6"
}

我找不到重組媒體位置和更改封面圖像的方法。
所以我試圖從產品中刪除媒體,但即使媒體不再連接到產品,封面圖像仍然存在。
此外,coverId 上的更新似乎也沒有完成這項工作。

我用它來刪除圖像:

DELETE https://your-page.com/api/product/5efd4f22dc134ba7bf77c85f92fed0a9/media/b060944a2938442c8d461b3a0107ecf6

covermedia是兩個獨立的關聯,因此刪除所有media關聯仍然可以保持cover關聯不變。

  • new ManyToOneAssociationField('cover', 'product_media_id', ProductMediaDefinition::class, 'id')
  • new OneToManyAssociationField('media', ProductMediaDefinition::class, 'product_id')

請注意兩者是如何引用定義ProductMediaDefinition的。 這意味着對於coverId ,您必須提供現有product_media實體的id ,而不是media實體的ID。

如果您有媒體實體的 id,您還可以動態創建product_media實體:

{
  "id": "{productId}",
  "cover": {
    "mediaId": "{mediaId}"
  }
}

如果要刪除封面圖像而不設置新圖像,可以將coverId設置為null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM