SlideShare a Scribd company logo
1 of 38
Magento Cafe Plus #9
最近のMagento
セキュリティパッチ
• PATCH-SUPEE-5994公開
– まだ適用していないサイトにはすみやかに適用を
Magento1.xのメンテナンス期間
• Magento2リリース後3年間
2015/06 2015/12 2016/06 2016/12 2017/06 2017/12 2018/06 2018/12
Magento1.x
as
Mainstream
Magento2.x as Mainstream
Magento2
as
Beta / RC
1年目 2年目 3年目
Magento1.x as Maintenance phase
Magento2
リリース
Magento1.x
サポート終了
Meet Magento 2015 Japan
• 只今絶賛参加登録受付中
• 講演者も募集中
Magento2エクステンション開発
その2
前回のおさらい
• M1とM2は似て非なるアプリケーション
• DBレベルではマイグレーション可能
• M1の知識が全く役に立たないわけではない
• XMLファイルが細分化・多様化している
M2でHELLO WORLDをだしてみる
Hello Worldに必要なもの
• 設定ファイル
• レイアウトXML
• テンプレート
• ブロック
• ヘルパー
• composer.json
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":"nishi@principle-works.jp",
"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": "*”
}
}
etc/module.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance”
xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/M
odule/etc/module.xsd">
<module name=“Veriteworks_Helloworld" setup_version="1.0.0.0">
</module>
</config>
ヘルパー
<?php
namespace VeriteworksHelloworldHelper;
class Data extends MagentoFrameworkAppHelperAbstractHelper
{
}
ブロック
<?php
namespace VeriteworksHelloworldBlock;
use MagentoFrameworkViewElementTemplate;
/**
* Helloworld block
*
*/
class Helloworld extends MagentoFrameworkViewElementTemplate
{
}
レイアウトXML
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framewor
k/View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="before.body.end">
<block class="VeriteworksHelloworldBlockHelloworld" name="helloworld"
as="helloworld" template="Veriteworks_Helloworld::helloworld/default.phtml"
before="-"/>
</referenceContainer>
</body>
</page>
テンプレート
<h1>Hello World!</h1>
エクステンションの有効化
エクステンションを有効化するコマンド
php bin/magento module:enable Veriteworks_Helloworld --clear-static-content
セットアップスクリプトの実行
php bin/magento setup:upgrade
キャッシュの更新
php bin/magento cache:flush
継続課金
継続課金(Recurring Payment)とは
• ある一定期間ごとに顧客に対して課金を行う処理
• 1年/半年/四半期/毎月/2週などのサイクルがある
• 継続課金を行うためには、顧客との間に支払契約
の締結が必要
• 締め日・洗い替え処理など、都度決済より複雑
よくある都度課金の流れ
ECサイト顧客 決済サービス
商品をカートに投入
購入手続き開始
支払方法選択
購入確定ボタンクリック 注文受付処理実行
決済データ送信 決済処理実行
決済結果送信決済結果受信
注文データ確定注文完了
継続課金の処理パターン
1 加盟店側で課金アクションを起こすもの
2 決済サービス側で自動的に課金が行われるもの
継続課金という概念がなく、登録済みカード番号等を用いて繰り返し課金を行うもの。
課金予定データまでは準備してくれるが、確定処理は加盟店側で実施するもの。
都度課金とは独立した仕様として、課金契約データが用意され、指定した期間ごとに自
動的にサービス側で課金が実施される。
洗替処理不可 実装容易
洗替処理可 実装難易度高
洗替処理可?不可? 実装難易度中
継続課金の流れ〜その1
ECサイト顧客 決済サービス
購入確定ボタンクリック 注文受付処理実行
決済データ送信 継続課金登録処理実行
登録結果送信決済結果受信
注文データ確定注文完了
課金処理実行
決済データ作成
定期課金処理
決済結果通知?決済結果受信
注文履歴作成
注文データ作成
決済データ送信
継続課金の流れ〜その2
ECサイト顧客 決済サービス
購入確定ボタンクリック 注文受付処理実行
決済データ送信 継続課金登録処理実行
登録結果送信決済結果受信
注文データ確定注文完了
課金処理実行
決済データ作成
定期課金処理
決済結果通知?決済結果受信
注文履歴作成
決済結果照会 決済データ返却
Magentoでの継続課金
そもそもの話
• ベータ版扱い5年以上・・・
• 事実上PayPal専用
• ほかの決済サービスで使えなくもない、が・・・
サードパーティ製といえば・・・
http://www.magentocommerce.com/magento-connect/subscriptions-and-recurring-
payments-by-aheadworks.html
サードパーティ製の課題
• 独自実装になっているので、決済モジュールは個
別に対応が必要
• 機能面で標準と異なる点があるため、注意が必要
• そもそもライセンス費用が必要
• 日本の決済になど・・・対応しているわけがない
継続課金を使う際の設定1
継続課金を使う際の設定2
継続課金の仕組み
• Recurring Profile
• Recurring Product
• Nominal Item
• 対応する決済方法
Recurring Profile
• 継続課金の契約データそのもの
• 誰に何を、いくらで、どの周期で、何回課金するか
• 1つの継続課金契約には1つのRecurring Profile
Recurring Product
• 商品のデータ上、「Recurring Profile」が有効になっ
ている商品
• Recurringできるのは、Simple, Virtualのみ
• Recurring Profileが有効な商品は、それ単独でしか
カートに入れることができない
• つまり1回の決済で1つの商品しか買えない
Nominal Item
• Recurring Productをカートに入れた際に出る項目
対応する決済方法
• Mage_Payment_Model_Recurring_Profile_MethodI
nterfaceを実装した決済クラス
– submitRecurringProfile
– getRecurringProfileDetails
– canGetRecurringProfileDetails
– updateRecurringProfile
– updateRecurringProfileStatus
• その他、決済サービス側の仕様を満たす実装
– こちらのほうがよほど面倒くさい
決済サービス側で勝手に課金する場合
• 課金されたことをMagento側で拾う処理が必要
– 定時バッチで実行する方法
– サービス側から通知してもらう方法
• どちらでやるかは仕様に依存
– 通知してもらう場合は注文・請求データの作成処理を実
装する必要あり
Magento側で課金を起こす場合
• 定時バッチによる課金処理を起こす
• カード番号の決済サービス側での保存が必要
(カード決済の場合)
• Magento側でRecurring Profile毎にいつ課金するか
判定を実施
– 課金処理時に注文データと請求データを作成
面倒な仕様の例
• 継続課金の課金・取消申請をする期間が1ヶ月の
うちに一定期間存在する
– その期間を過ぎると諸々面倒であったりとか・・・
• SFTPで所定のデータをアップしろ、とか
– もはやWebアプリではなくただのバッチ処理ではと・・・
継続課金の制約
• Recurring Profileの内容を顧客が自由に変更できない(解
約・停止はできる)
• 管理者も解約と停止しかできない
– 税率変更時に問題になる
– 契約変更時は解約・新規契約になる
• カード番号をMagento側に持つのはNGなので、カード番号
お預かり等の機能のない決済サービスでは利用できない
(ペイジー・コンビニなどは可)
• 継続課金の場合、3Dセキュア認証が行われない事がある
まとめ
• Magentoの継続課金機能はベータ版
• 決済側さえ対応していればそれなりに使える
– ただし、決済側の仕様がバラバラ
• 1つの継続課金で1つの商品しか扱えない
• 税率の変更や届け先の変更などは出来ない

More Related Content

Similar to 第9回 Magento Cafe Plus

加速していくMagento 〜MDP2011参加レポート〜
加速していくMagento 〜MDP2011参加レポート〜加速していくMagento 〜MDP2011参加レポート〜
加速していくMagento 〜MDP2011参加レポート〜
Hirokazu Nishi
 
Movable type seminar_20121204
Movable type seminar_20121204Movable type seminar_20121204
Movable type seminar_20121204
Six Apart
 
repositoryパターンを維持しながら n+1問題を起こさないようにする方法論
repositoryパターンを維持しながら n+1問題を起こさないようにする方法論repositoryパターンを維持しながら n+1問題を起こさないようにする方法論
repositoryパターンを維持しながら n+1問題を起こさないようにする方法論
智也 鈴木
 

Similar to 第9回 Magento Cafe Plus (20)

加速していくMagento 〜MDP2011参加レポート〜
加速していくMagento 〜MDP2011参加レポート〜加速していくMagento 〜MDP2011参加レポート〜
加速していくMagento 〜MDP2011参加レポート〜
 
グレープシティと業務システム開発のモダナイゼーション
グレープシティと業務システム開発のモダナイゼーショングレープシティと業務システム開発のモダナイゼーション
グレープシティと業務システム開発のモダナイゼーション
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
Net advantage 2012 volume2 最新情報 Windows Forms / ASP.NET 編
 
SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告
 
SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告SpringOne Platform 2018 全体報告
SpringOne Platform 2018 全体報告
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 
.NET 7期待の新機能
.NET 7期待の新機能.NET 7期待の新機能
.NET 7期待の新機能
 
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション 【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
【BS15】.NET アップグレード アシスタントで簡単にできます! .NET Framework アプリの .NET 6 へのマイグレーション
 
Ms retail update ra 20191030
Ms retail update ra 20191030Ms retail update ra 20191030
Ms retail update ra 20191030
 
Building a Global B2B Empire: Using Magento to Power International Expansion
Building a Global B2B Empire: Using Magento to Power International ExpansionBuilding a Global B2B Empire: Using Magento to Power International Expansion
Building a Global B2B Empire: Using Magento to Power International Expansion
 
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
 
マイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャーマイクロサービスとそれを支えるアーキテクチャー
マイクロサービスとそれを支えるアーキテクチャー
 
Movable type seminar_20121204
Movable type seminar_20121204Movable type seminar_20121204
Movable type seminar_20121204
 
ケートリック製品ポートフォリオを一挙にご紹介
ケートリック製品ポートフォリオを一挙にご紹介ケートリック製品ポートフォリオを一挙にご紹介
ケートリック製品ポートフォリオを一挙にご紹介
 
Bluemix で構築するマーケティングオートメーション「Mautic」
Bluemix で構築するマーケティングオートメーション「Mautic」Bluemix で構築するマーケティングオートメーション「Mautic」
Bluemix で構築するマーケティングオートメーション「Mautic」
 
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
 
repositoryパターンを維持しながら n+1問題を起こさないようにする方法論
repositoryパターンを維持しながら n+1問題を起こさないようにする方法論repositoryパターンを維持しながら n+1問題を起こさないようにする方法論
repositoryパターンを維持しながら n+1問題を起こさないようにする方法論
 
【de:code 2020】 リモートワークの端末を安全に使ってもらおう どこがパワフル Microsoft Endpoint Manager の Wi...
【de:code 2020】 リモートワークの端末を安全に使ってもらおう  どこがパワフル Microsoft Endpoint Manager の Wi...【de:code 2020】 リモートワークの端末を安全に使ってもらおう  どこがパワフル Microsoft Endpoint Manager の Wi...
【de:code 2020】 リモートワークの端末を安全に使ってもらおう どこがパワフル Microsoft Endpoint Manager の Wi...
 
Task planner
Task plannerTask planner
Task planner
 

More from Hirokazu Nishi

Magento cafe tokyo2~デザイナー向けMagentoの歩き方
Magento cafe tokyo2~デザイナー向けMagentoの歩き方Magento cafe tokyo2~デザイナー向けMagentoの歩き方
Magento cafe tokyo2~デザイナー向けMagentoの歩き方
Hirokazu Nishi
 
最新・Magentoを日本語で使うイロハ
最新・Magentoを日本語で使うイロハ最新・Magentoを日本語で使うイロハ
最新・Magentoを日本語で使うイロハ
Hirokazu Nishi
 

More from Hirokazu Nishi (15)

Magento Meetup Tokyo 14 〜メンテナンス画面を極める
Magento Meetup Tokyo 14 〜メンテナンス画面を極めるMagento Meetup Tokyo 14 〜メンテナンス画面を極める
Magento Meetup Tokyo 14 〜メンテナンス画面を極める
 
JP_Stripes Vol3 発表資料
JP_Stripes Vol3 発表資料JP_Stripes Vol3 発表資料
JP_Stripes Vol3 発表資料
 
20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe Magento20170626 さくらインターネット Stripe Magento
20170626 さくらインターネット Stripe Magento
 
Magento cafe plus #12
Magento cafe plus #12Magento cafe plus #12
Magento cafe plus #12
 
第4回Magento Cafe Plus〜Rewriteと独自テーブル
第4回Magento Cafe Plus〜Rewriteと独自テーブル第4回Magento Cafe Plus〜Rewriteと独自テーブル
第4回Magento Cafe Plus〜Rewriteと独自テーブル
 
第4回Magento Cafe Plus〜最近のMagento
第4回Magento Cafe Plus〜最近のMagento第4回Magento Cafe Plus〜最近のMagento
第4回Magento Cafe Plus〜最近のMagento
 
第3回 Magento Cafe Plus モジュール開発入門
第3回 Magento Cafe Plus モジュール開発入門第3回 Magento Cafe Plus モジュール開発入門
第3回 Magento Cafe Plus モジュール開発入門
 
第2回 Magento cafe plus 〜新・Magentoカスタマイズ入門
第2回 Magento cafe plus 〜新・Magentoカスタマイズ入門第2回 Magento cafe plus 〜新・Magentoカスタマイズ入門
第2回 Magento cafe plus 〜新・Magentoカスタマイズ入門
 
Akeneo PIM Overview
Akeneo PIM OverviewAkeneo PIM Overview
Akeneo PIM Overview
 
Magento cafe tokyo2~デザイナー向けMagentoの歩き方
Magento cafe tokyo2~デザイナー向けMagentoの歩き方Magento cafe tokyo2~デザイナー向けMagentoの歩き方
Magento cafe tokyo2~デザイナー向けMagentoの歩き方
 
最新・Magentoを日本語で使うイロハ
最新・Magentoを日本語で使うイロハ最新・Magentoを日本語で使うイロハ
最新・Magentoを日本語で使うイロハ
 
Magento20100807
Magento20100807Magento20100807
Magento20100807
 
Magento20100709
Magento20100709Magento20100709
Magento20100709
 
Magento20100313
Magento20100313Magento20100313
Magento20100313
 
Magento20100226
Magento20100226Magento20100226
Magento20100226
 

第9回 Magento Cafe Plus