![](/img/trans.png)
[英]How to get images in the product list view with an API call in Shopware?
[英]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
cover
和media
是兩個獨立的關聯,因此刪除所有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.