使用shopify_api gem更新智能收藏夹中的产品订单时出现文件结尾错误

时间:2019-07-02 10:38:28

标签: ruby-on-rails shopify shopify-app

products方法中为超过400种产品设置order属性甚至在调用collection.save之前都会引发以下错误

 EOFError: end of file reached error 

文档说您可以发送250个职位。但是订单端点似乎可以成功接受300个头寸。

那么,我们可以在订单中设置250个以上的产品ID吗?对此有什么限制吗?

那个错误实际上是什么意思?

我的代码:

    collection = ShopifyAPI::SmartCollection.find(8748376382)
    collection.order(products: [9234893,3483448,8783473,"..."])

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。

我认为文件错误的结束是由于某些问题而引起的,因为更新products时查询URI的长度超过14000个字符,尽管PUT请求对URI没有任何限制长度 我刚刚找到了一种通过在put请求的正文中发送产品ID来更新300多种产品的方法。

Checkout the answer by RehashWayne in Shopify Forum

按如下所示编辑文件/usr/local/bundle/gems/shopify_api-5.2.2/lib/shopify_api/resources/smart_collection.rb(从我的gem安装路径开始)

module ShopifyAPI
  class SmartCollection
    def order_products(ids)
      load_attributes_from_response(put(:order, nil, {products: ids}.to_json))
    end
  end
end

用法示例:

sorted_ids = [12345,12346]
collection.order_products(sorted_ids)