2

我面临一个问题 - 无法使用 ShopifyAPI 更新变体的价格。

在更新变体的价格时,它给出了错误

@remote_errors=#<\ActiveResource::ResourceInvalid:失败。响应代码 = 422。响应消息 = 无法处理的实体。>,@validation_context=nil,@errors=#<\ActiveResource::Errors:0x000000029eb1d0 ...>>,@messages={:base=>["选项不唯一"]}

'<' 后的'\' 需要显示错误,否则堆栈溢出会隐藏错误。


根据生产商店的另一个问题的要求
,测试商店的请求 ID 为“38f5c3b3b7bdf4433724a845c6df4571”,请求 ID 为“6050f165586b631e81b840dc0e1e6807”

更多发现

测试商店的变体价格变化

p = ShopifyAPI::Product.last  
v = p.variants.first  
v.price = "8.00"  
v.save  

变量的初始价格 = "9.00"
返回false,错误为 @messages={:base=>["Options are not unique"]}
请求 id 978ad18483f40ff3946df18df0a9d1d8 。
.

现场商店的变体价格变化

p = ShopifyAPI::Product.first  
p.variants[0].price = "24.65"  
p.save  

变体的初始价格 = "25.65"
返回true,但价格未更改
请求 id a9a798b631e3dd10fc81b723f2883af1 。
.

通过测试商店的产品更改价格

p = ShopifyAPI::Product.first  
p.variants[0].price = "8.00"  
p.save  

变体的初始价格 = "7.00"
返回true 并更新价格
请求 id 7d995f6f6ed3bf515e69a1640f27f44a 。
.

通过实时商店中的产品更改价格

p = ShopifyAPI::Product.last  
v = p.variants.first  
v.price = "4.00"  
v.save  

变量的初始价格 = "3.00"
返回false,错误为 @messages={:base=>["Options are not unique"]} 请求 id c6aaa5b65576eb4ec0d89715d25b787e

4

2 回答 2

3
@messages={:base=>["Options are not unique"]}

那是你的问题。查看您POST用于提交请求的日志,该请求用于创建新对象。Shopify 认识到已经存在具有指定选项的变体,并拒绝创建新的变体。

如果您PUT改为使用 HTTP 方法,Shopify 会正确地将其解释为更新,一切都应该没问题。

于 2012-06-09T16:31:20.143 回答
0

这是 ActiveResource 3.1+ 中的一个错误。

我已经打开了一个ActiveResource 拉取请求,但我目前仍在等待回复。

我已在 shopify_api v3.0.1 中针对此错误提交了解决方法,因此升级此 gem 将为您解决此问题。

于 2012-06-15T01:30:55.390 回答