ShopifyAPI:产品发现自__奇怪

时间:2012-10-18 15:43:11

标签: ruby-on-rails shopify

Shopify API有些奇怪,我无法理解我做错了什么。

我想从Shopify获取所有产品的列表,因此我使用以下代码:

def get_all_products_from_shopify
  limit = 250
  all_products = Array.new

  self.connect_to_store
  products = ShopifyAPI::Product.find(:all, :params => {:limit => limit})

  all_products = all_products.concat products
  puts products.length
  while products.length == limit do
    since_id = products.last.id
    products = ShopifyAPI::Product.find(:all, :params => {:limit => limit, :since_id => since_id})
    all_products = all_products.concat products
  end
  ShopifyAPI::Base.site = nil
  return all_products
end

问题是我在Shopify上有251个产品,但是通过这种方法,我检索了一系列大小为277个元素的产品。 为什么呢?

如果我这样做:

products = ShopifyAPI::Product.count
> 251

products = ShopifyAPI::Product.find(:all, :params => {:limit => limit})
products.count
>250
since_id = products.last.id
ShopifyAPI::Product.count(since_id: since_id)
>26

有谁可以告诉我,我做错了什么?

谢谢, 奥古斯托

1 个答案:

答案 0 :(得分:2)

默认情况下,产品列表API中的标题按升序返回产品。不要省略第一页结果的:since_id参数,而是使用:since_id => 0