Shopify API创建产品异常:返回HTTP 200但产品未生成
Shopify API创建产品异常:POST返回200但产品未生成
问题核心
调用POST /admin/api/2023-07/products.json接口创建产品时,JSON请求格式合规,接口返回HTTP 200状态码,但店铺后台未生成新产品,且响应内容为店铺现有产品列表。已确认应用具备产品创建权限、授权令牌有效。
代码问题排查
1. URL格式错误
代码中url = "URL.com/admin/api/2023-07/products.json"存在两个关键问题:
- 缺少
https://协议头,会导致请求被服务器异常处理 URL.com是占位符,未替换为实际店铺域名(正确格式应为https://[店铺名称].myshopify.com)
这种错误会触发服务器重定向,requests库默认会跟随重定向,原本的POST请求会被转换为GET请求,最终调用的是获取产品列表的接口(GET /admin/api/2023-07/products.json),这就是返回200状态码和现有产品列表的根本原因。
2. 访问令牌未填充
代码中X-Shopify-Access-Token的值为空字符串,即便你确认令牌有效,也需确保代码中已填写正确的令牌内容。
修正后的代码
import requests # 替换为你的实际店铺域名,必须包含https协议 url = "https://your-shop-name.myshopify.com/admin/api/2023-07/products.json" headers = { "Content-Type": "application/json", # 填入有效的Shopify访问令牌 "X-Shopify-Access-Token": "your-valid-access-token" } payload = { "product": { "title": "Burton Custom Freestyle 151", "body_html": "<strong>Good snowboard!</strong>", "vendor": "Burton", "product_type": "Snowboard" } } response = requests.post(url, headers=headers, json=payload) # 打印响应信息,方便排查后续问题 print("响应状态码:", response.status_code) print("响应内容:", response.json())
额外排查步骤
- 打印完整响应内容,确认是否存在重定向痕迹或隐藏错误信息
- 使用抓包工具(如Charles、Fiddler)监控实际发送的请求,验证请求方法为POST且URL正确
- 再次核对店铺域名拼写,确保格式为
[店铺名称].myshopify.com
内容的提问来源于stack exchange,提问作者flowyZ
相关产品推荐
相关产品推荐

