ショッピング

ヘルプ

目次

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

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

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

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

アプリケーションID発行フォームから「本番環境用」を指定してお申し込みください。

※「注文API」または「問い合わせ管理API」を利用する場合は、別途申請が必要です。

「注文API」または「問い合わせ管理API」を利用したい。

アプリケションIDを取得後、ショッピングAPI利用申請フォームからお申し込みください。

※設定完了まで約1週間~10日程度お時間をいただいております。
※「注意事項」を必ずご確認ください。

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

アプリケーションID発行フォームから「テスト環境用」を指定してお申し込みください。

※設定完了まで5営業日程度お時間をいただいております。
※テスト用店舗(ストアクリエイタPro)とテスト環境用APIを提供させていただきます。

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

申請受付は停止中です。
1日50,000リクエストを超える場合は、アプリケーションIDを追加してご対応ください。

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

Yahoo! JAPAN IDでログインした状態で「アプリケーションの管理」ページをご確認ください。


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

「証明書」による認証について

「証明書」はリフレッシュトークンの有効期限を延長するために利用します。

証明書なしで特定のAPIを利用した場合、トークンの有効期限が「12時間」と通常よりも短くなります。
証明書を利用することで、Yahoo! JAPAN IDによる再認可までの期間を延長(12時間 → 4週間)することができます。

▼「証明書」を利用しない場合
 リフレッシュトークンの有効期限は「12時間」です。
 12時間ごとに再認可(ログイン)をしてトークン情報を更新していただく必要があります。

▼「証明書」を利用する場合
 リフレッシュトークンの有効期限は「4週間」です。
 4週間ごとに再認可(ログイン)をしてトークン情報を更新していただく必要があります。

※再認可・・・Yahoo! JAPAN IDでログインをして「認可コード(code)」を取得すること。

ご注意ください
  • 証明書の利用は必須ではありません。証明書なしでもAPIをご利用いただけます。
  • 証明書は一部のAPIのみに有効です。
    ※次項【 証明書が利用可能(有効)なAPI 】をご確認ください。
  • トークンの有効期限を返すようなAPI等の機能は用意しておりません。

証明書が利用可能(有効)なAPI

「証明書」は一部のAPIにのみ有効です。

下記APIに限り「証明書」が利用可能です。
こちらのAPIを利用しない場合は「証明書」を利用していただく必要はありません。

証明書なしで上記APIを利用した場合「リフレッシュトークン」の有効期限は「最大12時間」です。


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

  <?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から「証明書」をダウンロードしてください。

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

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

※ダウンロードには、「ツール管理権限」が必要です。

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

有効期限は「1年間」です。

証明書の有効期限は発行した月より1年間です。
有効期限を返すような機能やページは用意しておりませんので、利用者様側で管理をお願いいたします。

例)2020年9月中に発行されたお客様の証明書有効期限は2021年8月末となります。

証明書の更新申請について

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

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

※「法人管理権限」を持った方に通知されます。

詳細については下記ページをご確認ください。
ストアクリエイターPro各種申請「API証明書の更新」

証明書の更新作業について

ご利用中の古い「証明書」「秘密鍵」ファイルと、ダウンロードした新しい2つのファイルを置き換えてください。

※コマースパートナ提供のツールをご利用中の場合は、ツール提供元の指示に従ってください。

証明書の利用方法

ご注意ください
  • コマースパートナ提供のツールをご利用中の場合は、ツール提供元の指示に従って設定をしてください。
  • ストアクリエイタProでダウンロードした「証明書」「秘密鍵」ファイルをご利用ください。
  • ダウンロードしていただいたファイルを開く必要はありません。
  • 「注文API」または「お問い合わせ管理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!ショッピング出店ストアではない場合

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

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

アクセストークンの取得方法(v1)

トークン取得の流れ

 1)「Authorizationエンドポイント」にリクエストする。
 2)リダイレクトされたペ-ジのパラメータから「認可コード(code)」を取得する。
 3)「Tokenエンドポイント」にリクエストをしてトークン情報を取得する。
  ※トークン情報の中に"アクセストークン"が含まれます。

「Authorizationエンドポイント」にリクエストをします。
例)"redirect_uri"に「https://www.yahoo.co.jp/」を指定した場合

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

ご注意ください
"redirect_uri"に指定する値は、アプリケーションIDに紐づく「コールバックURL」である必要があります。
こちらのページから「コールバックURL」をご確認ください。

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

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

青字の部分が「認可コード(code)」です。
認可コードの詳細はこちらをご確認ください。

「新規取得」する場合

2)で取得した「認可コード(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"にセットをして
「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"にセットする内容で処理が分かれています。
詳細はこちらをご確認ください。
grant_type種別
authorization_code新規取得
refresh_token更新

上記で記載している内容は「SDKを利用しない場合」の利用手順ですが、SDKも用意しております。
詳細はこちらをご確認ください。

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

テスト環境について

Yahoo!ショッピングのシステムとは切り離された環境です。

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

テスト環境の申請方法

ヘルプページの「テスト環境を利用したい。」をご確認ください。

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

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

ストアクリエイタPro
 注文情報の管理や、ストア設定などのストア運営に必要な作業を行うためのツールです。
ストアエディタ
 商品管理、在庫管理など"出品"に関する設定を行うためのツールです。
 このツールは法人の出店者様が利用できるツールとなります。

※各ツールのURL等の詳細情報は設定完了後に送られるメールをご確認ください。

テスト注文の方法

「ストアエディタ」の「プレビュー」機能を利用してテスト注文を行ってください。

「プレビュー」機能

「ストアクリエイタPro」>「商品・画像・在庫」>「ページ編集」> ページ右カラム「パソコン版でプレビュー」

従業員の追加について

テスト環境(sandbox)では従業員の追加ができません。申込者の方のみご利用可能です。

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

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

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

※テスト環境でPayPayモールの利用はできません。

テスト環境のみ、利用できない機能がいくつかあります。
下記の機能比較表をご確認ください。

機能名 本番環境 テスト環境(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アップロード
注文・決済 テスト注文
クレジットカード決済
PayPay残高払い
コンビニ払い
ペイジー
キャリア決済
銀行振込
商品代引
ポイント利用
ポイント付与
いたずら注文

よくあるご質問


よくある質問」ページも合わせてご確認ください。

「アプリケーションID」が確認できるページはありますか。

Yahoo! JAPAN IDでログインした状態で「アプリケーションの管理」ページをご確認ください。

リクエスト元IPアドレスの変更・追加したい。

リクエスト元IPアドレスの変更・追加をご希望の場合は、
再度「ショッピングAPI利用申請フォーム」から申請をお願いします。

※既に「注文API」または「お問い合わせ管理API」をご利用中のお客様が対象です。
※設定完了まで約1週間~10日程度お時間をいただいております。

APIコール数の制限緩和をしたい。

申請受付は停止中です。
1日50,000リクエストを超える場合は、アプリケーションIDを追加してご対応ください。

※1アプリケーションIDにつき、1日5万リクエストまでの制限がかけられております。

"invalid_token"が返ってくる。

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

<?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! JAPAN ID」をご確認ください。
リクエストする「ストアアカウント」と「Yahoo! JAPAN ID」に紐づく「ビジネスID」が同一のものをご利用ください。

リフレッシュトークンの有効期限切れ前に再認可をしてトークンを取得したが、返ってきたトークン情報が変わっていない。

有効期限切れ前に再認可をしてトークンを取得した場合、トークン情報(文字列)に変更はありません。
文字列は同一のものですが、有効期限に関しては延長されておりますので引き続きご利用ください。

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

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


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