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
防災デジタル分野での官民共創の取り組み (2)DIT/CCとD-CERTについて
ditccsugii
0
250
Shirankedo NOCで見えてきたeduroam/OpenRoaming運用ノウハウと課題 - BAKUCHIKU BANBAN #2
marokiki
0
190
GoでもGUIアプリを作りたい!
kworkdev
PRO
0
140
生成AIとM5Stack / M5 Japan Tour 2025 Autumn 東京
you
PRO
0
250
AWS Top Engineer、浮いてませんか? / As an AWS Top Engineer, Are You Out of Place?
yuj1osm
2
210
社内報はAIにやらせよう / Let AI handle the company newsletter
saka2jp
8
1.4k
神回のメカニズムと再現方法/Mechanisms and Playbook for Kamikai scrumat2025
moriyuya
4
730
許しとアジャイル
jnuank
1
150
CoRL 2025 Survey
harukiabe
0
170
セキュアな認可付きリモートMCPサーバーをAWSマネージドサービスでつくろう! / Let's build an OAuth protected remote MCP server based on AWS managed services
kaminashi
3
310
Geospatialの世界最前線を探る [2025年版]
dayjournal
1
220
AIAgentの限界を超え、 現場を動かすWorkflowAgentの設計と実践
miyatakoji
1
170
Featured
See All Featured
Building an army of robots
kneath
306
46k
How to Think Like a Performance Engineer
csswizardry
27
2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Visualization
eitanlees
149
16k
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
870
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
How to train your dragon (web standard)
notwaldorf
96
6.3k
GitHub's CSS Performance
jonrohan
1032
470k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.9k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
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に興味が出た方はぜひ触ってみてください! おわり