Amazonベンダー向け出品パートナーAPIの利用方法

aws

本記事では、Amazonのベンダー向けのAPI利用方法を説明いたします。

MarketplaceのAPIを利用している開発者は多いと思いますが、

Amazonのベンダー向けのAPIを利用する機会は少ないです。

また、開発資料も少なく、環境設定、実装などで躓いたポイントを解説します。

出品パートナーAPIとは

公式ドキュメントに記載されている通り、ベンダーがプログラムからデータにアクセスし、業務効率化をアップするための自動化のためのAPIとなります。

出品パートナーAPIは、RESTベースのAPIです。ベンダーはプログラムでデータにアクセスしやすくなり、効率性を高め、必要労働量を削減し、顧客への応答時間を短縮することで、ビジネスの自動化に役立ちます。

ベンダー向けのAPIを利用する流れ

ベンダー向けのAPIを利用する大まかな流れは下記のとおりです。

開発者登録

出品パートナーAPIアプリケーションを登録する前に、出品パートナーAPI開発者として登録する必要があります。
開発者として登録するには、ベンダーセントラルの統合メニューのAPI統合から可能です。
※開発者登録の承認は、数日かかります。そのため、余裕をもって、申請することをお勧めいたします。

出品パートナーAPIアプリケーションの登録

開発者登録の申請が完了すると、出品パートナーのアプリケーションの登録を行います。
このアプリケーションごとに、Amazonのデータにアクセスできる権限を設定します。

・ステップ1.AWSアカウントを作成する
・ステップ2.IAMユーザーを作成する
・ステップ3.IAMポリシーを作成する
・ステップ4.IAMロールを作成する
・ステップ5.IAMユーザーにAWSセキュリティトークンサービスポリシーを追加する
・ステップ6.アプリケーションを登録する

AWSアカウントは、AWS無料利用枠から利用可能です。

IAMユーザーの作成は、ドキュメント通りの手順で問題ありませんが、
最後の手順として、管理ポリシーとロールのマッピングとユーザーの割当手順が抜けています。
このマッピングができていないと、APIからのアクセスができないので、注意してください。

ステップ5の手順は、複雑な上に、すべての手順が記載されていないためので、補足しておきます。

ステップ5の補足

・ステップ5.IAMユーザーにAWSセキュリティトークンサービスポリシーを追加する。

・AWSセキュリティトークンサービス(AWS STS)ポリシーをIAMユーザーに追加すると、出品パートナーAPIへのリクエストの認証に使用できる一時的なAWSアクセスキーをリクエストできます。
これらの認証情報は、一定期間が経過すると期限切れになり、AWSリソースへのアクセスを制御するのに役立ちます。

・まだサインインしていない場合は、AWS管理コンソールにサインインし、console.aws.amazon.com/iamでIAMコンソールを開きます。
以下は、AWSの画面操作になります。

・左側のナビゲーションペインで、ユーザーをクリックし、AWS STSポリシーを追加するユーザーをクリックします。
このワークフローでは、ステップ2.IAMユーザーを作成するで作成したユーザーを選択します。
他のユースケースでは別のIAMユーザーを選択することもできます。

・アクセス許可タブで、インラインポリシーの追加をクリックします。

・ポリシーの作成ページで、サービスの選択をクリックします。

・STSサービスをクリックします。
検索ボックスにSTSと入力して、選択肢を絞り込みます。

・書き込みの横にある矢印をクリックして展開します。

・AssumeRoleを選択します。

・リソースの横にある矢印をクリックして展開し、ARN****を追加をクリックします。

・ARNを追加ダイアログボックスで、ステップ4.IAMロールを作成するのロールARNをロールのARNを指定ボックスに入力し、追加をクリックし、ポリシーの確認ボタンをクリックします。

・ポリシーの確認ページで、名前ボックスにポリシーの名前を入力します。選択した内容を確認します。続行する準備ができたら、ポリシーの作成ボタンをクリックします。

※最後の手順として、管理ポリシーとロールのマッピングとユーザーの割当手順が抜けています。

アプリケーションの認可

アプリケーションからAPIを利用するためには、ベンダーセントラルから、アプリケーションの承認が必要になります。
この承認は、APIで利用するリフレッシュトークンとなり、API実行時の署名データの生成に必要となります。

このリフレッシュトークンの有効期限は、1時間(3600秒)なので、1時間経過したら、新しくAccessTokenを取得しなおします。

クライアントの作成

公式ドキュメントでは、Javaクライアントを作成して説明されています。

本記事では、PHPクライアントで説明を進めます。

LWA認証情報の設定

上記で取得した、リフレッシュトークンを利用して、LWA認証情報を設定します。

名前 説明 必須
clientId LWAのクライアントID。詳細については、アプリケーション情報の記載のとおりです。 必須
clientSecret LWAのクライアントシークレット。詳細については、アプリケーション情報の記載のとおりです。 必須
refreshToken LWAのリフレッシュトークン。詳細については、アプリケーション情報の記載のとおりです。 必須
endpoint LWA認証サーバーのURI。 必須

記載例

clientId、clientSecretについては、下記の画面部分に表示されます。

Login with Amazonアクセストークン

Java以外の言語で、APIを利用するには、下記の手順でAmazonアクセストークンをリクエストします。

このAPIのレスポンスにある、アクセストークンを利用して、各APIの呼出を行います。

名前 説明 必須
grant_type 要求されるアクセス許可のタイプ。refresh_tokenである必要があります。 必須
refresh_token アプリケーションの出品用アカウントへのアクセスを認可するには、この値を取得します。アプリケーションの認可を参照してください。 必須
client_id アプリケーションを登録するときにこの値を取得します。アプリケーション情報の表示を参照してください。 必須
client_secret アプリケーションを登録するときにこの値を取得します。アプリケーション情報の表示を参照してください。 必須

記載例

成功レスポンスの内容

名前 説明
access_token アクセストークン。最大サイズ: 2048バイト。
token_type 返されるトークンのタイプ。ベアラーである必要があります。
expires_in アクセストークンが無効になるまでの秒数。
refresh_token リクエストで送信したリフレッシュトークン。最大サイズ: 2048バイト。

レスポンス例

公式ドキュメント

ベンダー向け出品パートナーAPI開発者ガイド

File not found · amzn/selling-partner-api-docs
This repository contains documentation for developers to use to call Selling Partner APIs. - File not found · amzn/selli...

APIリファレンス

https://github.com/amzn/selling-partner-api-docs/tree/main/references

ベンダー向け出品パートナーAPIでは、主に下記の4つを利用するため、熟読されておくことをお勧めします。

・Selling Partner API for Retail Procurement Orders
https://github.com/amzn/selling-partner-api-docs/blob/main/references/vendor-orders-api/vendorOrders.md

・Selling Partner API for Retail Procurement Shipments
https://github.com/amzn/selling-partner-api-docs/blob/main/references/vendor-shipments-api/vendorShipments.md

・Selling Partner API for Retail Procurement Payments
https://github.com/amzn/selling-partner-api-docs/blob/main/references/vendor-invoices-api/vendorInvoices.md

・Selling Partner API for Retail Procurement Transaction Status
https://github.com/amzn/selling-partner-api-docs/blob/main/references/vendor-transaction-status-api/vendorTransactionStatus.md

まとめ

ベンダー向け出品パートナーAPIを利用するには、Amazon提供の資料をしっかりと熟読する必要があります。

また、AWSなどの知識も必要となり、APIを利用するには、それなりのスキルが必要となるでしょう。

認証、署名の手順は複雑ですが、その後のフローで利用するAPIについては、
扱いやすくなっていると感じました。

利用する機会は少ないですが、参考にしていただければと思います。

タイトルとURLをコピーしました