我正在使用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.\"}"
我接下来应该尝试什么?
答案 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