特にご要望が多いPHPのSP-API実装について執筆したいと思います。
今回はさくっと行きます。
1.前提条件
この記事を進めるうえでの前提条件としてはAmazon、SP-APIの基礎的な知識があること、PHPの知識がありライブラリを読み込ませて実行が行えることが前提です。
2.clousaleが提供するamazon-sp-api-phpライブラリを利用する
以前の記事でも書きましたが、SP-APIを利用する場合、認証のためのアクセストークンからの認証用ヘッダの生成の難易度がとても高いです。
そこを自動で行ってくれるライブラリを利用すれば認証をほとんど意識することなくPHPでアマゾンのSP-APIを簡単に利用することができます。
世の中には無料でソースを提供してくれる素晴らしい方たちがいます。
https://github.com/clousale/amazon-sp-api-php
こちらをインストールして利用しましょう、インストールはURLのgithubページのInstallationに記載されているようにcomposerで行えます。
PHP7.3以上と若干制限があります。
3.PHPからclousale、SP-APIライブラリを使用して注文情報を取得してみる
ソースコード載せますのでコピーしてoptionsの値を自身の環境の物に変更し、さくっとお試しください。
optionsの値が分からないという方は、以前書いた記事「Amazonの新しいAPI、SP-APIをとにかく動かしてみる」をご確認ください。
<?php
require_once './vendor/autoload.php';
$options = [
'refresh_token' => 'AtzrAtzr|IwEBIABHaXRPj86Ei3xPolpsRT*************************************************************************************************************************************************************************************************************************************************************************************************************', // リフレッシュトークン: Amazonの新しいAPI、SP-APIをとにかく動かしてみる 3-5. のリフレッシュトークンの値
'client_id' => 'amzn1.application-oa2-client.********************************', // クライアントID: Amazonの新しいAPI、SP-APIをとにかく動かしてみる 3-7. のクライアントIDの値
'client_secret' => 'amzn1.oa2-cs.v1.*****************************************************************:', // クライアント機密情報: Amazonの新しいAPI、SP-APIをとにかく動かしてみる 3-5. のクライアント機密情報の値
'region' => \ClouSale\AmazonSellingPartnerAPI\SellingPartnerRegion::$FAR_EAST, // 日本だとこの値
'access_key' => 'AKIA6***************', // アクセスキーID: Amazonの新しいAPI、SP-APIをとにかく動かしてみる 1-6. アクセスキーIDの値
'secret_key' => 'Zuh069DUjSU/****************************', // シークレットアクセスキー: Amazonの新しいAPI、SP-APIをとにかく動かしてみる 1-6. シークレットアクセスキーの値
'endpoint' => \ClouSale\AmazonSellingPartnerAPI\SellingPartnerEndpoint::$FAR_EAST, // 日本だとこの値
];
// アクセストークン取得処理
$accessToken = \ClouSale\AmazonSellingPartnerAPI\SellingPartnerOAuth::getAccessTokenFromRefreshToken(
$options['refresh_token'],
$options['client_id'],
$options['client_secret']
);
$config = \ClouSale\AmazonSellingPartnerAPI\Configuration::getDefaultConfiguration();
$config->setHost($options['endpoint']);
$config->setAccessToken($accessToken);
$config->setAccessKey($options['access_key']);
$config->setSecretKey($options['secret_key']);
$config->setRegion($options['region']);
$marketplaceId = 'A1VC38T7YXB528'; // 日本だとこの値
// 受注情報取得
$apiInstance = new \ClouSale\AmazonSellingPartnerAPI\Api\OrdersApi($config);
$result = $apiInstance->getOrders($marketplaceId, '2023-01-01');
var_dump($result);