如何使用Etsy的updateInventory()调用来更新股票/股票的价格
我完全不清楚如何使用listing-> createListing()初始创建一个商品的价格/股票后, 。 如何使用Etsy的updateInventory()调用来更新股票/股票的价格
要更新股票/价格,Etsy的文档说调用listing-> updateInventory()。但是,此调用需要一些所谓的产品有几个属性(price_on_property,quantity_on_property和sku_on_property)在一起:
- listing_id
- 产品*
- 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是sku依赖于(如果有的话)的属性 的property_ids的数组。
如果提供的产品sku值和产品数量和价格与提供的“on_property_ *”值不匹配,则更新将失败。
当提供价格时,提供相当于货币资源中指定的金额除以 除数的浮动价。
产品参数应该是JSON产品阵列,即使您只发送单个产品。 JSON blob中的所有字段名称都应该是小写字母。
从https://www.etsy.com/developers/documentation/reference/listinginventory#method_updateinventory
采取由于添加的东西对Etsy的销售起点就是调用createListing()的,我希望出售项目的详细信息(Inc股票数量和价格),我不明白如何调用updateInventory()来更新这个项目的股票和/或价格,所以任何人都可以提供一些清晰的事情请(我是联系了Etsy开发人员的支持,但它可能需要一段时间他们回应)。
在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模式,但你想要的改变。备注
- 如果您有变化,price_on_property是必需的。
- 如果您对不同的 版本有不同的skus,sku_on_property是可选的。
- 如果您在
版本上有不同的数量,quantity_on_property是可选的。
我发现最简单的方法是做到以下几点:
获取listing_id你想改变价位的产品。 拨打库存URI以获取此列表。我这样做是为了避免必须构建ListingProduct ['products']。它有太多的事情要做。
listing_id = 'the product's listing_id'
ListingProduct = etsy_api.getInventory(listing_id=listing_id)
ListingProduct [ '产品']是产品此房源清单。此列表的大小等于您拥有的变体数量。 Take ListingProduct ['products']并为每个变体更改价格。
如果你看一看ListingProduct [“产品”],你会发现需要做的改变,
ListingProducts['products'][0]['offerings'][0]['price'] = NewPrice
如果一上市就变化,然后改变价格也是这样
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(**数据)
要更新在Etsy的产品变化,你需要使用更新库存呼叫从API(期待你正在使用的Etsy模块从GitHub)。 参考以下链接https://www.etsy.com/developers/documentation/getting_started/inventory
你需要使用该调用发送将包括数据 -
array (
products => json_encode($products),
price_on_property =>
quantity_on_property =>
)
price_on_property将包括Etsy的 quantity_on_property提供的变化属性ID将被包括在一个以上的情况下,变化属性
产品索引将包括与细节的变化的阵列 -
[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提供变体属性。
谢谢邓肯的详细解答。虽然我从C#中完成了这一切,但我仍然无法验证答案,因为我试图通过身份验证过程(再次使用C#),但与支持团队的响应一起,我相信您的回复将有所帮助。非常感谢。 – err1