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

如何通过API更新/替换/覆盖Shopware 6中的图片

Shopware 6.4 已有图片更新操作方案

你调用的_action路由默认是用于新增媒体资源的,传入已存在的media id会触发系统的重复文件校验,所以会返回文件已存在报错,按照下方对应场景操作即可完成更新:

场景1:替换已有media id对应的图片文件内容

  • 需调用PATCH /api/media/{你的media-id}接口,不要使用新增媒体专用的_action/upload路由,请求头设置为Content-Type: multipart/form-data
  • 表单参数中除上传的二进制图片文件外,可额外添加override: true参数跳过默认的文件重复校验
  • 请求示例:
curl --location --request PATCH 'https://<你的店铺域名>/api/media/<替换为实际media-id>' \
--header 'Authorization: Bearer <替换为你的API访问令牌>' \
--header 'Accept: application/json' \
--form 'file=@"/本地路径/新图片文件.jpg"' \
--form 'override="true"'
  • 请求成功后会返回200状态码,系统会自动更新对应媒体实体的文件哈希、宽高、文件大小等元信息,原有绑定关系(如关联商品、分类)不会改变

场景2:仅更新图片属性(如alt文本、标题、关联关系)无需替换文件

  • 直接调用PATCH /api/media/{你的media-id}接口,使用application/json格式传参即可
  • 请求示例:
curl --location --request PATCH 'https://<你的店铺域名>/api/media/<替换为实际media-id>' \
--header 'Authorization: Bearer <替换为你的API访问令牌>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "alt": "更新后的图片alt文本",
    "title": "更新后的图片标题",
    "position": 2
}'

常见注意事项

  • 替换图片完成后如果前台仍展示旧图,需清理Shopware后台缓存及站点CDN缓存,媒体资源默认缓存周期较长
  • API访问令牌需要提前开通media:update权限,否则会返回403无权限报错
  • 若需要同时更新图片关联的商品/分类映射关系,需对应调用商品媒体接口/api/product-media或分类媒体接口/api/category-media的更新接口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 01:15:02