在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,"..."])
答案 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)