在庫更新API
Yahoo!ショッピングの在庫データベースを更新します。
変更履歴
2023年03月08日
下記エラーコードの情報を修正しました。
・st-02000 → ed-00002
2022年10月04日
エラーコード「ed-10001」を追加しました。
サンプルコード(PHP版)をご用意しています。こちらのページをご確認ください。
存在しない商品コード(item_code)にリクエストした場合の挙動について
エラーレスポンスを返しません。
その後、商品情報が登録されると、事前にリクエストしていた在庫情報と紐づけされます。
リクエストURL
本番環境
https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/setStock
テスト環境
https://test.circus.shopping.yahooapis.jp/ShoppingWebService/V1/setStock
テスト用APIを利用したい場合は、こちらから利用申請をお願いします。
リクエストパラメータ
「Web APIの使い方#POSTとは」をご参照ください。
パラメータ | 値 | 説明 |
---|---|---|
seller_id (必須) |
string | ストアアカウントを指定します。 使用できる文字は、小文字の半角英数字、ハイフン「-」、アンダーバー「_」になります。 最大文字数は128文字です。 |
item_code (必須) |
string | 商品コードを指定します。 カンマ「,」区切りで最大1,000個まで指定できます。 個別商品コードを持たない商品については、商品コードのみを指定してください。 個別商品コードを持つ商品については、商品コードと個別商品コードをコロン「:」でつなげてください。 使用できる文字は、共に半角英数字、ハイフン「-」になります。 最大文字数は共に99文字です。 |
quantity (必須) |
string | 在庫数を指定します。 商品コードと同じ個数をカンマ「,」区切りで指定してください。 使用できる文字は、半角数字(-999999999~999999999)、プラス記号「+」、マイナス記号「-」です。 数値にプラス記号「+」が付いている場合は加算、マイナス記号「-」が付いている場合は減算します。 ※在庫更新リクエスト内に1件でも加算、減算して999999999 or -999999999を超える値が含まれる場合、全ての在庫更新に失敗します。 数値のみの場合はその値で更新します。 プラス記号「+」はURLエンコードした形式「%2B」にする必要があります。 |
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 | クエリーレスポンスのすべてを含み、次の属性を持ちます。
|
/ResultSet/Result | 各個別レスポンスを含みます。 |
/ResultSet/Result/ItemCode | 商品コード |
/ResultSet/Result/SubCode | 個別商品コード 個別商品コードを持たない商品の場合は空になります。 |
/ResultSet/Result/Quantity | 更新後の在庫数 空の場合は在庫数が無限大であることを意味します。 ステータスコード207の場合は返却されません。 |
/ResultSet/Result/ErrorCode | ステータスコード207の場合のみ返却されます。 エラーの内容は4.エラーの内容となります。 |
サンプルレスポンス(更新成功時)
ステータスコード200 OKの場合
HTTP/1.1 200 OK
Content-Type: application/xml;charset=UTF-8
<ResultSet totalResultsAvailable="1" totalResultsReturned="1" firstResultPosition="1">
<Result>
<ItemCode>item_01</ItemCode>
<SubCode>sub_01</SubCode>
<Quantity>11</Quantity>
</Result>
</ResultSet>
ステータスコード207 OKの場合
HTTP/1.1 207 OK
Content-Type: application/xml;charset=UTF-8
<ResultSet totalResultsAvailable="1" totalResultsReturned="1" firstResultPosition="1">
<Result>
<ItemCode>item_01</ItemCode>
<SubCode>sub_01</SubCode>
<Quantity>11</Quantity>
</Result>
<Result>
<ItemCode>item_02</ItemCode>
<SubCode>sub_02</SubCode>
<Quantity></Quantity>
<ErrorCode>st-02104</ErrorCode>
</Result>
<Result>
<ItemCode>item_02</ItemCode>
<SubCode>あ</SubCode>
<Quantity></Quantity>
<ErrorCode>st-02101,st-02104</ErrorCode>
</Result>
</ResultSet>
エラー
Yahoo!ショッピングで提供している全てのAPIには、共通で利用するエラーコードがあります。エラーの際には、まず始めに以下をご確認ください。
在庫更新APIで固有に返すエラーコードは以下をご覧ください。
エラーコード
コード | HTTPステータスコード | 説明 |
---|---|---|
st-02999 | 500 | システムエラーが発生しました。 |
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」に指定した超過購入設定値の数が商品コードの数と一致しません。 |
ed-00002 | 503 | メンテナンス中です。 |
ed-00003 | 400 | ストアアカウントが指定されていません。 |
ed-00005 | 400 | ストアアカウントの指定が不正です。 |
ed-00004 | 400 | ストアアカウントが存在しません。 |
ed-00001 | 500 | システムエラーが発生しました。 |
ed-10001 | 207 | 在庫更新に失敗しました。 リクエストされたいずれかの在庫の更新には成功しているため、207応答になります。 |
ed-10002 | 207 | 在庫更新に成功しているが、更新後の在庫情報の取得に失敗した場合リクエストされたいずれかの在庫の更新には成功しているため、207応答になります。 |
利用制限
※短い時間の間に同一URLに大量にアクセスを行った場合、一定時間利用できなくなることもございます。(1クエリー/秒)
利用約款
このAPIに関する利用約款はこちら。
目次
- 商品検索
- カテゴリランキング
- カテゴリID取得
- 商品コード検索(商品詳細)
- キーワードランキング
- おすすめ情報モジュール
- ポイントキャンペーン情報取得
- 販促イベント検索
- 商品レビュー検索
- 出品管理に関連するAPI
- 商品に関連するAPI
- 問い合わせ管理に関連するAPI
- 製品/SHPカテゴリ/ブランドに関連するAPI
- 在庫に関連するAPI
- ストアカテゴリに関連するAPI
- 画像に関連するAPI
- デザインに関連するAPI
- 注文に関するAPI
- ヘルプ