1

そのため、Shopify API にアクセスするために Shopify Gem を使用していますが、単純な ShopifyAPI::Variant.find 呼び出しの応答本文内で product_id 属性が返されていないことに気付きました。

1.9.3p194> ShopifyAPI::Variant.find(209901733)
 => #<ShopifyAPI::Variant:0x007fbf7225d3f0 @attributes={"barcode"=>nil, "compare_at_price"=>"198.00", "created_at"=>"2012-03-23T14:11:39+11:00", "fulfillment_service"=>"manual", "grams"=>1000, "id"=>209901733, "inventory_management"=>"shopify", "inventory_policy"=>"deny", "option1"=>"38", "option2"=>"Ivory Mini Twill", "option3"=>nil, "position"=>16, "price"=>"198.00", "requires_shipping"=>true, "sku"=>"3063", "taxable"=>true, "title"=>"38 / Ivory Mini Twill", "updated_at"=>"2013-04-24T10:25:27+10:00", "inventory_quantity"=>2}, @prefix_options={}, @persisted=true> 

ここで公開された新しいドキュメントによると、product_id フィールドが返されるはずです。

GET /admin/variants/#{id}.json
Hide Response
HTTP/1.1 200 OK

{
  "variant": {
    "barcode": "1234_pink",
    "compare_at_price": null,
    "created_at": "2013-05-01T15:35:21-04:00",
    "fulfillment_service": "manual",
    "grams": 200,
    "id": 808950810,
    "inventory_management": "shopify",
    "inventory_policy": "continue",
    "option1": "Pink",
    "option2": null,
    "option3": null,
    "position": 1,
    "price": "199.00",
    "product_id": 632910392,
    "requires_shipping": true,
    "sku": "IPOD2008PINK",
    "taxable": true,
    "title": "Pink",
    "updated_at": "2013-05-01T15:35:21-04:00",
    "inventory_quantity": 10
  }
}
4

2 に答える 2

2

マイケルの問題の診断は正しい。私にとって、これを回避する最も簡単な方法は、バリアントではなく製品リソースを取得することでした。ActiveResource オブジェクトにはShopifyAPI::Productバリアントが含まれます。

product = ShopifyAPI::Product.find(product_id)
variant = product.variants.find { |v| v.id == variant_id }
于 2013-06-14T19:02:38.057 に答える