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

使用Python Shopify API上传两张商品图片失败,求技术指导

问题排查与修复建议

我帮你找出了代码里的核心问题,这应该是导致无法成功添加两张商品图片的关键原因:

主要问题:图片读取逻辑错误

你当前只读取了audi.jpg这一张图片的二进制数据,却把这份数据同时绑定给了image和image2两个对象——相当于两张图片其实都是同一张,而且audi2.jpg的文件完全没有被读取处理。

修正后的代码

import shopify

API_KEY = 'dsfsdsdsdsdsad'
PASSWORD = 'sadsdasdasdas'
shop_url = "https://%s:%s@teststore.myshopify.com/admin" % (API_KEY, PASSWORD)
shopify.ShopifyResource.set_site(shop_url)

path = "audi.jpg"
path2 = "audi2.jpg"

new_product = shopify.Product()
new_product.title = "Audi pictures test "
new_product.body_html = "body of the page <br/><br/> test <br/> test"

variant = shopify.Variant({'price': 1.00, 'requires_shipping': False,'sku':'000007'})
new_product.variants = [variant]

# 分别读取并绑定两张图片
image = shopify.Image()
with open(path, "rb") as f:
    filename = path.split("/")[-1]
    encoded = f.read()
    image.attach_image(encoded, filename=filename)

image2 = shopify.Image()
with open(path2, "rb") as f:
    filename2 = path2.split("/")[-1]
    encoded2 = f.read()
    image2.attach_image(encoded2, filename=filename2)

new_product.images = [image, image2]
# 添加错误捕获方便排查问题
try:
    new_product.save()
    print("商品及图片上传成功!")
except Exception as e:
    print(f"上传失败,错误信息:{e}")

额外建议

  • 确认文件路径有效性:确保audi.jpg和audi2.jpg确实在脚本的执行目录下,或者直接使用绝对路径(比如/Users/xxx/Desktop/audi.jpg)避免路径错误。
  • 检查API权限:确认你的Shopify API密钥拥有write_products权限,没有对应权限会导致图片上传失败。
  • 图片格式与大小:Shopify对商品图片有格式(支持JPG/PNG等)和大小限制,确保两张图片都符合平台要求。

内容的提问来源于stack exchange,提问作者ben olsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:15:48