2012-06-17 48 views
2

尝试使用python lib创建新的变体。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路径的一部分。正是由于这个原因,Shopify返回了404错误,因为路径不存在。

Shopify Wiki上的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

嗯,这里是下一个古怪的地方: 嗯似乎是堆栈溢出字符限制的评论..这一点。 – stardog101

+0

V = shopify.Variant(字典(SKU = 'test1的',的product_id = 92048506,价格= “20.00”)) v.save() – stardog101

0

您还需要通过变异的ID与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()