如何使用Shopify API搜索基于SKU的产品?

时间:2014-10-03 08:54:05

标签: ruby shopify activeresource

我正在使用Ruby wrapper for Shopify's API,我想根据SKU搜索产品。

这是我目前正在尝试的内容:

ShopifyAPI::Product.find(sku: 'wi196217')

# => ActiveResource::ResourceNotFound: Failed.  Response code = 404.  Response message = Not Found.
# from /Users/narzero/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/activeresource-4.0.0/lib/active_resource/connection.rb:144:in `handle_response'

我也尝试过:

require 'curb'

p = Curl.get('https://<REDACTED>:<REDACTED>@<REDACTED>.myshopify.com/admin/products/search.json?query=sku:wi196217')

puts p.body

# => "{\"errors\":\"[API] That action is not currently supported.\"}"

我接下来应该尝试什么?

3 个答案:

答案 0 :(得分:3)

当您登录shopify网站时,搜索网址需要使用Cookie(只有管理员才能)设置此Cookie。因此,当尝试通过API公开访问它时,它会返回

501 : {"errors":"[API] That action is not currently supported."}

为了解决这个问题,我分配了宝石并编写了一个允许您通过宝石搜索产品的黑客。

https://github.com/achadee/shopify_api

我不建议将此用于大型库存商店,因为它会在搜索之前关闭所有产品...无论如何使用情况如下:

ShopifyAPI::Product.search({:sku => "XFUS-63912"})

ShopifyAPI::Product.search({:sku => "XFUS-63912", :handle => "hey hey"})

此外,它还会动态搜索产品及其所有变体上的任何标记

享受:)

答案 1 :(得分:1)

我注意到的第一件事是sku是Product Variants的属性,而不是Products

This Stack Overflow answer表示使用Shopify API无法获得基于其sku的产品,但我发现this discussion on the Shopify forums可能对您有用。

答案 2 :(得分:0)

您可以使用

*.myshopify.com/search?view=json&type=product&q=sku:SKUID