使用 Shopify API Python,添加带有价格和“requires_shipping”的新产品:False

ben*_*sen 1 python api shopify variants

我正在尝试通过 Python Shopify API 添加新产品。我知道如何添加标题、正文和图片,但我在添加价格时遇到问题,我需要 'requires_shipping': False。我在任何地方都找不到如何实现这一目标。

这是我到目前为止所拥有的。

import shopify    
API_KEY = 'dsfsdsdsdsdsad'
PASSWORD = 'sadsdasdasdas'

shop_url = "https://%s:%s@teststore.myshopify.com/admin" % (API_KEY, PASSWORD)
shopify.ShopifyResource.set_site(shop_url)



path = "audi.jpg"

new_product = shopify.Product()
new_product.title = "Audi pictures test "
new_product.body_html = "body of the page <br/><br/> test <br/> test"

###########this part is so far good. but the bottom part is not working#### 

variant = shopify.Variant(price=9.99)) # this does not work
new_product.variant() # this does not work
variant_2 = shopify.Variant(requires_shipping=False) #this does not work
new_product.variant_2() This does not work 



image = shopify.Image()

with open(path, "rb") as f:
    filename = path.split("/")[-1:][0]
    encoded = f.read()
    image.attach_image(encoded, filename=filename)

new_product.images = [image] # Here's the change
new_product.save()
Run Code Online (Sandbox Code Playgroud)

小智 5

只有前缀选项(例如,product_id对于 Variants、order_id对于 Fulfillments)应该作为显式参数传递给构造函数。如果您想初始化资源的属性,您需要将它们作为字典传递。

您也不会在任何时候将新变体与新产品关联起来。

这应该有帮助:

new_product = shopify.Product()
new_product.title = "Shopify Logo T-Shirt"
new_product.body_html = "<b>Test description</b>"
variant = shopify.Variant({'price': 9.99, 'requires_shipping': False})
new_product.variants = [variant]
new_product.save()
=> True
Run Code Online (Sandbox Code Playgroud)

您还可以在初始化后指定资源的属性,就像您已经为 Product 资源所做的那样。

variant = shopify.Variant()
variant.price = 9.99
variant.requires_shipping = False
Run Code Online (Sandbox Code Playgroud)

另一种选择是首先保存产品并通过product_id显式传递来初始化变体,例如

shopify.Variant(product_id=1234567)

查看自述文件以获取更多使用示例。