使用Google Apps Script向Shopify上传新产品失败问题求助
问题原因
你的代码存在3处核心错误,导致请求实际以GET方式发送,才会返回店铺全量产品列表:
method、contentType是UrlFetchApp.fetch参数的顶层配置项,你错误将其放到了headers对象中,导致系统默认使用GET方法调用接口,而GET请求/products.json本身就是Shopify查询全量产品的接口,自然返回产品列表。- 要提交的产品数据需要放在参数的
payload字段中,且需要序列化为JSON字符串,你直接把产品数据放在了params顶层,还未做序列化,接口无法识别你提交的产品信息。 - 产品结构不符合Shopify接口要求:顶层产品字段应为
product而非products,价格属性需要配置在variants数组下,不能直接写在product对象中。
修正后代码
var storeName = "" var key = "" var secret = "" var uRL = "https://"+storeName+".myshopify.com/admin/api/2021-10/products.json" var params = { "method": "POST", "headers": { "Authorization": "Basic " + Utilities.base64Encode(key+":"+secret) }, "contentType": "application/json", "charset": "utf-8", "payload": JSON.stringify({ "product": { "body_html": "", "product_type": "JEWELLERY - Bracelets", "published_scope": "global", "title": "Burton Custom Freestyle 151", "vendor": storeName, "status": "active", "published": true, "tags": "", "variants": [ { "price": "100" } ] } }), "muteHttpExceptions": true } var response = UrlFetchApp.fetch(uRL, params); var r = JSON.parse(response) console.info(r)
内容的提问来源于stack exchange,提问作者Osama Khan
相关产品推荐
相关产品推荐

