MagentoでAmazon Pay決済【インストール編】

takeda
2024-12-13
2024-12-13

こんにちは!

MagentoおよびAdobe Commerce(以下まとめてMagento)では様々な決済モジュールが利用できますが、今回はECサイトの決済方法で最近よく見かけるAmazon Pay決済についてモジュールインストールや設定方法について解説したいと思います。

使用した環境とエクステンション

  • プラットフォーム: Adobe Commerce 2.4.7-p3
  • AmazonPay決済エクステンション: amzn/amazon-pay-magento-2-module: 5.18.0

Amazon Pay決済用の公式エクステンションは下記で紹介されています。
https://pay.amazon.com/integration/adobe-commerce

エクステンション費用は0円です。マーケットプレイスにも掲載されており無償で導入することが出来ます。

Amazon Payエクステンションのインストール

インストールは非常に簡単です。composerを使用してパッケージをインストールします。

  • パッケージ名: amzn/amazon-pay-magento-2-module

Magentoのルートディレクトリに移動しcomposerコマンドでパッケージを取得します。

$ composer require amzn/amazon-pay-magento-2-module

./composer.json has been updated
Running composer update amzn/amazon-pay-magento-2-module
Loading composer repositories with package information
Updating dependencies
Lock file operations: 3 installs, 0 updates, 0 removals
  - Locking amzn/amazon-pay-api-sdk-php (2.6.7)
  - Locking amzn/amazon-pay-magento-2-module (5.18.0)
  - Locking aws/aws-php-sns-message-validator (1.9.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 3 installs, 0 updates, 0 removals
  - Downloading aws/aws-php-sns-message-validator (1.9.0)
  - Downloading amzn/amazon-pay-api-sdk-php (2.6.7)
  - Downloading amzn/amazon-pay-magento-2-module (5.18.0)
  - Installing aws/aws-php-sns-message-validator (1.9.0): Extracting archive
  - Installing amzn/amazon-pay-api-sdk-php (2.6.7): Extracting archive
  - Installing amzn/amazon-pay-magento-2-module (5.18.0): Extracting archive
Package laminas/laminas-crypt is abandoned, you should avoid using it. No replacement was suggested.
Package laminas/laminas-mail is abandoned, you should avoid using it. Use symfony/mailer instead.
Package sebastian/phpcpd is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files
147 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.
Using version ^5.18 for amzn/amazon-pay-magento-2-module

依存パッケージ2点も併せて下記パッケージがvendor配下にインストールされました。
aws/aws-php-sns-message-validator: 1.9.0
amzn/amazon-pay-api-sdk-php: 2.6.7
amzn/amazon-pay-magento-2-module: 5.18.0

次にMagentoの下記コマンドを順に実行しモジュールをインストールします。

bin/magento module:enable Amazon_Pay --clear-static-content
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento c:f

以上でモジュールのインストールは完了です。次は管理画面で設定を行います。

セラーセントラルの準備

モジュールに設定する認証情報としてストアID、出品者ID、APIキー(公開鍵、秘密鍵)が必要なので、まだ用意していない場合は、Amazonのセラーセントラルにログインして作成を行います。

セラーセントラル
https://sellercentral.amazon.co.jp

認証情報は本番環境とサンドボックスで共通です。どちらの環境も同じ認証情報を使います。(連携側でサンドボックスをONにするかを指定します)

はじめに「クライアントID/Store ID」が未登録の場合、登録を行っておきます。

続いて、「インテグレーションセントラル」でAPIキーを作成します。

ソリューションプロバイダの選択でMagento 2 とバージョン(>=2.2.6)を選択し、登録済みのストアを選択して「キーペアの作成」からAPIキーを作成します。

APIキーペアの作成を行うと、Public Key IDとPrivate Keyファイル(.pem形式)が作成されます。

モジュール設定

Magento管理画面 > Stores > Configuration > SALES > Payment Methods を開き、Amazon Payの「Configure」を開きます。

Credentialsを開き、Amazon Pay を Enabled にして、認証情報を設定します。

基本的な設定内容
Private Key : 「Upload .pem file 」からPrivate Keyの.pemファイルをアップロード
Public Key ID: APIキーのPublic Key IDを入力
Merchant Id: 出品者IDを入力
Store Id: ストアIDを入力
Payment Region: Japan を選択
Sandbox: 開発環境の場合は必ず「Enabled」を選択

この他にもボタンの色(Gold / Light Gray / Dark Gray)や、商品画面やミニカートにもボタンを配置する等、様々な設定がありますのでお好みで設定してみてください。設定を保存したらMagentoのキャッシュクリアを忘れずに行っておきましょう。

以上で基本的なAmazon Pay決済モジュールのセットアップは完了です。

フロントエンド側でAmazon Pay決済が機能しているか確認してみましょう。チェックアウト画面まで進むとAmazon Payのボタンが表示されています。

サンドボックスが有効になっている場合はボタンに「S」マークが付きます。

決済のテスト

テスト決済を行うにはセラーセントラルでテスト用アカウントを作成しておきます。

補足事項
テスト用アカウントのAmazonのログインとセラーセントラルのログインは同一のブラウザ上では区別されないため、決済のテストを開始する場合は別のブラウザを使用するか、セラーセントラルをログアウトしておいてください。

チェックアウトの流れは次のようになります。

チェックアウト画面のAmazon Payボタンを押すと、Amazonアカウントのログイン画面にリダイレクトされます。用意しておいたテスト用アカウントでログインすると、再びMagento側のチェックアウト画面にリダイレクトされます。テストアカウントに設定している配送先住所が画面に連携されます。

「Next」を押して次の画面(Review & Payments)に進みます。
通常この後、支払い情報画面に遷移し「Place Order」で注文を行うことが出来ます。

補足事項
この「Next」のボタン。押しても何も反応しない場合があります。
※筆者が確認したところではMagnetoのバージョンが2.4.5までは問題が無く、 2.4.6 以降の場合にボタンが反応しなくなる状況を確認しました。(2024年11月現在)
原因はAmazon PayのエクステンションとMagentoの間での住所情報の連携に問題があるためです。これについては次回、詳しい内容と対処方法を解説したいと思います。

通常は下記のような画面遷移で注文が完了します。

Magentoの管理画面で注文履歴を確認するとAmazon Payで決済されていることが確認出来ます。

セラーセントラル側でも取引情報が登録されています。ステータスはopen。

この後、Magento側で請求処理を実行すると、セラーセントラル側では売上が確定しステータスがclosedになります。
また、Magento側でキャンセル処理を実行した場合はセラーセントラル側もキャンセルされステータスがcanceledになります。

以上、
エクステンションのセットアップと、サンドボックスを使った決済テストの解説でした。

まとめ

Amazon Pay決済のエクステンションは無償で配布されていてインストールも比較的簡単です。
セラーセントラルにはサンドボックスが用意されており、テスト用アカウントを用いることで決済のテストも実施することが出来ます。

使用するバージョンによってはエクステンションとMagentoの間で相性問題が起きる場合があり、別途対処が必要になることがあります。次回はこの問題の解消方法「住所連携の調整」について詳しく解説したいと思います。