2017-06-02 105 views
0

我完全不清楚如何使用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_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是sku依賴於(如果有的話)的屬性 的property_ids的數組。

如果提供的產品sku值和產品數量和價格與提供的「on_property_ *」值不匹配,則更新將失敗。

當提供價格時,提供相當於貨幣資源中指定的金額除以 除數的浮動價。

產品參數應該是JSON產品陣列,即使您只發送單個產品。 JSON blob中的所有字段名稱都應該是小寫字母。

https://www.etsy.com/developers/documentation/reference/listinginventory#method_updateinventory

採取由於添加的東西對Etsy的銷售起點就是調用createListing()的,我希望出售項目的詳細信息(Inc股票數量和價格),我不明白如何調用updateInventory()來更新這個項目的股票和/或價格,所以任何人都可以提供一些清晰的事情請(我是聯繫了Etsy開發人員的支持,但它可能需要一段時間他們迴應)。

回答

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是必需的。
  • 如果您對不同的 版本有不同的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(**數據)

+0

謝謝鄧肯的詳細解答。雖然我從C#中完成了這一切,但我仍然無法驗證答案,因爲我試圖通過身份驗證過程(再次使用C#),但與支持團隊的響應一起,我相信您的回覆將有所幫助。非常感謝。 – err1

1

要更新在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提供變體屬性。