Shopify REST API新增带新选项的产品变体报未知选项错误
报错原因
通过Shopify REST API新建产品时,如果没有主动配置选项,系统会自动生成1个名为Title的默认选项,同时绑定1个标题为Default Title的默认变体,此时产品仅支持1个选项维度。
注意:选项是产品级配置,不是变体的附属属性,无法通过单变体的创建/更新接口修改产品的选项结构。你直接提交包含option1、option2两个维度值的变体更新请求时,产品层面还没有定义第2个选项,传入的option2: "small"属于给不存在的选项传值,因此接口返回Option values provided for 1 unknown option(s)错误。
另外你请求里手动传的"title": "S"属于无效参数,Shopify变体会自动根据绑定的选项值拼接生成标题,不需要手动指定,手动传值反而可能导致标题显示异常。
解决步骤
按照先改产品选项、再操作变体的顺序处理即可:
- 第一步:调用产品更新接口(请求方法为PUT,接口路径为
/admin/api/{你使用的API版本号}/products/7644173172887.json),替换默认的Title选项为你需要的Color、Size两个维度,请求体示例如下:
{ "product": { "id": 7644173172887, "options": [ { "name": "Color", "position": 1 }, { "name": "Size", "position": 2 } ] } }
调用该接口时不需要传入原有默认选项的ID,Shopify会自动替换掉原有的默认Title选项,生成新的选项结构。
- 第二步:选项配置更新完成后,先删除原有的
Default Title默认变体,再按需创建对应选项值的变体即可。此时传入option1(对应Color维度的选项值)、option2(对应Size维度的选项值)就不会触发未知选项报错,正确的变体创建请求示例:
{ "variant": { "product_id": 7644173172887, "option1": "red", "option2": "small", "price": "1.0" } }
补充说明:Shopify原生单产品最多支持3个选项维度,如果需要更多维度的选项,需要借助产品元字段或第三方选项类应用实现。
内容的提问来源于stack exchange,提问作者Mayank
相关产品推荐
相关产品推荐

