Shopify API - 如何使用数千种产品更新Smart Collection的产品订单?

时间:2016-06-12 07:33:41

标签: ruby-on-rails shopify

我正在使用Shopify的Ruby Gem在产品商店中组织智能收藏。基本上我正在尝试每晚更新这些集合上的产品订单(它们的排序顺序设置为手动)。目标是根据销售数据对产品进行分类,同时在列表末尾放置缺货产品。

我设法编写了一个适用于大多数集合的脚本:

@scs = ShopifyAPI::SmartCollection.find(:all,params: {limit: 250})
@scs.each do |sc|
        sc.order(products: @products_in_order)
        sc.save
end

不幸的是,如果集合大于几百个产品,则URI会变得太长而且我收到此错误:

  

ActiveResource :: ClientError:失败。响应代码= 414.响应   message = Request-URI太大。

有没有办法以有效的方式更新大型智能收藏品的产品订单?我的一些馆藏有超过1000种产品,我不想单独更新每个“收集”,因为我每天都会运行这个脚本。

感谢任何建议。

1 个答案:

答案 0 :(得分:0)

您目前的技术有限。您可能想要做的第一件事是通过分页迭代所有集合。不分页意味着您永远不会接触超过250种产品的集合中的所有产品。

其次,在您按页面时,按照集合构建一个哈希,其中包含对其进行排序所需的详细信息。否则,你将存储一大堆内存饥饿的河马,这将使你的记忆足迹下降到地狱。使用哈希然后订购产品并保存它们。

由于这是脚本编写,并且可以在晚上运行,因此可以按产品进行分类/存储。不像你用野蛮力量采摘西红柿或西瓜。