ショッピング

在庫更新API

Yahoo!ショッピングの在庫データベースを更新します。


変更履歴(2018年02月13日)

在庫設定なし(無制限在庫)を撤廃した影響により”quantity”を「INI」で更新した際は「エラーコード:st-02104」が返されます。

サンプルコード(PHP版)をご用意しています。こちらのページをご確認ください。

リクエストURL

リクエストURL
本番環境
https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/setStock
テスト環境
https://test.circus.shopping.yahooapis.jp/ShoppingWebService/V1/setStock

テスト用APIを利用したい場合は、こちらから利用申請をお願いします。



リクエストパラメータ

RESTリクエストの構築(POST)」をご参照ください。

パラメータ 説明
seller_id
(必須)
string ストアアカウントを指定します。
使用できる文字は、小文字の半角英数字、ハイフン「-」、アンダーバー「_」になります。
最大文字数は128文字です。
item_code
(必須)
string 商品コードを指定します。
カンマ「,」区切りで最大1,000個まで指定できます。
個別商品コードを持たない商品については、商品コードのみを指定してください。
個別商品コードを持つ商品については、商品コードと個別商品コードをコロン「:」でつなげてください。
使用できる文字は、共に半角英数字、ハイフン「-」になります。
最大文字数は共に99文字です。
quantity
(必須)
string 在庫数を指定します。
商品コードと同じ個数をカンマ「,」区切りで指定してください。
使用できる文字は、半角数字(-999999999~999999999)、プラス記号「+」、マイナス記号「-」です。
数値にプラス記号「+」が付いている場合は加算、マイナス記号「-」が付いている場合は減算します。
数値のみの場合はその値で更新します。
プラス記号「+」はURLエンコードした形式「%2B」にする必要があります。
「INI」を指定した場合は初期値NULLで更新します。NULL値は在庫数が無限大であることを意味します。
allow_overdraft integer 在庫数を超過する購入が可能かどうかを指定します。
商品コードと同じ個数をカンマ「,」区切りで指定してください。
0 : 超過購入不可能
1 : 超過購入可能
未指定の場合は、ストア単位で設定されている在庫の超過購入設定値(0/1)を用いて更新します。
stock_close integer 在庫クローズフラグが立っている場合は、在庫切れ状態として扱っています。
商品コードと同じ個数をカンマ「,」区切りで指定してください。
0:在庫クローズ状態の解除
未指定もしくは空の場合は、在庫クローズフラグの更新を行いません。

※在庫データベースにレコードが無い場合は、新規に登録します。
※指定した商品コードに対して1つでもエラーが発生した場合は、全ての更新を取り消します。


サンプルリクエストURL

https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/setStock

サンプルリクエスト

POST /ShoppingWebService/V1/setStock HTTP/1.1
Host: circus.shopping.yahooapis.jp
Authorization: Bearer <アクセストークン>

seller_id=yshop&item_code=item-01:sub-01&quantity=+1



サンプルコード(PHP)

<?php

  $header = [
      'POST /ShoppingWebService/V1/setStock HTTP/1.1',
      'Host: circus.shopping.yahooapis.jp',
      'Authorization: Bearer ' . <アクセストークン>
  ];

  $url   = 'https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/setStock';
  $param = array(
              "seller_id" => '<ストアアカウント>',
              "item_code" => '<商品コード>',
              "quantity"  => '<設定在庫数>',
          );

  // 必要に応じてオプションを追加してください。
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST,  'POST');
  curl_setopt($ch, CURLOPT_HTTPHEADER,     $header);
  curl_setopt($ch, CURLOPT_URL,            $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POST,           true);
  curl_setopt($ch, CURLOPT_POSTFIELDS,     http_build_query($param));

  $response = curl_exec($ch);
  curl_close($ch);

?>
    



レスポンスフィールド

フィールド 説明
/ResultSet クエリーレスポンスのすべてを含み、次の属性を持ちます。

  • totalResultsAvailable : 指定した条件に該当した在庫情報の総件数です。
  • totalResultsReturned : 返却した在庫情報の総件数です。(=totalResultsAvailable)
  • firstResultPosition : 返却した在庫情報の開始位置です。(1固定)

/ResultSet/Result 各個別レスポンスを含みます。
/ResultSet/Result/ItemCode 商品コード
/ResultSet/Result/SubCode 個別商品コード

個別商品コードを持たない商品の場合は空になります。
/ResultSet/Result/Quantity 更新後の在庫数

空の場合は在庫数が無限大であることを意味します。



サンプルレスポンス

<ResultSet totalResultsAvailable="1" totalResultsReturned="1" firstResultPosition="1">
    <Result>
        <ItemCode>item_01</ItemCode>
        <SubCode>sub_01</SubCode>
        <Quantity>11</Quantity>
    </Result>
</ResultSet>



エラー

在庫更新APIはYahoo! JAPAN Web APIに共通のエラーメッセージおよびコードを返します。


・エラーコード

コード HTTPステータスコード 説明
st-02999 500 システムエラーが発生しました。
st-02000 503 メンテナンス中です。
st-02100 400 パラメータ「seller_id」が不正です。
st-02101 400 パラメータ「item_code」が不正です。
st-02102 400 パラメータ「item_code」に指定した商品コードの数が上限値を超えています。
st-02103 400 パラメータ「item_code」に重複する商品コードが含まれています。
st-02104 400 パラメータ「quantity」が不正です。
st-02105 400 パラメータ「quantity」に指定した在庫数の数が商品コードの数と一致しません。
st-02106 400 パラメータ「allow_overdraft」が不正です。
st-02107 400 パラメータ「allow_overdraft」に指定した超過購入設定値の数が商品コードの数と一致しません。




利用制限

※短い時間の間に同一URLに大量にアクセスを行った場合、一定時間利用できなくなることもございます。(1クエリー/秒)
※大規模なサイト構築やアプリ開発等にご利用いただけるデベロッパー様や、法人様向けに、クエリー数制限/秒を緩和させていただきます。(無料)
まずはヘルプページのお問い合わせフォームからご相談ください。

利用約款

このAPIに関する利用約款はこちら