27
Drupal Commerce & Amazon Pay module ハンズオン Drupal をやさしく学ぶ勉強会 2018 年 11 月 改訂版 2019 年 1 月 28 日 開催日 2018 年 11 月 28 日(水) 19:00-21:30

Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

Embed Size (px)

Citation preview

Page 1: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

Drupal Commerce & Amazon Pay module ハンズオン

Drupal をやさしく学ぶ勉強会 2018 年 11 月

改訂版 2019 年 1 月 28 日

開催日 2018 年 11 月 28 日(水) 19:00-21:30

Page 2: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

1

目 次

I. はじめに .................................................................................... 2

Drupal 7&8のコア

Drupal 8 のステータス

トピックス

便利なツールやシステム

デジタルマーケティング資料

次回の勉強会

なんでも質問コーナー

II. Dries さんのブログより ............................................................... 5

III. 今月のモジュール ........................................................................ 6

IV. Drupal Commerce Demo & Amazon Pay ハンズオン ................... 6

V. Drupal Commerce Demo .......................................................... 7

VI. Drupal 8 Commerce 関連情報 .................................................... 9

VII. Drupal Commerce Amazon Pay モジュールのインストー

ル ............................................................................................. 9

Amazon セーラーセントラルの設定

Amazon Pay SDK(PHP)のインストール

Drupal Commerce の Amazon Pay モジュールのインストール

commerce_amazon_lpa 8.x-2.0-beta1 の修正

Commerce 2.x の基本設定

Amazon Pay モジュールの設定

実際の購入フロー

VIII. Drupal 8 Commerce 対応、日本の決済モジュールについて ............ 24

IX. ディスカッション ...................................................................... 25

X. クレジット、謝辞、ライセンス ..................................................... 26

クレジット

謝辞

ライセンス

Page 3: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

2

はじめに

Drupal 7&8のコア

11 月 28 日(水) https://www.drupal.org/project/drupal

Drupal 8 のステータス

11 月 28 日(水) https://www.drupal.org/drupal-8.0/get-involved

7 月 31 日(火) Drupal 8 について、 https://www.drupal.org/drupal-8.0/get-involved

Page 4: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

3

5 月 30 日

トピックス

Drupal Global Training Day & First time Sprinters 2018 年 12 月 8 日(土)

Global Sprint と Training を一緒に開催することになりました。自分で作成したモジュールやデザインテ

ンプレートなどを Drupal.org サイトにアップロード登録する手順なども学びます。

Page 5: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

4

https://cmslabo.doorkeeper.jp/events/81798

ぜひ。ご参加ください。

便利なツールやシステム

さまざま Drupal のコアや拡張モジュール、テーマ、ディストリビューションなどを無料で 24 時間、

AWS クラウドで体験できます。ただし、現在はメンテナンス中止になりました。

http://simplytest.me/

デジタルマーケティング資料

⚫ 中国で急成長するエンタメ感あふれる共同購入サービス 拼多多(ピンドウドウ)

https://www.pinduoduo.com/index.html

EC 市場のダークホースと呼ばれる「拼多多」とは何者なのか?

http://chaitopi.com/index.php/2018/04/25/whats_pinduoduo/

⚫ 買い手もストーリーの当事者

香川県高松市のオリーブ農園オキオリーブです。 世界最高品質の 100%国産エクストラバージンオリ

ーブオイルを作っています。 美しい農園では、カフェ、イベント、スペースレンタル、宿泊もしてい

ます。

https://www.okiolive.com/

Page 6: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

5

次回の勉強会

12 月 12 日(水)コンテンツタイプ、Views、ブロック・ユーザー管理の基礎ハンズオン(九州)

12 月 17 日(月)久松町区民館で、内容は未定

なんでも質問コーナー

Drupal や CMS、クラウドなど、ご質問をお受けいたします。

Dries さんのブログより

⚫ Why Drupal's Layout Builder is so powerful and unique

https://dri.es/why-drupal-layout-builder-is-so-unique-and-powerful

Page 7: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

6

今月のモジュール

今月はお休みです

Drupal Commerce Demo & Amazon Pay ハンズオン

Page 8: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

7

Drupal 8 Commerce の新しい REST インタフェースによる Quickstart 的なデモ版のインストールをハン

ズオンしながら概要を学びます。

REST インタフェースによるショッピングカート

Drupal Commerce をこれから使う方、復習したい方向け、初めて入門コースになります。Drupal 8 向け

の Amazon Pay モジュールのテスト操作しながら、わからないことややりたいこと、疑問点など、ハンズ

オンと Q&A で学まびます。

Drupal Commerce Demo

インストール手順は、以下のページにて

https://github.com/drupalcommerce/demo-project

Composer をインストール

Composer で Commerce 用のデモプロジェクト作成

Page 9: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

8

composer create-project drupalcommerce/demo-project demo-commerce --stability dev --no-interaction

インストール後、composer run preview を実行しますが、2018 年 11 月 28 日に作業した際にはエラ

ーが起こりインストールできませんでした。

そこで、Github のソースプログラム(https://github.com/drupalcommerce/demo-

project/archive/master.zip)をダウンロード、解凍して composer run preview を実行しました。

Drupal のデータベースは SQLite に保存されます。

インストール後の画面

ログインは、ユーザーアカウントを新規作成してログインします。この Demo 環境はテスト用で

Administrator アカウントは、セキュリティ上、作成や参照することができません。

Headless Drupal Commerce として使えるように、まずはショッピングカート API から始める

Drupal Commerce Demo の概要とダウンロード

Page 10: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

9

RESTful インタフェースでショッピングカート機能

Decoupled shopping cart - Cart API モジュールの概要

ショッピングカートの表示

Commerce Cart Flyout モジュールの概要

Drupal 8 Commerce 関連情報

• Drupal Commerce モジュール

• Commerce Kickstart

• Commerce の各種ドキュメント

• Developer Guide

• GitHub repository

• 動画 : The road to a headless Drupal Commerce future

• 動画 : Decoupling Drupal Commerce Out of the Box

• 動画 : Using Drupal Commerce for rich eCommerce experiences

• Drupal Commerce Amazon Pay モジュール

Drupal Commerce Amazon Pay モジュールのインストール

Amazon セーラーセントラルの設定

Page 11: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

10

Amazon のセーラーセントラルに企業登録します。その際に、使用するドメイン名などを設定します。

https://sellercentral.amazon.co.jp

審査終了後に、クライアント ID を取得し、Amazon Marketplace Web Service (MWS)にて API を利用するた

めにアクセスキーを作成します。

Amazon Pay SDK(PHP)のインストール

Page 12: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

11

始めに、サーバー側に、Amazon Pay SDK(PHP)を Composer でインストールします。Amazon Pay

SDK(PHP)は GitHub で公開されています。

https://github.com/amzn/amazon-pay-sdk-php?ld=APJPAPADemositeonAPA

Drupal8の Drupal_root で Compoer を使って SDK インストールします。

composer require amzn/amazon-pay-sdk-php

Page 13: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

12

composer でインストールインストールされたディレクトリ vendor/amzn/ amazon-pay-sdk-php 以

下を、Drupal 8 の Libraries モジュールの配下 Modules/contrib/libraries/amazon-pay-sdk-php に

コピーします。

Drupal Commerce の Amazon Pay モジュールのインストール

モジュールの情報:Drupal Commerce Amazon Pay モジュール

Commerce モジュールがインストールされた環境に、Amazon Pay モジュールを追加します。

composer require 'drupal/commerce_amazon_lpa:^2.0'

commerce_amazon_lpa 8.x-2.0-beta1 での注意事項:

このバージョンでは、Amazon Pay で Amazon にログインして自動的に支払い処理するフローをサポー

トしております。非同期の支払い処理は開発中です。

Page 14: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

13

commerce_amazon_lpa 8.x-2.0-beta1 の修正

日本の Amazon Pay サイトとの連携のために、デフォルトの langcode、などを修整します。

1) Form の Settings.php

DRUPAL_ROOT\modules\contrib\commerce_amazon_lpa\src\Form\Settings.php

207 行目から

if (empty(array_intersect($supported_billing, ['DE', 'GB', 'US', 'JP']))) { <- 追加

$form['merchant_information'][$uuid]['#description'] = $this->t('Sorry, this store does

not support available billing regions.');

continue;

}

$store_country_code = $store->getAddress()->getCountryCode();

$defaults = [

'merchant_id' => '',

'mws_access_key' => '',

'mws_secret_key' => '',

'lwa_client_id' => '',

'region' => $store_country_code == 'GB' ? 'UK' : $store_country_code,

// @todo port default language code mapping.

/* 'langcode' => 'en-US', */ - コメントにして

'langcode' => 'jp-JP', <- 追加

];

247 行目から

$form['merchant_information'][$uuid]['region'] = [

'#type' => 'radios',

'#title' => $this->t('Region'),

'#options' => [

Page 15: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

14

'DE' => $this->t('Germany'),

'UK' => $this->t('United Kingdom'),

'US' => $this->t('United States'),

'JP' => $this->t('Japan'), <- 追加

],

258 行目から

$form['merchant_information'][$uuid]['langcode'] = [

'#type' => 'radios',

'#title' => $this->t('Language'),

'#options' => [

'en-US' => $this->t('US English'),

'en-GB' => $this->t('UK English'),

'de-DE' => $this->t('German'),

'fr-FR' => $this->t('French'),

'it-IT' => $this->t('Italian'),

'es-ES' => $this->t('Spanish (Spain)'),

'jp-JP' => $this->t('Japanese'), <- 追加

],

2) Src の AmazonPay.php の編集

Drupal_ROOT\modules\contrib\commerce_amazon_lpa\src\AmazonPay.php

55 行目 platform ID の意味を調査中ですが、とりあえず「出品者トークン」を設定しました。

protected $platformIds = [

'UK' => 'A33DP3YE7OHVLV',

'DE' => 'A1ZBM19RFMXA83',

'US' => 'A294FY3QW7KJ8X',

'JP' => 'A2XXXJ8VDXXXXX', <- 追加

Page 16: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

15

];

3) Commerce_amazon_lpa.module で日本の AmazonPay サイトのWidgets.js URL を追加

Amazon Pay を Web サイトに設定するための、Amazon Pay の SDK の設定は、以下のページでご確認

ください。

https://pay.amazon.com/jp/developer/documentation/lpwa/201951870#201951870

Page 17: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

16

DRUPAL_ROOT\modules\contrib\commerce_amazon_lpa\commerce_amazon_lpa.module を編

集します。

63 行目から

$widget_js_urls = [

'US' => [

'test' => 'https://static-na.payments-amazon.com/OffAmazonPayments/us/sandbox/js/Widgets.js',

'live' => 'https://static-na.payments-amazon.com/OffAmazonPayments/us/js/Widgets.js',

],

'UK' => [

'test' => 'https://static-eu.payments-amazon.com/OffAmazonPayments/uk/sandbox/lpa/js/Widgets.js',

'live' => 'https://static-eu.payments-amazon.com/OffAmazonPayments/uk/lpa/js/Widgets.js',

],

'DE' => [

'test' => 'https://static-eu.payments-amazon.com/OffAmazonPayments/de/sandbox/lpa/js/Widgets.js',

'live' => 'https://static-eu.payments-amazon.com/OffAmazonPayments/de/lpa/js/Widgets.js',

],

'JP' => [ <- 追加

'test' => 'https://static-fe.payments-amazon.com/OffAmazonPayments/jp/sandbox/lpa/js/Widgets.js',

'live' => 'https://static-fe.payments-amazon.com/OffAmazonPayments/jp/lpa/js/Widgets.js',

],

];

Commerce 2.x の基本設定

Drupal Commerce 2.x の使い方は https://docs.drupalcommerce.org/commerce2/getting-started

にて参考にしてください。 Amazon Pay のテストのために、簡単な製品と支払い処理を設定します。

Page 18: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

17

User guide の手順にもとづき、ストアの設定、通貨の設定、商品の設定、受注、税金、支払い、などを設

定します。

Amazon Pay モジュールの設定

モジュールの画面

管理画面 -> Commerce -> Amazon Pay configuration

マーチャント ID、MWS Access Key、MWS Secret Key、LWA Client ID を入力します。

Page 19: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

18

その他は、デフォルト設定です。

実際の購入フロー

ショッピングカートの購入手続き画面で、Amazon Pay へのログインボタンが表示さます。

Page 20: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

19

Amazon pay のバナーをクリックし、Amazon アカウントへ連携します。

Page 21: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

20

Amazon アカウントとパスワードを入力します。もしくは、Amazon アカウントを新規作成も可能です。

ログインすると注文内容を確認します。

アドレス帳が表示されるのは、Drupal Commerce の「Commerce Shipping モジュール」をインスト

ールした場合です。

Commerce Shipping:https://www.drupal.org/project/commerce_shipping

Page 22: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

21

もし、配送先住所を追加する場合は、「+新規追加」をクリックします。

Page 23: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

22

次に進む「レビューを続ける」をクリックし、購入確認画面になります。

「支払いと購入完了」をクリックします。Amazon と連携し、注文(39 番)が確定しました。

管理画面 -> Commerce -> 注文 で今の購入手続きのプロセスが確認できます。

Page 24: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

23

Amazon 側でも注文を確認できます。

「Amazon リファレンス ID」をクリックすると、注文の詳細が確認できます。

Page 25: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

24

※Drupal8の管理画面やショップの公開画面で表示される英語テキストやメッセージなどは、管理画面の

「ユーザーインタフェースの翻訳」で可能です。

管理画面 -> 環境設定 -> 地域と言語 -> ユーザーインタフェースの翻訳

Drupal 8 Commerce 対応、日本の決済モジュールについて

Drupal 7 版の Drupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

Drupal 8 版の Drupal Commerce 対応の決済モジュール開発ステータスと Drupal Commerce につい

て、お話いただきます。

デモ

⚫ GMO

⚫ Paidy

⚫ Softbank Payment Service

Page 26: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

25

ディスカッション

Drupal、WordPress、オープンソースコミュニティ、CMS などの質疑応答

Page 27: Drupal Commerce & Amazon Pay module ハンズオン · Drupal 8 Commerce 対応、日本の決済モジュールについて Drupal 7 版のDrupal Commerce 対応の日本国内決済モジュールを開発した渡邉隆弘さんによる、

26

クレジット、謝辞、ライセンス

クレジット

このマニュアル作者は、Gennai3株式会社の程田和義です。

お問合せ 電子メール [email protected] 電話 044-220-1588

謝辞

本マニュアル作成は、主に以下のサイトを参考にしました。心より感謝いたします。

出典: Drupal.org simplytest.me

ライセンス

Drupal は Dries Buytaert による登録商標です。その他本マニュアルで使われている製

品および名称については、それぞれの所有者の商標または登録商標です。