2012-06-17 2 views
2

Пытается создать новый вариант с использованием библиотеки python.python api - shopify.Variant 404 Ошибка

После создания Shopify сеанса я просто пытаюсь создать экземпляр Variant в соответствии с Документами

session = shopify.Session('<My Url>') 
session.token = self.provider_access_token 
shopify.ShopifyResource.activate_session(session) 

v=shopify.Variant(dict(price="20.00", option1="Second")) 
v.save() 

и получить:

Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/Users/yoda/.virtualenvs/myproject/src/shopify/shopify/base.py", line 151, in  save 
    return super(ShopifyResource, self).save() 
    File "/Users/yoda/.virtualenvs/myproject/lib/python2.6/site-packages/pyactiveresource /activeresource.py", line 732, in save 
    data=self.to_xml()) 
    File "/Users/yoda/.virtualenvs/myproject/lib/python2.6/site-packages/pyactiveresource /connection.py", line 313, in post 
    return self._open('POST', path, headers=headers, data=data) 
    File "/Users/yoda/.virtualenvs/myproject/src/shopify/shopify/base.py", line 18, in  _open 
    self.response = super(ShopifyConnection, self)._open(*args, **kwargs) 
    File "/Users/yoda/.virtualenvs/myproject/lib/python2.6/site-packages/pyactiveresource /connection.py", line 258, in _open 
    response = Response.from_httpresponse(self._handle_error(err)) 
    File "/Users/yoda/.virtualenvs/myproject/lib/python2.6/site-packages/pyactiveresource /connection.py", line 357, in _handle_error 
    raise ResourceNotFound(err) 
ResourceNotFound: HTTP Error 404: Not Found 

Любые мысли или советы? :) Варианты

Благодаря RCdH

ответ

3

Продукта должны иметь product_id указанные при списке, граф, или создавать действия. Это можно увидеть в Product Variant API docs, потому что product_id является частью пути URL. По этой причине ошибка 404 возвращается из Shopify, потому что путь не существует.

Страница using the shopify_python_api в Вики-продаже содержит раздел о префиксах, который вам может пригодиться.

В вашем примере вам просто нужно изменить линии

v=shopify.Variant(dict(price="20.00", option1="Second"))

в

v=shopify.Variant(dict(price="20.00", option1="Second", product_id=product.id))

если у вас есть продукт, чтобы создать вариант на в переменной product.

+0

Привет Дилан, спасибо за обратную связь. Я сделаю это выстрелом .. но как часть процесса, который я пробовал .. p = shopify.Product (xxxxx) p.variants.append (v) Это, конечно, не сработало .. поэтому я вручную необходимо указать product_id всегда. Обновит тест по указанию и посмотрит, что получится :) – stardog101

+0

hmmm well вот следующая много странности: Хмм, похоже, ограничение лимита на переполнение стека для комментариев .. это отстой немного. – stardog101

+0

v = shopify.Variant (ДИКТ (ы = 'test1', product_id = 92048506, цена = "20,00")) v.save() – stardog101

0

Вы также должны передать идентификатор Variant наряду с product_id

# get first product 
product = shopify.Product.find()[0] 

# get product's first variant 
variant = product.variants[0] 

# pass both the product and variant ids 
v=shopify.Variant(dict(price="20.00", product_id=product.id, id=variant.id)) 

# finally save the variant 
v.save()