如何使用Etsy的updateInventory()调用来更新商家/股票的价格

时间:2017-06-02 14:42:45

标签: stock price etsy

我一点都不清楚如何使用listing-> createListing()创建列表后更新列表的价格/股票。

要更新库存/价格,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_valuesofferings的组合,我对此一无所知。

  • 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开发人员支持,但可能需要一段时间才能回复)。

2 个答案:

答案 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模型,但需要进行更改。注意

    如果您有变化,则需要
  • price_on_property。
  • sku_on_property是可选的,如果你有不同的skus 变化。
  • 如果您的数量不同,则quantity_on_property是可选的 变化。

我找到的最简单的方法是执行以下操作:

获取要更改价格的产品的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提供变体属性。