ショッピング

ヘルプ

目次

ショッピングAPIを利用するには

「Yahoo! ID連携」に関連するヘルプ

ショッピングAPIを利用するには

Yahoo!ショッピングAPIを利用したい。

下記ページから「本番環境用」を指定してお申し込みください。
https://yahoo.jp/VhAJ3S

※注文APIを利用する場合は、別途申請が必要です。

注文APIを利用したい。

アプリケションID」を取得した後から、
下記「注文API利用申請フォーム」からお申し込みください。
https://yahoo.jp/CU6Uym"

※設定完了まで約1週間〜10日程度お時間をいただいております。

テスト環境を利用したい。

下記ページから「テスト用環境」を指定してお申し込みください。
https://yahoo.jp/VhAJ3S

テスト用店舗とテスト環境用APIを提供させていただきます。

リクエスト数の上限を緩和してほしい。

下記「APIコール数制限緩和申請フォーム」からお申し込みください。
https://yahoo.jp/rOQgO5

※1つのAPIに対しての上限は「10req/sec」です。

取得済みの「アプリケーションID」「シークレット」を確認したい。

Yahoo!IDでログインした状態で下記「アプリケーションの管理」ページをご確認ください。
https://e.developer.yahoo.co.jp/dashboard/

「アプリケーション一覧」から任意の項目を選択してご確認ください。


クライアント証明書について

注文APIの「証明書」による認証について

注文に関するAPIでは「証明書」を利用した認証を行うことで、Yahoo! JAPAN IDによる再認可までの期間を延長できます。

「証明書」が利用可能なAPI


上記APIでは最大12時間で再認可が必要でしたが、「証明書」を組み合わせることで最大4週間まで延長できます。


トークンの有効期限が切れている場合は、以下のようなレスポンスを返しています。

  <?xml version='1.0' encoding='UTF-8' ?>
  <Error>
  <Message>AccessToken has been expired. This API session is shorter than another API.</Message>
  <Code>px-04102</Code>
  </Error>
    

※証明書なしでも、注文APIは利用可能です。

証明書の申請方法

申請について

証明書は、プロフェッショナル出店ストアのみ申請が可能です。

証明書を希望の方は、「ストアクリエイターPro > 各種申請」からお申し込みください。
申請から証明書の発行までは最大5営業日いただいております。
発行後、メールでの通知はしておりませんのでご注意ください。

申請後の流れについて

「証明書」と「秘密鍵」をダウンロードしてください。

証明書が発行されると、ストアクリエイターProトップに「ダウンロード」ボタンが表示されます。
発行後、メールでの通知はしておりませんのでご注意ください。
※ダウンロードには、「ツール管理権限」が必要です。

拡張子が”.crt”のファイル・・・「証明書」
拡張子が”.key”のファイル・・・「秘密鍵」

証明書の有効期限について

注文APIの証明書有効期限は発行した月より1年間となります。
例:2014年9月中に発行されたお客様の証明書有効期限は2015年8月末となります。

証明書の更新について

自動更新のため、別途申請は不要です。

有効期限切れ1,2か月前の計2回メールで通知を行っています。
有効期限切れとなる1カ月前よりダウンロード可能ですので、有効期限までに証明書の更新をお願いいたします。

すでに利用されている「証明書」「秘密鍵」ファイルと、ダウンロードした新しいファイルを置き換えてください。

証明書の利用方法

・ストアクリエイタProでダウンロードした「証明書」「秘密鍵」ファイルをご利用ください。
「注文API」にリクエストする際のオプションとしてセットしてください。

サンプルコード(PHP)
<?php
    
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
  curl_setopt($ch, CURLOPT_SSLCERT, ‘証明書のパスを指定’);
  curl_setopt($ch, CURLOPT_SSLKEY, ‘秘密鍵のパスをを指定’);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);

    :

  $result = curl_exec($ch);
  curl_close($sh);
    
?>
    

サンプルコード(java)
# 証明書と秘密鍵を結合したPKCS12ファイルを作る
$ openssl pkcs12 -export -inkey "秘密鍵のパスを指定" -in "証明書のパスをを指定" -out "出力ファイル名"

public class APIClientSample {
    static final String URL = "APIのURL";
    static final String P12FILE = "出力したPKCS12ファイル";
    static final char[] PASSWORD = "PKCS12ファイル作成で指定したパスワード".toCharArray();
 
    public static void main(String[] args) {
        // PKCS12ファイル読み込み
        KeyManagerFactory keyManagerFactory;
        try (FileInputStream inputStream = new FileInputStream(P12FILE)) {
            KeyStore keyStore = KeyStore.getInstance("PKCS12");
            keyStore.load(inputStream, PASSWORD);
 
            keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
            keyManagerFactory.init(keyStore, PASSWORD);
 
            SSLContext sslContext = SSLContext.getInstance("TLS");
            sslContext.init(keyManagerFactory.getKeyManagers(), null, null);
            HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
        } catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | IOException | UnrecoverableKeyException | KeyManagementException e) {
            e.printStackTrace();
        }
        
        // 以下省略
    

Yahoo!ショッピング出店ストアではない場合

出店ストアではなく証明書を利用したいデベロッパーの方は、出店ストアから証明書(+秘密鍵)を貸与してもらうことで利用できます。
ただし、貸与に関しては証明書を取得したストアの責任の範囲で行われるものです。

テスト環境での証明書の利用について

テスト環境(sandbox)では、クライアント証明書を利用することはできません。

「Yahoo! ID連携」に関連するヘルプ

アクセストークンの取得について(v1)

「ストア運営をサポートするAPI」にリクエストをするためには「アクセストークン」が必要です。
以下の流れでアクセストークンを取得してください。

1)「Authorizationエンドポイント」にリクエストをして「認可コード(code)」を取得する。
2)「Tokenエンドポイント」にリクエストをしてトークン情報を取得する。
※トークン情報の中に”アクセストークン”が含まれます。

1)「Authorizationエンドポイント」にリクエストをして「認可コード(code)」を取得する。

指定したURL(redirect_uri)に「認可コード(code)」を付加してリダイレクトします。
認可コード(code)部分をコピーして2)にお進みください。

例)"redirect_uri"に「https://www.yahoo.co.jp/」を指定した場合
1) 下記URLにリクエストをします。

https://auth.login.yahoo.co.jp/yconnect/v1/authorization?response_type=code&client_id=<アプリケーションID>&redirect_uri=https%3A%2F%2Fwww.yahoo.co.jp%2F&scope=openid+profile&bail=1
    

2) パスワード認証後、指定したURLにリダイレクトされます。
 その際に下記のようなパラメータを付加しております。

https://www.yahoo.co.jp/?code=abcdefgh&state=

青字の部分が「認可コード(code)」です。こちらをコピーしてお使いください。
詳細は下記ページをご確認ください。
https://developer.yahoo.co.jp/yconnect/v1/server_app/explicit/authorization.html

2)「Tokenエンドポイント」にリクエストをしてトークン情報を取得する。

「新規取得」する場合

1)で戻ってきた「認可コード(code)」をリクエストパラメータ”code”にそのままセットしてください。

サンプルコード(PHP)
<?php

  define('APPID',        '<アプリケーションID>');
  define('SECRET',       '<シークレット>');
  define('CALLBACK_URL', '<コールバックURL>');
  define('TOKEN_URL',    'https://auth.login.yahoo.co.jp/yconnect/v1/token');

  $header = [
      'Content-Type: application/x-www-form-urlencoded',
      'Authorization: Basic ' . base64_encode(APPID . ':' . SECRET),
  ];

  $param = array(
      'code'         => <認可コード(code)>,
      'grant_type'   => 'authorization_code',
      'redirect_uri' => CALLBACK_URL,
  );

  // 任意でオプションの追加をしてください。
  $ch = curl_init(TOKEN_URL);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST,  'POST');
  curl_setopt($ch, CURLOPT_HTTPHEADER,     $header);
  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);

  // 任意でレスポンスデータの判定処理を追加してください。
  $token = json_decode($response, true);

  // 実行した結果は下記に別枠で記載しております。
  var_dump($token);

?>
    

以下のようなフォーマットでトークン情報が返されます。
$ php get_token.php
-----------------------------------------------------------------------------------------------
Array
(
    [access_token] => <こちらに「アクセストークン」がセットされています。> 
    [token_type] => bearer
    [expires_in] => 3600
    [refresh_token] => <こちらに「リフレッシュトークン」がセットされています。>
)
    

「更新」する場合

取得済みのトークン情報には「リフレッシュトークン(refresh_token)」が含まれています。
リフレッシュトークン(refresh_token)をリクエストパラメータ”refresh_token”にセットをして「Tokenエンドポイント」にリクエストをしていただくと、更新されたトークン情報が返ってきます。

サンプルコード(PHP)
<?php

  define('APPID',     '<アプリケーションID>');
  define('SECRET',    '<シークレット>');
  define('TOKEN_URL', 'https://auth.login.yahoo.co.jp/yconnect/v1/token');

  $header = [
      'Content-Type: application/x-www-form-urlencoded',
      'Authorization: Basic ' . base64_encode(APPID . ':' . SECRET),
  ];

  // リフレッシュトークンは「新規取得」時のレスポンスに含まれています。
  $param = array(
      'refresh_token'  => <リフレッシュトークン>,
      'grant_type'     => 'refresh_token',
  );

  // 任意でオプションの追加をしてください。
  $ch = curl_init(TOKEN_URL);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST,  'POST');
  curl_setopt($ch, CURLOPT_HTTPHEADER,     $header);
  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);

  // 任意でレスポンスデータの判定処理を追加してください。
  $token = json_decode($response, true);

?>
    

※リクエストパラメータ”grant_type”にセットする内容が異なりますので、ご注意ください。
新規取得 : authorization_code
更新 : refresh_token

詳細は下記ページをご確認ください。
https://developer.yahoo.co.jp/yconnect/v1/server_app/explicit/token.html

このページに記載させていただいた内容は”SDKを利用しない場合”の利用手順ですが、SDKも用意しております。
詳細は下記ページをご確認ください。
https://developer.yahoo.co.jp/yconnect/v1/

テスト環境に関連するヘルプ

テスト環境について

Yahoo!ショッピングのシステムとは切り離された環境です。
テスト用APIで商品を登録しても実際のYahoo!ショッピングに商品が掲載されることはありません。
テスト環境で利用できるAPIは、こちらのプロフェッショナル出店ストア向けAPIになります。

テスト環境用「API」「ストアクリエイターPro」を利用するには

下記フォームから「テスト用環境」を選択してアプリケーションIDを取得してください。

【アプリケーションID取得ページ】
https://e.developer.yahoo.co.jp/shopping/register

利用申請から最大5営業日で、テスト環境の情報をメールにてご連絡いたします。
このメールは申請時のYahoo! JAPAN IDに登録されているメールアドレス宛てにお送りいたします。
1度の申し込みで「API」「ストアクリエイターPro」ともに利用設定が行われます。

テスト環境のツールについて

「ストアクリエイターPro」と「ストアエディタ」2つのツールを利用できます。

ストアクリエイターPro
注文情報の管理や、ストア設定などのストア運営に必要な作業を行うためのツールです。

ストアエディタ
商品管理、在庫管理など”出品”に関する設定を行うためのツールです。
このツールは法人の出店者様が利用できるツールとなります。

※ツールのURLは設定完了後に送られるメールに記載しています。

「本番環境」と「テスト環境」の違い

テスト環境には、いくつかご利用でいない機能があります。
下記の「本番環境」と「テスト環境」で利用できる機能比較表をご覧ください。

機能名 本番環境 テスト環境(SandBox) 備考







ツール
機能
ストア
アカウント
本番用のストアアカウント snbx-[10バイト前後の乱数文字列] テスト環境は間違えやすいのでご注意ください。
ツール
ログインID
ビジネスIDに紐づくYahoo!Japan ID(以下、YID) テスト環境申請時のYID
ツールURL https://pro.store.yahoo.co.jp/pro.[ストアアカウント] https://test.pro.store.yahoo.co.jp/pro.[テスト環境ストアアカウント]  
注文管理
商品・
画像・
在庫等
ストア構築 × テスト環境のストア名は「テスト用ストア」固定です。変更できません。
クーポン ×
ストアニュースレター ×
トリプル ×
広告 ×
統計 ×
評価・レビュー ×
利用明細 ×
設定 △(表示のみで機能しない)
権限管理 ×
申し込み情報 ×
FTPアップロード × テスト環境では利用不可です。
注文・決済 テスト注文
クレジットカード決済
Yahoo!マネー/預金払い
コンビニ払い ×
ペイジー ×
キャリア決済 ×
銀行振込  
商品代引
ポイント利用 ×
ポイント付与 ×
いたずら注文 ×
API 公開WebAPI  

ストアクリエイターProのいくつかのリンク先にYahoo! JAPANビジネスID認証がかかっているものがあります。
こちらはYahoo!ショッピングとの出店契約でYahoo! JAPANビジネスIDを持っている方しか閲覧できません。
あらかじめご了承ください。


よくあるご質問

「アプリケーションID」はどこで確認ができますか?

お申し込みをしていただいたYahoo! JAPAN IDでログインした状態で下記ページをご確認ください。

【アプリケーションの管理】
https://e.developer.yahoo.co.jp/dashboard/

リクエスト元IPアドレスの変更・追加について

既に注文APIをご利用中のお客様で、リクエスト元IPアドレスに変更・追加が発生した場合は、
再度下記フォームから利用申請をお願いします。

【注文API利用申請フォーム】
https://yahoo.jp/CU6Uym

※設定完了まで約1週間〜10日程度お時間をいただいております。

APIのコール数制限緩和について

1アプリケーションIDにつき、1日5万コールまでの制限がかけられております。
利用用途により超過しそうな場合には、制限数を緩和させていただきます。(無料)
まずは下記お問い合わせフォームからご相談ください。

【APIコール数制限緩和申請フォーム】
https://yahoo.jp/rOQgO5

各種申請の承認を早めてほしい。

恐れ入りますが、このような作業は承っておりません。
承認まではお時間をいただいておりますので、ご了承ください。

コール数制限緩和後にリクエストすると”403”が返ってくる。

APIコール数制限緩和申請フォームの「利用APIのエントリポイントと最大秒間コール数」に入力したAPIのみリクエストを許可しています。
申請時に入力をしなかったAPIにリクエストをすると”403”が返るようになっています。
入力漏れがある場合は、再度申請をお願い致します。

【APIコール数制限緩和申請フォーム】
https://yahoo.jp/rOQgO5

”invalid_token”が返ってくる。

APIにリクエストした際、以下のようなレスポンスが返ってくる場合は、アクセストークンの有効期限が切れております。
リフレッシュトークンを利用してアクセストークンの更新をお願いします。

<?xml version="1.0" encoding="utf-8" ?>
<Error>
<Message>
Please provide valid credentials. Bearer realm="yahooapis.jp", error="invalid_token", error_description="expired token"
</Message>
</Error>
    

アクセストークン取得後にリクエストすると”px-14301”が返ってくる。

Yahoo! IDをご確認ください。
リクエストする”ストアアカウント”とYahoo! IDで紐づくビジネスIDが同一のものをご利用ください。

テスト用ストアアカウントを「変更」したい

利用申請された方に発行されるテスト用ストアアカウントは変更できません。
また、指定することもできません。ご了承ください。

テスト用ストアアカウントを「追加」したい

1つのYahoo! JAPAN IDにつき、1つのテスト用ストアアカウントしか発行できません。
1つ目のテスト環境の利用申請時とは異なるYahoo! JAPAN IDにて再度利用申請をお願いします。

その他よくあるご質問は下記ページをご確認ください。
https://developer.yahoo.co.jp/webapi/shopping/faq.html

お問い合わせは以下のページからお願いします。
Yahoo!ショッピングAPIのお問い合わせ