AmazonPayログイン時に購入確認画面へ遷移させる表示[EC CUBE3でAmazonPayを利用するためのステップその6]

【記事要約】

Amazonアカウントでログインした場合、EC CUBEの画面は購入確認画面へ遷移させ、アドレスウィジットと支払いクレジットカード選択ウィジットを表示させる必要がある。

 

カート画面の[Amaozonアカウントでお支払]ボタンを押して、Amazonへのログインが完了した場合、EC CUBE3の画面は購入確認画面へ遷移し、さらにアドレスウィジットと支払いクレジットカード選択ウィジットを表示させる必要がある。

そのためには、通常非会員の場合は、会員ログインまたはゲスト購入のボタンが表示された画面へ遷移するが、会員ログイン状態と同じ画面遷移にする必要がある。

※ここに書いてある記事はあくまで概要です。プログラムは自己責任で開発してください。

1.  event.ymlにフックポイントを記載

EC CUBE3のおおまかな購入ロジックはsrc>Eccube>Controller>ShoppingController.phpで定義されている。

そのため、プラグイン作成時にはこのプログラムも良く見て置いたほうがよい。

ShoppingController.phpを読み解くと、非会員でも一度注文者情報($Customer)が作られている場合は、一度入力された情報を保持して、購入確認画面へ飛ばしていることが分かる。

そのため、Amazonログインと同時にこの$Customerを擬似的に作成し、購入確認画面へダイレクトに遷移させる。

Amazonアカウントに登録されている個人情報はウィジット表示後でないと取得できないため、ダミーの値等で仮作成しておく。

 

ShoppingController.php読み込み前にこの仮注文情報を作成するためのフックポイントは下記となる。

function名は命名規則に則り、onRouteShoppingRequestとする。

さらにウィジットを表示させるために、下記フックポイントを追加

function名は命名規則に則り、onShoppingIndexRenderとする。

2. EventファイルにonRouteShoppingRequestの処理内容を記載

eventファイルにonRouteShoppingRequestの処理を記載するが、その前に、ここでAmazonPayのPHP SDKを使用するため、eventには下記のように事前にAmazonSDKの環境設定を記述しておく。

例:

*********には、独自の情報を入力。ログイン時点(ウィジット表示前)の時点でAPIから取得できるのは、氏名とEmailといった限られた情報のため、それらで仮注文者情報($Customer)を作る。

上記コード中の$access_tokenは、Cookie中から取得することができた。

各々、取得ロジックを独自に設定してほしい。

都道府県情報がないとエラーになるため、仮に1を設定している。

紹介したコードはあくまで最低限の内容のため、その他必要ロジックを書き足して欲しい。

3. EventファイルにonShoppingIndexRenderの処理内容を記載

onShoppingIndexRenderの処理内容には、Amazonログイン中の場合に、下記内容に表示を差し替える指示を記載する

①お客様情報エリアにアドレスウィジットと支払いクレジットカードウィジットを表示

②お客様情報変更ボタンを非表示

③配送情報変更ボタンを非表示

④配送日時指定のみ表示

⑤お支払い方法選択エリアには、AmazonPayとのみ表示し、他の決済手段を非表示とする

基本的に下記パターンで上記の表示差し替え指示をコーディングする

正しくコーディングできれば、Amazonログインと同時に購入確認画面へ遷移し、アドレスウィジットと支払いクレジットカードウィジットが表示される。


[EC CUBE3でAmazonPayを利用するためのステップその6]AmazonPayログイン時に購入確認画面へ遷移させる表示[EC CUBE3でAmazonPayを利用するためのステップその6]
AmazonPayログイン時に購入確認画面へ遷移させる表示