ショッピング
在庫更新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」にする必要があります。 |
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.1Host: circus.shopping.yahooapis.jp
Authorization: Bearer <アクセストークン>
seller_id=yshop
サンプルコード(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 | 更新後の在庫数 空の場合は在庫数が無限大であることを意味します。 |
サンプルレスポンス
<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に関する利用約款はこちら。