我似乎无法创建具有多种选项的产品。我尝试了一切,Shopify官方图书馆的文档很差。我查看了API参考指南并搜索其他表单,但似乎无法找到正确的语法。代码如下。我尝试使用两个选项创建产品,例如option1是size,option2是color。打印输出也没有显示错误消息,但Shopify商店中没有显示变体选项,只显示带有0个变体的产品。
new_product = shopify.Product()
new_product.title = "My Product"
new_product.handle = "test-product"
##what I've tried... and countless others
#First example of new_product.variants
new_product.variants = shopify.Variant({'options': {'option1' : ['S', 'M', 'L', 'XL'], 'option2' : ['Black', 'Blue', 'Green', 'Red']}, 'product_id': '123456789'})
#Second example of new_product.variants
new_product.variants = shopify.Variant({'options': [{'option1': 'Size', 'option2': 'Colour','option3': 'Material'}]})
#Thrid example of new_product.variants
new_product.variants = shopify.Variant([
{'title':'v1', 'option1': 'Red', 'option2': 'M'},
{'title':'v2', 'option1' :'Blue', 'option2' :'L'}
])
new_product.save()
##No errors are output, but doesn't create variants with options
if new_product.errors:
print new_product.errors.full_messages()
print "Done"
答案 0 :(得分:3)
文档实际上是正确的,但它确实令人困惑。看起来你似乎缺少三个要点:
Product.variants
是Variant
资源的列表;对于您想要的每个变体,您需要Variant
资源Variant
option1
,option2
和option3
属性示例:强>
import shopify
# Authenticate, etc
# ...
new_product = shopify.Product()
new_product.title = "My Product"
new_product.handle = "test-product"
new_product.options = [
{"name" : "Size"},
{"name" : "Colour"},
{"name" : "Material"}
]
colors = ['Black', 'Blue', 'Green', 'Red']
sizes = ['S', 'M', 'L', 'XL']
new_product.variants = []
for color in colors:
for size in sizes:
variant = shopify.Variant()
variant.option1 = size
variant.option2 = color
variant.option3 = "100% Cotton"
new_product.variants.append(variant)
new_product.save()
值得注意的是,每个变体的选项组合必须是唯一的,否则它将返回错误。一个没有记录的怪癖是当你没有在父options
资源上提供任何Product
时,它会隐式地给你一个名为Style
的选项,同样,如果您没有在变体上分配任何选项,那么它会自动为每个变体Default Title
分配option1
。由于每个选项组合都是唯一的,如果您没有分配任何options
或option1
值,那么当您只有一个变体时,它就不会出错。如果您尝试使用多个变体,它会给您带来的错误会让您感到困惑,因为它会引用变体选项的非唯一性,而不是缺少options
和option1
参数。< / p>