我使用Shopify的Ruby Gem在產品商店中整理智能收藏。基本上,我試圖對這些集合上的產品訂單進行夜間更新(它們的排序順序設置爲手動)。目標是根據銷售數據對產品進行分類,但也會在清單末尾列出缺貨產品。Shopify API - 如何使用數千種產品更新智能收藏上的產品訂單?
我設法編寫一個腳本,在大多數藏品效果很好:
@scs = ShopifyAPI::SmartCollection.find(:all,params: {limit: 250})
@scs.each do |sc|
sc.order(products: @products_in_order)
sc.save
end
不幸的是,如果集合比一對夫婦大種產品中,URI太長,我得到這個錯誤:
ActiveResource::ClientError: Failed. Response code = 414. Response message = Request-URI Too Large.
有沒有辦法以高效的方式更新大型智能收藏上的產品訂單?我的一些收藏品有超過1000種產品,我不想單獨更新每個「收藏」,因爲我將每天運行此腳本。
任何意見表示讚賞。
嗨大衛,謝謝你的迴應。我確實拉了所有的產品。上述限制是針對集合查詢(我擁有的集合少於250個)。變量@products_in_order包含集合中的所有產品。問題在於,如果有數百種產品,則API調用的URI會變得太長。除非產品有數千種和數百種集合,否則按產品分配排序順序是沒有問題的......這可能很容易轉變到每天30k的API調用,似乎並不是最明智的資源使用... –
爲什麼你要這麼做呢?無論如何,擁有1000個產品的集合變得相當笨拙(客戶不會全部翻閱)。無論如何,這聽起來像代碼被破壞。更新的順序應該是PUT,所以不應該有任何URI長度的考慮。如果這實際上是錯誤的,並且Shopify錯誤地標記了分批更新時會發生什麼情況?如果您申請一組100個產品,那麼當您應用第二組100個產品ID時會發生什麼? – bknights