2016-08-01 192 views
1

我正在創建一個Shopify應用程序,查詢商店的訂單。目的是獲得未完成和完成的訂單;如果您轉到商店的「訂單」標籤,我需要返回列在那裏的所有訂單。但是,我目前的代碼只會返回未完成的訂單。Shopify API查詢履行訂單

查詢有問題是Ruby on Rails中如下:

@orders = Shopify_API::Order.find(:all) 

我一直在使用fullfillment_status的PARAMS甚至嘗試:「任何」,這是在https://help.shopify.com/api/reference/order表示默認所以它不應該是必要的,但沒有變化。

我對此不理解或錯過了什麼?如果已完成的訂單不再被視爲可行的訂單或其他東西,我該如何去查詢它們呢?

謝謝。

回答

1

你需要更好地組織自己。這裏有一些基於什麼適合我的技巧。

  1. 設置分頁。使用:全部最多返回50條記錄。這意味着發送一個頁面的值和一個限制(250)。
  2. 在一個循環中要求未完成的訂單,並處理它們
  3. 要求完成訂單的循環和處理它們

這大約涵蓋它。未完成的履行狀態是「未發運」,這是超級直觀的呃?

page = 1 
orders = [] 
status = { fulfillment_status: 'unshipped', status: 'open',  financial_status: 'paid', limit: 250 } 
count = ShopifyAPI::Order.count(status) 
puts "Found #{count} UNSHIPPED OPEN PAID orders..." 
if count > 0 
    page += count.divmod(250).first 
    while page > 0 
    status.merge!({ page: page }) 
    orders += ShopifyAPI::Order.all(params: status) 
    page -= 1 
    end 
end 
+1

您能指定「請求履行的訂單」的含義嗎?我不知道如何做到這一點,這是問題所在。你能提供示例代碼嗎? – Brady

+1

編輯我的答案給你工作代碼。 –

+0

狀態是我忽略的參數。需要將其從「打開」默認更改爲「任何」。非常感謝你幫助我! – Brady