第9回 magento cafe plus

38
Magento Cafe Plus #9

Upload: hirokazu-nishi

Post on 30-Jul-2015

121 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: 第9回 Magento Cafe Plus

Magento Cafe Plus #9

Page 2: 第9回 Magento Cafe Plus

最近のMagento

Page 3: 第9回 Magento Cafe Plus

セキュリティパッチ• PATCH-SUPEE-5994公開–まだ適用していないサイトにはすみやかに適用を

Page 4: 第9回 Magento Cafe Plus

Magento1.xのメンテナンス期間• Magento2リリース後 3年間

2015/06 2015/12 2016/06 2016/12 2017/06 2017/12 2018/06 2018/12

Magento1.xas

Mainstream

Magento2.x as MainstreamMagento2

asBeta / RC

1年目 2年目 3年目

Magento1.x as Maintenance phase

Magento2 リリース

Magento1.xサポート終了

Page 5: 第9回 Magento Cafe Plus

Meet Magento 2015 Japan

• 只今絶賛参加登録受付中• 講演者も募集中

Page 6: 第9回 Magento Cafe Plus

Magento2エクステンション開発その 2

Page 7: 第9回 Magento Cafe Plus

前回のおさらい• M1とM2は似て非なるアプリケーション

• DBレベルではマイグレーション可能

• M1の知識が全く役に立たないわけではない

• XMLファイルが細分化・多様化している

Page 8: 第9回 Magento Cafe Plus

M2で HELLO WORLDをだしてみる

Page 9: 第9回 Magento Cafe Plus

Hello Worldに必要なもの• 設定ファイル• レイアウト XML• テンプレート• ブロック• ヘルパー• composer.json

Page 10: 第9回 Magento Cafe Plus

composer.json{ "name":”veriteworks/magento2-helloworld", "type":"magento2-module", "extra": { "map": [ [ "*", ”Veriteworks/Helloworld" ] ] }, "license": [ "OSL-3.0", "AFL-3.0" ], "description":"Magento2 Hello World sample.", "version":”1.0.0.0", "authors":[ { "name":"Hirokazu Nishi", "email":"[email protected]", "homepage":"https://principle-works.jp/", "role":"developer" } ], "require": { "php": "~5.5.0|~5.6.0", "magento/framework": "0.74.0-beta12", "lib-libxml": "*", "magento/magento-composer-installer": "*” }}

Page 11: 第9回 Magento Cafe Plus

etc/module.xml

<?xml version="1.0" ?><config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"> <module name=“Veriteworks_Helloworld" setup_version="1.0.0.0"> </module></config>

Page 12: 第9回 Magento Cafe Plus

ヘルパー

<?phpnamespace Veriteworks\Helloworld\Helper;

class Data extends \Magento\Framework\App\Helper\AbstractHelper{

}

Page 13: 第9回 Magento Cafe Plus

ブロック

<?phpnamespace Veriteworks\Helloworld\Block;

use Magento\Framework\View\Element\Template;

/** * Helloworld block * */class Helloworld extends \Magento\Framework\View\Element\Template{

}

Page 14: 第9回 Magento Cafe Plus

レイアウト XML<?xml version="1.0"?><page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd"> <body> <referenceContainer name="before.body.end"> <block class="Veriteworks\Helloworld\Block\Helloworld" name="helloworld" as="helloworld" template="Veriteworks_Helloworld::helloworld/default.phtml" before="-"/> </referenceContainer> </body></page>

Page 15: 第9回 Magento Cafe Plus

テンプレート

<h1>Hello World!</h1>

Page 16: 第9回 Magento Cafe Plus

エクステンションの有効化

エクステンションを有効化するコマンドphp bin/magento module:enable Veriteworks_Helloworld --clear-static-content

セットアップスクリプトの実行php bin/magento setup:upgrade

キャッシュの更新php bin/magento cache:flush

Page 17: 第9回 Magento Cafe Plus

継続課金

Page 18: 第9回 Magento Cafe Plus

継続課金( Recurring Payment)とは

• ある一定期間ごとに顧客に対して課金を行う処理

• 1年 /半年 /四半期 /毎月 /2週などのサイクルがある

• 継続課金を行うためには、顧客との間に支払契約の締結が必要

• 締め日・洗い替え処理など、都度決済より複雑

Page 19: 第9回 Magento Cafe Plus

よくある都度課金の流れECサイト顧客 決済サービス

商品をカートに投入

購入手続き開始

支払方法選択

購入確定ボタンクリック 注文受付処理実行

決済データ送信 決済処理実行

決済結果送信決済結果受信

注文データ確定注文完了

Page 20: 第9回 Magento Cafe Plus

継続課金の処理パターン

1 加盟店側で課金アクションを起こすもの

2 決済サービス側で自動的に課金が行われるもの

継続課金という概念がなく、登録済みカード番号等を用いて繰り返し課金を行うもの。

課金予定データまでは準備してくれるが、確定処理は加盟店側で実施するもの。

都度課金とは独立した仕様として、課金契約データが用意され、指定した期間ごとに自動的にサービス側で課金が実施される。

洗替処理不可 実装容易

洗替処理可 実装難易度高

洗替処理可?不可? 実装難易度中

Page 21: 第9回 Magento Cafe Plus

継続課金の流れ〜その 1ECサイト顧客 決済サービス

購入確定ボタンクリック 注文受付処理実行

決済データ送信 継続課金登録処理実行

登録結果送信決済結果受信

注文データ確定注文完了

課金処理実行

決済データ作成

定期課金処理

決済結果通知?決済結果受信

注文履歴作成

注文データ作成

決済データ送信

Page 22: 第9回 Magento Cafe Plus

継続課金の流れ〜その 2ECサイト顧客 決済サービス

購入確定ボタンクリック 注文受付処理実行

決済データ送信 継続課金登録処理実行

登録結果送信決済結果受信

注文データ確定注文完了

課金処理実行

決済データ作成

定期課金処理

決済結果通知?決済結果受信

注文履歴作成

決済結果照会 決済データ返却

Page 23: 第9回 Magento Cafe Plus

Magentoでの継続課金

Page 24: 第9回 Magento Cafe Plus

そもそもの話• ベータ版扱い 5年以上・・・

• 事実上 PayPal専用

• ほかの決済サービスで使えなくもない、が・・・

Page 25: 第9回 Magento Cafe Plus

サードパーティ製といえば・・・

http://www.magentocommerce.com/magento-connect/subscriptions-and-recurring-payments-by-aheadworks.html

Page 26: 第9回 Magento Cafe Plus

サードパーティ製の課題• 独自実装になっているので、決済モジュールは個別に対応が必要

• 機能面で標準と異なる点があるため、注意が必要

• そもそもライセンス費用が必要

• 日本の決済になど・・・対応しているわけがない

Page 27: 第9回 Magento Cafe Plus

継続課金を使う際の設定 1

Page 28: 第9回 Magento Cafe Plus

継続課金を使う際の設定 2

Page 29: 第9回 Magento Cafe Plus

継続課金の仕組み• Recurring Profile

• Recurring Product

• Nominal Item

• 対応する決済方法

Page 30: 第9回 Magento Cafe Plus

Recurring Profile

• 継続課金の契約データそのもの

• 誰に何を、いくらで、どの周期で、何回課金するか

• 1つの継続課金契約には 1つの Recurring Profile

Page 31: 第9回 Magento Cafe Plus

Recurring Product

• 商品のデータ上、「 Recurring Profile」が有効になっている商品

• Recurringできるのは、 Simple, Virtualのみ

• Recurring Profileが有効な商品は、それ単独でしかカートに入れることができない

• つまり 1回の決済で 1つの商品しか買えない

Page 32: 第9回 Magento Cafe Plus

Nominal Item

• Recurring Productをカートに入れた際に出る項目

Page 33: 第9回 Magento Cafe Plus

対応する決済方法• Mage_Payment_Model_Recurring_Profile_MethodI

nterfaceを実装した決済クラス– submitRecurringProfile– getRecurringProfileDetails– canGetRecurringProfileDetails– updateRecurringProfile– updateRecurringProfileStatus

• その他、決済サービス側の仕様を満たす実装–こちらのほうがよほど面倒くさい

Page 34: 第9回 Magento Cafe Plus

決済サービス側で勝手に課金する場合

• 課金されたことをMagento側で拾う処理が必要–定時バッチで実行する方法–サービス側から通知してもらう方法

• どちらでやるかは仕様に依存–通知してもらう場合は注文・請求データの作成処理を実装する必要あり

Page 35: 第9回 Magento Cafe Plus

Magento側で課金を起こす場合• 定時バッチによる課金処理を起こす• カード番号の決済サービス側での保存が必要(カード決済の場合)

• Magento側で Recurring Profile毎にいつ課金するか判定を実施–課金処理時に注文データと請求データを作成

Page 36: 第9回 Magento Cafe Plus

面倒な仕様の例• 継続課金の課金・取消申請をする期間が1ヶ月のうちに一定期間存在する–その期間を過ぎると諸々面倒であったりとか・・・

• SFTPで所定のデータをアップしろ、とか–もはやWebアプリではなくただのバッチ処理ではと・・・

Page 37: 第9回 Magento Cafe Plus

継続課金の制約• Recurring Profileの内容を顧客が自由に変更できない(解約・停止はできる)

• 管理者も解約と停止しかできない– 税率変更時に問題になる– 契約変更時は解約・新規契約になる

• カード番号をMagento側に持つのはNGなので、カード番号お預かり等の機能のない決済サービスでは利用できない(ペイジー・コンビニなどは可)

• 継続課金の場合、 3Dセキュア認証が行われない事がある

Page 38: 第9回 Magento Cafe Plus

まとめ• Magentoの継続課金機能はベータ版

• 決済側さえ対応していればそれなりに使える–ただし、決済側の仕様がバラバラ

• 1つの継続課金で 1つの商品しか扱えない

• 税率の変更や届け先の変更などは出来ない