2012-12-04 76 views
1

在Rails 3.2.2中,我试图使用Rails Shopify Gem 3.0.1创建一个具有多个变体的新Shopify产品。无法使用Rails Shopify创建多个变体Gem

一切正常,只有1个选项,但是如果我尝试使用2个选项在我的变型的产品可以使上保存的错误:

#<ActiveResource::ResourceInvalid: Failed. Response code = 422. Response message = Unprocessable Entity.>, @validation_context=nil, @errors=#<ActiveResource::Errors:0x0000010297a5b0 ...>>, @messages={:base=>["Options are not unique"]}> 

这里是我的代码:

variants = [] 

variant = ShopifyAPI::Variant.new(
    :option1    => "-s-", 
    :option2    => "azul", 
    :option3    => "boxer", 
    :inventory_management => "shopify", 
    :inventory_quantity  => 350 
) 
    variants << variant 

variant = ShopifyAPI::Variant.new(
    :option1    => "-m-", 
    :option2    => "azul", 
    :option3    => "boxer", 
    :inventory_management => "shopify", 
    :inventory_quantity  => 495 
) 
    variants << variant 

variant = ShopifyAPI::Variant.new(
    :option1    => "-l-", 
    :option2    => "azul", 
    :option3    => "boxer", 
    :inventory_management => "shopify", 
    :inventory_quantity  => 543 
) 
    variants << variant 

variant = ShopifyAPI::Variant.new(
    :option1    => "-xl-", 
    :option2    => "azul", 
    :option3    => "boxer", 
    :inventory_management => "shopify", 
    :inventory_quantity  => 425 
) 
    variants << variant 

variant = ShopifyAPI::Variant.new(
    :option1    => "-s-", 
    :option2    => "negro", 
    :option3    => "boxer", 
    :inventory_management => "shopify", 
    :inventory_quantity  => 778 
) 
    variants << variant 


product = ShopifyAPI::Product.new(
    :title    => original_p.title, 
    :product_type  => original_p.product_type, 
    :handle    => original_p.handle, 
    :vendor    => original_p.vendor, 
    :body_html   => original_p.body_html, 
    :template_suffix => original_p.template_suffix, 
    :tags    => original_p.tags, 
    :variants   => variants 
) 

product.save 

的奇怪的是,如果我删除第五个变体(仍然有“-s-”作为选项1的变体),那么产品会得到保存,如果我尝试创建所有5个变体,则会出现错误。

你能否给我一些建议,说我做错了什么?

由于提前, 奥古斯托

+0

“'@messages = {:碱=> [” 选项不是唯一的“] }'“看来ActiveResources只需要唯一选项。你看过吗? – MrYoshiji

+0

事实上,这似乎是个问题,但Shopify - 至少从网络管理员 - 确实允许创建一个具有3种不同选项(尺寸,颜色,适合度)的产品,并允许拥有2种不同的变体,颜色。 API是否比Web管理员有更严格的限制? – Augusto

回答

2

我被忘记也创建在产品中选择:

option1 = ShopifyAPI::Option.new(
    :name  => "first option" 
) 
    options << option1 

    option2 = ShopifyAPI::Option.new(
    :name  => "second option" 
) 
    options << option2 

    option3 = ShopifyAPI::Option.new(
    :name  => "third option" 
) 
    options << option3 


    product = ShopifyAPI::Product.new(
     :title    => original_p.title, 
     :product_type  => original_p.product_type, 
     :handle    => original_p.handle, 
     :vendor    => original_p.vendor, 
     :body_html   => original_p.body_html, 
     :template_suffix => original_p.template_suffix, 
     :tags    => original_p.tags, 
     :variants   => variants, 
     :options   => options 
    )