Отсутствие ответа от Shopify при создании продукта с использованием Python API

Я использую Python API для создания продукта с 5 вариантами. Мне удалось создать товар в магазине без проблем. У меня проблема в том, что после создания продукта я не получаю ответа от Shopify. Из-за этого я получаю исключение HttpException от API на моем сервере.

Я могу с этим справиться, но мне нужно иметь возможность создать продукт и заполнить форму идентификаторами вариантов вновь созданного продукта. Я пытался сделать это через вызов Ajax, чтобы инициировать вызов сервера в Shopify, но я также пробовал синхронный запрос к серверу, и я все еще не получаю ответа от Shopify.

Детали продукта следующие:

custom_product = shopify.Product()
custom_product.product_type = 'Custom Shirt'
custom_product.body_html = '<strong>Custom Shirt</strong>'
custom_product.title = 'Custom Shirt'
variant1 = shopify.Variant(dict(price=0, option1='Small'))
variant2 = shopify.Variant(dict(price=0, option1='Medium'))
variant3 = shopify.Variant(dict(price=0, option1='Large'))
variant4 = shopify.Variant(dict(price=0, option1='Extra Large'))
variant5 = shopify.Variant(dict(price=0, option1='2XL'))
variant6 = shopify.Variant(dict(price=price, option1='Bundle'))
custom_product.variants = [variant1,variant2,variant3,variant4,variant5, variant6]
# create images for front and back
front_image = shopify.Image(attributes=dict(shot='front'))
front_id = front_shirt_model.key().id()
front_image.src = 'http://myurl.com/img/'+str(front_id)
back_image = shopify.Image(attributes=dict(shot='back'))
back_id = back_shirt_model.key().id()
back_image.src = 'http://myurl.com/img/'+str(back_id)
custom_product.images = [front_image, back_image]

success = custom_product.save()

Я также должен упомянуть, что использую Django в Google App Engine. Я пробовал разные альтернативы, такие как использование библиотеки Python запросов для создания объектов и соединений запроса JSON, среди прочего. Пожалуйста, дайте мне знать, если я что-то упустил. Спасибо заранее за любую помощь.


person zachhilbert    schedule 22.12.2012    source источник
comment
Что такое класс исключения и сообщение? Все ли запросы завершаются сбоем (например, сбой shopify.Shop.current ()), какие-либо запросы на создание продукта (например, создание продукта с заголовком, product_type и body_html) или эта конкретная комбинация данных о продукте? Не могли бы вы предоставить идентификатор запроса shopify.Product.connection.response.headers['x-request-id']?   -  person Dylan Smith    schedule 23.12.2012
comment
Это исключение HttpTimeout. Класс исключения поступает из Python Shopify API, потому что он не получает ответа от метода save () и запроса в магазин. Я получаю ответ по всем товарам в магазине и по всем другим запросам, которые я пробовал, если на то пошло. Это должно быть что-то либо с Google App Engine, либо с тем, как мой запрос связан с внешним интерфейсом. Когда я использую интерпретатор Python, я могу использовать тот же точный код, что и в моем приложении с моей личной машины, и я получаю все правильно.   -  person zachhilbert    schedule 23.12.2012
comment
Думаю, я должен отметить, что я получил ответ 1 раз примерно из 100 попыток. На этом этапе я смог получить идентификатор созданного продукта.   -  person zachhilbert    schedule 23.12.2012


Ответы (1)


Похоже, это связано с тем, что Google App Engine устанавливает тайм-аут http, которого Python обычно не имеет по умолчанию.

Как установить тайм-аут для urlfetch в Google App Engine? объясняет, как установить тайм-аут по умолчанию на максимум 60 секунд.

person Dylan Smith    schedule 23.12.2012
comment
Казалось, это сработало нормально. Сначала я подумал, что это не так, но как только я перешел на App Engine, я смог получить идентификатор запроса и другую информацию о продукте, которая мне нужна. Это похоже на здравый смысл, но над этим долго работали. Спасибо за помощь. - person zachhilbert; 24.12.2012