2

Python lib を使用して新しいバリアントを作成しようとしています。

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

製品バリアントには、list、count、または create アクションの際に指定された product_id が必要です。product_id は URL パスの一部であるため、これはProduct Variant API ドキュメントで確認できます。パスが存在しないため、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

また、product_id とともにバリアントの 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 に答える