如何使用 Etsy 的 updateInventory() 调用来更新列表的库存/价格

err*_*rr1 5 stock etsy price

我完全不清楚如何在使用listing->createListing()创建列表后更新列表的价格/库存。

要更新库存/价格,Etsy 的文档显示要调用listing->updateInventory()。但是,此调用需要称为产品的东西以及几个属性(price_on_property、quantity_on_property 和 sku_on_property):

  • 列表ID
  • 产品*
  • 房产价格
  • 属性数量
  • 属性上的 sku

在哪里:

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() 以及我希望出售的商品的详细信息(包括库存数量和价格),我不明白如何调用 updateInventory() 来更新该商品的库存和/或价格,所以任何人都可以就此事提供一些说明(是的,我已经联系了 Etsy 开发人员支持,但他们可能需要一段时间才能回复)。

小智 4

在 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": []
Run Code Online (Sandbox Code Playgroud)

}

要更新价格,您需要发回此 ListingProduct 模型,但要进行所需的更改。笔记

  • 如果您有变化,则需要price_on_property。
  • 如果不同变体有不同的 sku,则 sku_on_property 是可选的。
  • 如果您的变体数量不同,则 property_on_property 是可选的

我发现的最简单的方法是执行以下操作:

获取您要更改价格的产品的listing_id。调用库存 URI 以获取此列表。我这样做是为了避免构造 ListingProduct['products']。它发生了太多事情。

 listing_id = 'the product's listing_id'
 ListingProduct = etsy_api.getInventory(listing_id=listing_id)
Run Code Online (Sandbox Code Playgroud)

ListingProduct['products']是此列表的产品列表。该列表的大小等于您拥有的变体数量。采用 ListingProduct['products'] 并针对每个变体更改价格。

如果您查看 ListingProduct['products'],您会发现需要完成的更改是,

ListingProducts['products'][0]['offerings'][0]['price'] = NewPrice
Run Code Online (Sandbox Code Playgroud)

如果列表有2 个版本,则也更改其价格

ListingProducts['products'][1]['offerings'][0]['price'] = OtherNewPrice
Run Code Online (Sandbox Code Playgroud)

完成此操作后,请使用数据进行调用。

data = {
'listing_id': listing_id
'products': json.dumps(ListingProduct['products'])
'price_on_property': 200   #If you have variation
}
Run Code Online (Sandbox Code Playgroud)

etsy_api.updateInventory(**数据)