2

尝试使用 python 库创建一个新的 Variant。

创建 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

4

2 回答 2

3

产品变体必须在列出、计数或创建操作时指定 product_id。这可以在Product Variant API 文档中看到,因为 product_id 是 URL 路径的一部分。正是由于这个原因,Shopify 会返回 404 错误,因为路径不存在。

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

于 2012-06-17T08:34:34.213 回答
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()
于 2012-08-17T00:23:23.730 回答