2017-06-02 134 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提供变体属性。