Ошибка конца файла при обновлении заказа товара в смарт-коллекции с использованием драгоценного камня shopify_api - PullRequest
0 голосов
/ 02 июля 2019

Установка атрибута products в методе order для более чем 400 продуктов выдает следующую ошибку даже перед вызовом collection.save

 EOFError: end of file reached error 

В документации сказано, что вы можете отправить 250 позиций. Но конечная точка заказа выглядит успешно, чтобы принять 300 позиций.

Итак, можем ли мы установить более 250 идентификаторов товаров в заказе? И есть ли какие-либо ограничения на это?

А что на самом деле означает эта ошибка?

Мой код:

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

1 Ответ

0 голосов
/ 02 июля 2019

Отвечая на мой собственный вопрос.

Я думаю, что ошибка конца файла вызвана какой-то проблемой, потому что длина URI запроса превышает 14000 символов при обновлении 400 products, хотя PUT запрос не 'У меня нет ограничений на длину URI. Я только что нашел способ обновить более 300 продуктов, отправив идентификаторы продуктов в теле запроса на поставку.

Оформить ответ RehashWayne на 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)
...