使用 shopify_api - 和 rails 上的 ruby 从变体对象获取价格

Get price from variants object with shopify_api - and ruby on rails

我正在使用 shopify_api (https://github.com/Shopify/shopify_api) 通过 Ruby.

创建 Shopify 应用

对于 Base::Product,通过直接调用 product.variants,我将得到:

[#<ShopifyAPI: :Variant: 0x00007fa15cb0e960 @attributes={
"id"=>12664776392816,
"title"=>"Default Title",
"price"=>"5.00",
"sku"=>"",
"position"=>1,
"inventory_policy"=>"deny",
"compare_at_price"=>nil,
"fulfillment_service"=>"manual",
"inventory_management"=>nil,
"option1"=>"Default Title",
"option2"=>nil,
"option3"=>nil,
"created_at"=>"2018-08-27T03:17:24-04:00",
"updated_at"=>"2019-04-07T23:52:00-04:00",
"taxable"=>true,
"barcode"=>"",
"grams"=>0,
"image_id"=>nil,
"weight"=>0.0,
"weight_unit"=>"kg",
"inventory_item_id"=>12758757474416,
"inventory_quantity"=>0,
"old_inventory_quantity"=>0,
"requires_shipping"=>true,
"admin_graphql_api_id"=>"gid://shopify/ProductVariant/12664776392816"
}, @prefix_options={
:product_id=>1389200408688
}, @persisted=true>
]

在这种情况下,如何直接从这个 json returned

中获取 price 属性

编辑: 我只是在中间的 rails 上跳入 ruby,所以这是我到目前为止尝试过的:

product.variants.prices --> 在我看来这肯定行不通,但不妨试试 returns,价格为 undefined method#`

解析 JSON

1) JSON.parse(product.varient)['price'] returns 与 no implicit conversion of Array into String

2) variant = ActiveSupport::JSON.decode(product.variants[0])variant = ActiveSupport::JSON.decode(product.variants)

然后

variant['price']

但是 return 和 no implicit conversion of ShopifyAPI::Variant into String

product = ShopifyAPI::Product.find(shopify_product_id)
product.variants.map(&:price)

它将为您提供一组价格,因为产品可能有多个变体。 你也可以使用 .pluck 方法代替 .map