我一点都不清楚如何使用listing-> createListing()创建列表后更新列表的价格/股票。
要更新库存/价格,Etsy的文档说要调用listing-> updateInventory()。但是,此调用需要一些称为产品的东西以及一些属性(price_on_property,quantity_on_property和sku_on_property):
其中:
products在他们的文档中进一步定义为property_values和offerings的组合,我对此一无所知。
listing_id最初是从对createListing()的调用返回的。
Etsy关于price_on_property,stock_on_property和sku_on_property的脚注增加了混乱:
price_on_property是属性的property_ids数组,其价格取决于(如果有)。
quantity_on_property是属性的property_ids数组,其数量取决于(如果有)。
sku_on_property是属性的property_ids数组 哪个sku取决于(如果有的话)。
如果产品sku和提供数量和价格的提供值与提供的" on_property _ *"的值不相符,则更新将失败。领域。
在提供价格时,提供相当于金额除以的浮动金额 Money资源中指定的除数。
products参数应该是JSON产品数组,即使您只发送单个产品也是如此。 JSON blob中的所有字段名称都应为小写。
取自https://www.etsy.com/developers/documentation/reference/listinginventory#method_updateinventory
鉴于在Etsy上添加待售物品的起点只是调用createListing()以及我想要出售的物品的详细信息(包括库存数量和价格),我不明白如何调用updateInventory()更新此项目的库存和/或价格,所以任何人都可以提供一些关于此问题的清晰度(是的,我已经联系了Etsy开发人员支持,但可能需要一段时间才能回复)。
答案 0 :(得分:2)
在python中 - 我假设你有来自github的etsy_api模块。
Etsy产品列表具有以下结构:
ListingProduct = {
"price_on_property": [
property_ids
],
"products": [
LIST OF PRODUCT VARIATIONS FOR THIS LIST. IF YOU HAVE NO VARIATIONS
THEN THIS LIST WILL HAVE ONLY 1 PRODUCT.
],
"quantity_on_property": [],
"sku_on_property": []
}
要更新价格,您需要发送回此ListingProduct模型,但需要进行更改。注意
我找到的最简单的方法是执行以下操作:
获取要更改价格的产品的listing_id。 调用库存URI以获取此列表。我这样做是为了避免构建ListingProduct ['products']。它有太多了。
listing_id = 'the product's listing_id'
ListingProduct = etsy_api.getInventory(listing_id=listing_id)
ListingProduct ['products'] 是此商家信息的产品列表。此列表的大小等于您拥有的变体数。 以ListingProduct ['products']为例,每个变化都会改变价格。
如果你看一下ListingProduct ['products'],你会发现需要做的改变是,
ListingProducts['products'][0]['offerings'][0]['price'] = NewPrice
如果商家信息有 2 变体,那么也要更改价格
ListingProducts['products'][1]['offerings'][0]['price'] = OtherNewPrice
一旦你这样做,就用数据打电话。
data = {
'listing_id': listing_id
'products': json.dumps(ListingProduct['products'])
'price_on_property': 200 #If you have variation
}
etsy_api.updateInventory(**数据)
答案 1 :(得分:2)
要更新ETSY中产品的变体,您需要使用API中的更新库存调用(期望您正在使用GitHub中的Etsy模块)。 请参阅链接https://www.etsy.com/developers/documentation/getting_started/inventory
您需要通过此次调用发送的数据包括 -
array (
products => json_encode($products),
price_on_property =>
quantity_on_property =>
)
price_on_property将包含etsy提供的变体属性id 如果存在多个变体属性,则会包含quantity_on_property
产品索引将包含一系列具有详细信息的变体 -
[0] => (
product_id=> 1234,
property_values" => [
property_id => 500,
property_name => color,
'values => [ green ],
],
offerings" => [
(
price => 200
quantity => 1,
)
)
[1] => and so on...
属性ID将由etsy提供变体属性。