2017-06-02 2 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()の呼び出しから返されます。 price_on_property、stock_on_propertyとsku_on_propertyについて

Etsyのの脚注は、混乱に追加します。

price_on_propertyは(もしあれば)に依存して価格のプロパティのproperty_idsの配列です。

quantity_on_propertyは、量が(もしあれば)依存するプロパティのproperty_idsの配列です。

sku_on_propertyは、skuが(もしあれば)依存する というプロパティのproperty_idsの配列です。

product skuおよび提供数量と価格の指定値が、 "on_property_ *"フィールドの指定値と互換性がない場合、更新は失敗します。

価格を提供する場合、Moneyリソースで指定されている額に換算した額に相当するfloatを divisorで指定します。

商品パラメータは、商品を1つだけ送信する場合でも、商品のJSON配列である必要があります。 JSON BLOB内のすべてのフィールド名は小文字にする必要があります。 Etsyの上で販売のために物事を追加するための出発点は、ちょうど私が(INC在庫数量と価格)を販売することを希望するアイテムの詳細をcreateListing()を呼び出すことであることを考えるとhttps://www.etsy.com/developers/documentation/reference/listinginventory#method_updateinventory

から撮影

、私はupdateInventory()を呼び出してこのアイテムの在庫および/または価格を更新する方法を理解していないので、誰でもこの問題について明快さを提供することができます(そしてはい、私はEtsy開発者のサポートに連絡しました。彼らは応答する)。

答えて

2

python - githubのetsy_apiモジュールがあるとします。

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モデルを返送する必要があり、価格を更新するには:

Etsyの製品リストは、以下の構造を有しています。注:

  • バリエーションがある場合はprice_on_propertyが必要です。
  • 異なる のバリエーションで異なるskusを使用している場合、sku_on_propertyはオプションです。

  • バリエーションの数量が異なる場合、quantity_on_propertyはオプションです。

    は、あなたが上で価格を変更したい製品のlisting_idを取得:

私が見つけた最も簡単な方法は、次の操作を行うことです。 このリスティングを取得するには、インベントリURIを呼び出します。私はListProduct ['products']を構築する必要がないようにこれをやっています。あまりにも多くのことが起こっています。

listing_id = 'the product's listing_id' 
ListingProduct = etsy_api.getInventory(listing_id=listing_id) 

ListingProduct [ '製品']は、このリストには製品のリストです。このリストのサイズは、あなたが持っているバリエーションの数と同じです。 ListProduct ['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

詳しい回答はDuncanにありがとうございます。私はC#からすべてこれをやっていますが、認証プロセスを過ぎても(C#から)取得しようとしているので、まだ回答を確認できませんが、サポートチームの回答とともに、あなたの回答が役立つと確信しています。もう一度ありがとう。 – err1

1

Etsyの中の製品のバリエーションを更新するには、あなたは(あなたがGitHubのからEtsyのモジュールを使用している期待)APIからの更新インベントリの呼び出しを使用する必要があります。 が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によって提供されます。

関連する問題