当我使用多个变体更新产品时,我得到一个错误响应:
{"errors":{"base":["Options are not unique"]}}
或者有时:
{"errors":{"variants":["is invalid"], "base":["Options are not unique"]}}
我正在向/admin/products/122821632.json之类的内容发出PUT请求,数据如下:
{"product":{"id":"122821632",
"body_html":"test",
"vendor":"Acme",
"title":"Monkey T-Shirt",
"variants":[{"option1":"LARGE",
"sku":"test-sku-2",
"product_id":"122821632",
"id":"282988194",
"price":"21.99",
"grams":"200"},
{"option1":"TINY",
"sku":"test-sku-1",
"product_id":"122821632",
"id":"282990692",
"price":"21.99",
"grams":"200"}],
"options":[{"position":1,
"name":"Size",
"product_id":"122821632"}]}}
然而,我注意到,如果我放入一个变量,然后放入多个变量数据JSON,它就会起作用。这确实意味着删除一个变体并重新创建它,我认为这对于一个插件来说是不可接受的行为,特别是考虑到我没有存储关于一个变体的所有数据,因此无法投入生产。
为此,我提出了以下PUT请求:
{"product":{"id":"122821632",
"body_html":"test",
"vendor":"Acme",
"title":"Monkey T-Shirt",
"variants":[{"option1":"LARGE",
"sku":"test-sku-2",
"product_id":"122821632",
"id":"282988194",
"price":"21.99",
"grams":"200"}],
"options":[{"position":1,
"name":"Size",
"product_id":"122821632"}]}}
它返回一个200。然后是:
{"product":{"id":"122821632",
"body_html":"test",
"vendor":"Acme",
"title":"Monkey T-Shirt",
"variants":[{"option1":"LARGE",
"sku":"test-sku-2",
"product_id":"122821632",
"id":"282988194",
"price":"21.99",
"grams":"200"},
{"option1":"TINY",
"sku":"test-sku-1",
"product_id":"122821632",
"id":"282990692",
"price":"21.99",
"grams":"200"}],
"options":[{"position":1,
"name":"Size",
"product_id":"122821632"}]}}
它返回一个200。然后是:
{"product":{"id":"122821632",
"body_html":"test",
"vendor":"Acme",
"title":"Monkey T-Shirt",
"variants":[{"option1":"LARGE",
"sku":"test-sku-2",
"product_id":"122821632",
"id":"282988194",
"price":"21.99",
"grams":"200"},
{"option1":"TINY",
"sku":"test-sku-1",
"product_id":"122821632",
"id":"282990692",
"price":"21.99",
"grams":"200"}],
"options":[{"position":1,
"name":"Size",
"product_id":"122821632"}]}}
这给了我一个错误。另外,我删除并重新创建的变量的I也发生了更改(我可以通过get请求来判断):
{"product":{"body_html":"test",
"handle":"69",
"images":[],
"template_suffix":null,
"product_type":"Shirts",
"updated_at":"2013-03-07T11:36:51-05:00",
"variants":[{"position":1,
"option1":"LARGE",
"option2":null,
"option3":null,
"updated_at":"2013-03-07T07:30:15-05:00",
"inventory_quantity":1,
"title":"LARGE",
"product_id":122821632,
"created_at":"2013-03-06T11:03:36-05:00",
"compare_at_price":"24.99",
"fulfillment_service":"manual",
"inventory_management":"",
"sku":"test-sku-2",
"taxable":true,
"requires_shipping":true,
"price":"21.99",
"inventory_policy":"deny",
"id":282988194,
"grams":200},
{"position":2,
"option1":"TINY",
"option2":null,
"option3":null,
"updated_at":"2013-03-07T11:36:51-05:00",
"inventory_quantity":1,
"title":"TINY",
"product_id":122821632,
"created_at":"2013-03-07T11:36:51-05:00",
"compare_at_price":null,
"fulfillment_service":"manual",
"inventory_management":null,
"sku":"test-sku-1",
"taxable":true,
"requires_shipping":true,
"price":"21.99",
"inventory_policy":"deny",
"id":283397624,
"grams":200}],
"title":"Monkey T-Shirt",
"created_at":"2013-02-22T05:35:02-05:00",
"options":[{"id":147204272,
"name":"Size",
"position":1,
"product_id":122821632}],
"vendor":"Acme",
"id":122821632,
"published_at":"2013-02-22T05:35:02-05:00",
"tags":"mens t-shirt example"}}
我的印象是,对相同URL的相同数据的第二个PUT请求应该不会导致任何更改。
我做错了什么?这是Shopify API中的错误吗?
发布于 2013-04-03 01:31:53
我的朋友,当我这样做的时候,我也会通知option id ...所以选项部分将保持如下所示:
"options":[{"id":147204272,"position":1,"name":"Size","product_id":"122821632"}]}}
选项在json方面类似于变体,它们也有id。同样的情况也会发生在图像上。
如果能帮上忙,请告诉我。
发布于 2013-08-27 10:25:54
我昨天遇到了和你一样的问题。看起来您不能使用PUT /admin/products/122821632.json来修改变量。
一旦创建了带有变体的产品,您就必须使用http://docs.shopify.com/api/product_variant#update来更新各个变体,否则,如果您在产品PUT中包含变体数据,则会出现该错误。
如果你想要在你的变体被设置后更新它,你必须忽略所有的变体信息。
https://stackoverflow.com/questions/15277038
复制相似问题