Suche senden
Hochladen
2019/2/7 EC-CUBE東京UG勉強会-PurchaseFlowの使い方-
•
3 gefällt mir
•
3,147 views
Chihiro Adachi
Folgen
EC-CUBE4.0で実装された、PurchaseFlowの解説です
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 18
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう
iRidge, Inc.
上っ面スクラムチームにならないために気を付けたいこと
上っ面スクラムチームにならないために気を付けたいこと
IIJ
Empfohlen
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
SaitoTsutomu
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう
iRidge, Inc.
上っ面スクラムチームにならないために気を付けたいこと
上っ面スクラムチームにならないために気を付けたいこと
IIJ
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Preferred Networks
小さなサービスも契約する時代
小さなサービスも契約する時代
Ryo Mitoma
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
Kohsuke Yuasa
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
Shougo
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
健人 井関
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Public
bonjin6770 Kurosawa
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
問いかけの作法輪読会#2(ファクトリー型/ワークショップ型)
問いかけの作法輪読会#2(ファクトリー型/ワークショップ型)
瑛一 西口
FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化
虎の穴 開発室
(DL hacks輪読) Variational Dropout and the Local Reparameterization Trick
(DL hacks輪読) Variational Dropout and the Local Reparameterization Trick
Masahiro Suzuki
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回
Tomoya Kawanishi
型安全性入門
型安全性入門
Akinori Abe
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
VirtualTech Japan Inc./Begi.net Inc.
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
jenkinsで遊ぶ
jenkinsで遊ぶ
(^-^) togakushi
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
You&I
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
VirtualTech Japan Inc.
Weitere ähnliche Inhalte
Was ist angesagt?
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Preferred Networks
小さなサービスも契約する時代
小さなサービスも契約する時代
Ryo Mitoma
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
Kohsuke Yuasa
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
Kentaro Yoshida
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
Shougo
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
健人 井関
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
Yoshitaka Kawashima
凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Public
bonjin6770 Kurosawa
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
問いかけの作法輪読会#2(ファクトリー型/ワークショップ型)
問いかけの作法輪読会#2(ファクトリー型/ワークショップ型)
瑛一 西口
FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化
虎の穴 開発室
(DL hacks輪読) Variational Dropout and the Local Reparameterization Trick
(DL hacks輪読) Variational Dropout and the Local Reparameterization Trick
Masahiro Suzuki
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回
Tomoya Kawanishi
型安全性入門
型安全性入門
Akinori Abe
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
VirtualTech Japan Inc./Begi.net Inc.
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Yoshifumi Kawai
jenkinsで遊ぶ
jenkinsで遊ぶ
(^-^) togakushi
Was ist angesagt?
(20)
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
Kubernetes ControllerをScale-Outさせる方法 / Kubernetes Meetup Tokyo #55
小さなサービスも契約する時代
小さなサービスも契約する時代
規格書で読むC++11のスレッド
規格書で読むC++11のスレッド
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
我が evil-mode を嫌いな理由 〜evil-mode の闇〜
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
強いて言えば「集約どう実装するのかな、を考える」な話
強いて言えば「集約どう実装するのかな、を考える」な話
凡人の凡人による凡人のためのデザインパターン第一幕 Public
凡人の凡人による凡人のためのデザインパターン第一幕 Public
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
問いかけの作法輪読会#2(ファクトリー型/ワークショップ型)
問いかけの作法輪読会#2(ファクトリー型/ワークショップ型)
FizzBuzzで学ぶJavaの進化
FizzBuzzで学ぶJavaの進化
(DL hacks輪読) Variational Dropout and the Local Reparameterization Trick
(DL hacks輪読) Variational Dropout and the Local Reparameterization Trick
きつねさんでもわかるLlvm読書会 第2回
きつねさんでもわかるLlvm読書会 第2回
型安全性入門
型安全性入門
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
jenkinsで遊ぶ
jenkinsで遊ぶ
Ähnlich wie 2019/2/7 EC-CUBE東京UG勉強会-PurchaseFlowの使い方-
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
You&I
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
VirtualTech Japan Inc.
JPiere 伝票の基礎知識
JPiere 伝票の基礎知識
Hideaki Hagiwara
kintoneの新機能を開発するお仕事
kintoneの新機能を開発するお仕事
Cybozu, Inc.
ログにまつわるエトセトラ
ログにまつわるエトセトラ
菊池 佑太
SubversionとSugarsync
SubversionとSugarsync
Hidenori Goto
Gui自動テストツール基本
Gui自動テストツール基本
Tsuyoshi Yumoto
プロジェクトマネジメント入門以前 Web
プロジェクトマネジメント入門以前 Web
minamo
TopSE.20121119
TopSE.20121119
Osamu Habuka
GC_Naiseika_Day_q3_0706_Keynote.pdf
GC_Naiseika_Day_q3_0706_Keynote.pdf
ssuser41f27b
Ähnlich wie 2019/2/7 EC-CUBE東京UG勉強会-PurchaseFlowの使い方-
(10)
Pivotal Trackerでアジャイルなプロジェクト管理
Pivotal Trackerでアジャイルなプロジェクト管理
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
仮想化専門コンサルタントが教える「成功する仮想化導入のポイント」
JPiere 伝票の基礎知識
JPiere 伝票の基礎知識
kintoneの新機能を開発するお仕事
kintoneの新機能を開発するお仕事
ログにまつわるエトセトラ
ログにまつわるエトセトラ
SubversionとSugarsync
SubversionとSugarsync
Gui自動テストツール基本
Gui自動テストツール基本
プロジェクトマネジメント入門以前 Web
プロジェクトマネジメント入門以前 Web
TopSE.20121119
TopSE.20121119
GC_Naiseika_Day_q3_0706_Keynote.pdf
GC_Naiseika_Day_q3_0706_Keynote.pdf
2019/2/7 EC-CUBE東京UG勉強会-PurchaseFlowの使い方-
1.
EC-CUBE東京ユーザグループ勉強会 2019/02/07
2.
chihiro-adachi (足立 智広) 株式会社イーシーキューブ -
@chihiro-adachi - EC-CUBEエバンジェリスト
3.
アジェンダ ● 導入 ○ 今日のゴール ○
PurchaseFlowとは ● カスタマイズ例(デモ) ● PurchaseFlowの仕組み ● カスタマイズ例の解説 ● まとめ
4.
今日のゴール ● PurchaseFlowの仕組みがわかる ● Processorのカスタマイズができるようになる
5.
PurchaseFlowとは ● 受注の集計処理や整合性チェック・受注明細の操作を拡 張できる仕組み ● たとえば... ○
値引きの計算を行う ○ 送料計算を行う ○ 合計金額を集計する ○ 在庫切れ商品のチェックを行う
6.
PurchaseFlowとは ● 集計処理や、在庫チェックなどのバリデーションは、受注に関わる共通したロ ジック ● 従来は、利用される画面で個別に実装されており、カスタマイズ時の影響が 読みづらい、再利用しにくいなどの課題があった ●
集計フローを制御するPurchaseFlowと、各処理を行うProcessorに分離し、ロ ジックを差し替えたり、新たなバリデーションを追加したりなど拡張できるよう に対応 https://github.com/EC-CUBE/ec-cube/pull/2424
7.
カスタマイズ例(デモ)
8.
カスタマイズ例(デモ) ● 「10,000円以上の購入で500円の値引き」を作る ● 作成するファイルは一つだけ ○
app/Customize/Service/PurchaseFlow/Processor/NebikiProcessor. php ● ソースコード ○ https://github.com/chihiro-adachi/ec-cube/tree/demo-tokyo ○ https://github.com/chihiro-adachi/ec-cube/compare/ad03d2d0078f8 347c0a8fae9acc1ced74bf6e967...demo-tokyo
9.
PurchaseFlowの仕組み
10.
PurchaseFlowとProcessor ● PurchaseFlow ○ 明細処理や集計処理の全体のフローを制御する Processorを順次実行していく ●
Processor ○ 受注や明細に対するバリデーションや操作を行う ○ たとえば ■ 値引き明細を追加する ■ 販売制限数のチェックを行う ○ 実行タイミングはアノテーションや実装するインター フェースで指定する(後述)
11.
PurchaseFlowの流れ ①受注明細のバリデーション ②受注のバリデーション 金額集計 ③受注の操作 ④値引き明細の操作 ⑤金額確定後の操作・バリデー ション 金額集計 金額集計 金額集計 ※PurchaseFlow::validate()の処理 金額集計
12.
2系・3系の購入処理の流れ https://github.com/EC-CUBE/ec-cube/pull/2424
13.
PurchaseFlowの流れ 概要 具体例(一部抜粋) 実装するインターフェース 明細のバリデーション
商品価格の変更チェック 商品の公開ステータスチェック ItemValidator 受注のバリデーション 在庫チェック 販売制限数のチェック ItemHolderValidator 受注の操作 注文番号の払い出し 送料の明細の追加 送料無料条件の適用 支払い手数料の明細の追加 ItemHolderPreprocessor 値引き明細の操作 ポイント値引明細の追加 DiscountProcessor 金額確定後の操作・バリデーション 合計金額のマイナスチェック ItemHolderPostValidator
14.
3種類のフロー ● CartFlow ○ カート画面、カートブロックで実行される ●
ShoppingFlow ○ 購入確認画面、完了画面で実行される ● OrderFlow ○ 管理画面の受注登録画面で実行される
15.
カスタマイズ例の解説 (ソースコード見ながら)
16.
まとめ
17.
覚えるのは3つだけ ● PurchaseFlowは集計や明細処理のフロー全体を制御し、 Processorを実行していく ● Processorはバリデーションや明細の操作をする ●
Processorをどのタイミングで実行するかは、アノテーショ ンや実装するインターフェースで指定
18.
Thanks #eccube
Jetzt herunterladen