Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
初めてのEC-CUBEカスタマイズに苦労した話
Search
drytt
April 15, 2019
Technology
0
2.7k
初めてのEC-CUBEカスタマイズに苦労した話
EC-CUBE3のカスタマイズ開発経験をもとに、EC-CUBEの概要、利用技術、開発難易度、所感等をまとめました。
drytt
April 15, 2019
Tweet
Share
More Decks by drytt
See All by drytt
Blockchainはどう役に立つのだろうか
drytt
1
1.7k
Other Decks in Technology
See All in Technology
Observability infrastructure behind the trillion-messages scale Kafka platform
lycorptech_jp
PRO
0
140
_第3回__AIxIoTビジネス共創ラボ紹介資料_20250617.pdf
iotcomjpadmin
0
150
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
200
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
4
660
rubygem開発で鍛える設計力
joker1007
2
190
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
240
Model Mondays S2E02: Model Context Protocol
nitya
0
220
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
140
Observability в PHP без боли. Олег Мифле, тимлид Altenar
lamodatech
0
330
フィンテック養成勉強会#54
finengine
0
170
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
1
160
ハノーバーメッセ2025座談会.pdf
iotcomjpadmin
0
160
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
Navigating Team Friction
lara
187
15k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Done Done
chrislema
184
16k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Making Projects Easy
brettharned
116
6.3k
Writing Fast Ruby
sferik
628
61k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
How to Ace a Technical Interview
jacobian
277
23k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
Transcript
初めてのEC-CUBEカスタマイズに 苦労した話 (EC-CUBE概要・利用技術・開発難易度・所感) 2019 . 02. 06 created by drytt
EC-CUBE - 概要 ・ECサイト向けCMS ・日本のイーシーキューブ社(旧ロックオン社)提供 ・国内No1シェア、全国に30,000店舗以上(*1) 2 (*1) https://www.ec-cube.net/
EC-CUBE - 概要 ・オープンソース(公式) https://github.com/EC-CUBE/ ・開発資料(公式) http://doc.ec-cube.net/ ・フォーラム(公式) https://xoops.ec-cube.net/ 3
EC-CUBE - 概要 ・Versionが重要 最新は4系。2系、3系、4系は大幅なアップデート有り。 互換性無く別物と考えた方が良い。(特に2系と3系) ※今回は3系の話。 4
EC-CUBE - 概要 ・デモサイト(公式)https://demo3.ec-cube.net/ 5
カスタマイズ要件 「サイト利用者(≠管理者)が、 商品を登録して購入できるようにして欲しい」 6
カスタマイズ要件 - 解釈 EC-CUBEに元々備わっている機能 ・商品登録機能(サイト管理者) ・商品購入機能(サイト利用者) 7
カスタマイズ要件 - 解釈 新規作成 8 商品登録 画面 商品登録 処理 購入画面 カスタマイズ (既存修正)
対応無し (既存まま)
カスタマイズ実施 - Local開発環境構築 事前準備(インストール) ・PHP、PHPライブラリ mysqli、pdo_sqlite、pdo、phar、mbstring、zlib、ctype、session 、JSON 、xml 、 libxml 、OpenSSL 、zip
、cURL 、fileinfo ・DB(mysql/pgsql/sqlite3) ・WEBサーバ(apache httpd推奨) 9
カスタマイズ実施 - Local開発環境構築 EC-CUBEインストール・設定 ・公式サイトからzipダウンロード ・インストールスクリプトを利用してインストール $ php eccube_install.php ・Document root等設定 10
カスタマイズ実施 - Local開発環境構築 デモサイトと同等の環境構築完了 11
カスタマイズ実施 - 画面・処理の改修 さて、、、 12
初めてのため分からないこと多数。。(実際の作業メモ) カスタマイズ実施 - 画面・処理の改修 13
EC-CUBE - 開発難易度:利用技術 14 PHP 開発言語
EC-CUBE - 開発難易度:利用技術 15 PHP Symfony/Silex 開発言語 Framework
EC-CUBE - 開発難易度:利用技術 16 PHP Symfony/Silex Doctrine ORM 開発言語 Framework O/R Mapping
EC-CUBE - 開発難易度:利用技術 17 PHP Symfony/Silex Doctrine ORM Twig 開発言語 Framework O/R
Mapping Template Engine
EC-CUBE - 開発難易度:利用技術 18 PHP Symfony/Silex Doctrine ORM Twig Bootstrap 開発言語 Framework
O/R Mapping Template Engine Style FW
EC-CUBE - 開発難易度:利用技術 19 PHP Symfony/Silex Doctrine ORM Twig Composer Bootstrap 開発言語
Framework O/R Mapping Template Engine Style FW Library管理
EC-CUBE - 開発難易度:利用技術 20 PHP Symfony/Silex Doctrine ORM Twig Composer Bootstrap EC-CUBE仕様
開発言語 Framework O/R Mapping Template Engine Style FW Library管理
EC-CUBE - 開発難易度:私のスキル 21 Ruby Rails Pug (Jade) HTML/CSS/JS 開発言語 Framework Template
Engine HTML, Style
EC-CUBE - 開発難易度:私の場合 22 PHP Symfony/Silex Doctrine ORM Twig Composer Bootstrap EC-CUBE仕様
Ruby Rails Pug (Jade) HTML/CSS/JS 概念くらいなら分かる EC-CUBE 自己スキル
EC-CUBE - 開発難易度:私の場合 23 非常に苦しい ...
カスタマイズ実施 - 画面・処理の改修 改修方針(とっかかり)を立てる ・Symfony(FW)を調べる →MVC構造であることを把握 ・(公式) EC-CUBE開発ドキュメント・マニュアルを読む →Directory構造等を把握 24
EC-CUBE - Directory構造 - app … log等 - html … topページphp -
src/EC-CUBE - Resource … View(Twig) - ControllerProvider … Routing - Controller … Controller - Service … Model - Entity … DB関連処理 - Repository … DB相当 25
カスタマイズ実施 - 画面・処理の改修 改修の進め方 ・grepとfindで力技ですすめる ・ソースを読みこんで力技ですすめる ・同じように悩んでいる人のネット記事を読んで和む (Twig、Symfony、Doctrine ORM、、、) 26
(再) カスタマイズ要件 - 解釈 新規作成 27 商品登録 画面 商品登録 処理 購入画面 カスタマイズ
(既存修正) 対応無し (既存まま)
カスタマイズ要件 - 解釈の具体化 28 Productnew. twig Cart/index.twig Admin/Product/ ProductController.php CartController.php FrontControllerProvider.php ProductController.php
商品登録 カートへ追加 カート画面へ遷移 カート画面 商品登録画面
カスタマイズ実施 - 画面・処理の改修 改修で苦労したところ/ハマりどころ ・動的デバックがしづらい( IDE無し、$dump()を利用 ) ・調査の切り分けが難しい(PHP or Symfony or EC-CUBE仕様
or ...) ・FormTypeの概念について無知である(CSRF対策等) ・EC-CUBE仕様に慣れが必要である - カート追加時の商品自動削除 - クリエイターIDの存在 - 商品登録処理内で自処理へ redirectする - ProductControllerが2つある 等 29
カスタマイズ実施 - 画面・処理の改修 30 無事完了!
振り返り - EC-CUBEを更に知る ・処理のプラグイン化 ・バージョンの違い/2系と3系は別物 (Directory構造から違う。データ移行プラグイン有り) ・ロードマップ (次ページ) 31
振り返り - EC-CUBEを更に知る ・ロードマップ 32 引用元:https://www.ec-cube.net/press/detail.php?press_id=244
振り返り - エンジニア視点で考えたEC-CUBE ・開発難易度は中級? 利用技術が多く幅広い知識が必要、 バージョン毎に利用技術は異なる ・ECサイトの仕組みの把握には良い OSSで一通りの機能あり ・技術の潰しは効きにくい バージョン毎に利用技術は異なる、 CMS全体のシェアならWordpressが圧倒的 33
振り返り - (参考) CMSシェア 世界のCMS全体シェア 34 引用元: https://w3techs.com/technologies/overview/content_management/all (単位) 灰:Webサイト全体シェア 緑:CMSシェア
振り返り - (参考) CMSシェア 日本のCMS全体シェア 35 引用元 :https://w3techs.com/technologies/segmentation/cl-ja-/content_management
振り返り - 所感 ・チャレンジは成長の糧になる ・チャレンジすると実現できることの幅が広がる ・チャレンジすることは楽しい! 36
振り返り - 夢が広がる今後(¥) ・ECサイト構築・運用 ・電子契約法(購入意思の確認ページが必須、メール到着必須等) ・特定商取引法(氏名、住所等の表示) ・個人情報保護法(ポリシー設定・表示が必要等) ・Stripe(クレジットカード支払)/PayPal/SPIKE導入 ・クレジットカードの非保持化対応 ・プラグイン販売 37
振り返り - 所感 ・チャレンジは成長の糧になる ・チャレンジすると実現できることの幅が広がる ・チャレンジすることは楽しい! 38
おわりに 39 EC-CUBEに興味が出た方はぜひ触ってみてください! おわり