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
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
1k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
20251014_Pythonを実務で徹底的に使いこなした話
ippei0923
0
220
Introduction to Bill One Development Engineer
sansan33
PRO
0
300
AWS UG Grantでグローバル20名に選出されてre:Inventに行く話と、マルチクラウドセキュリティの教科書を執筆した話 / The Story of Being Selected for the AWS UG Grant to Attending re:Invent, and Writing a Multi-Cloud Security Textbook
yuj1osm
1
100
CoRL 2025 Survey
harukiabe
1
230
RDS の負荷が高い場合に AWS で取りうる具体策 N 連発/a-series-of-specific-countermeasures-available-on-aws-when-rds-is-under-high-load
emiki
7
4.3k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
14k
dbtとBigQuery MLで実現する リクルートの営業支援基盤のモデル開発と保守運用
recruitengineers
PRO
3
140
AWS Control Tower に学ぶ! IAM Identity Center 権限設計の第一歩 / IAM Identity Center with Control Tower
y___u
1
260
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
140
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
Navigating Team Friction
lara
190
15k
Writing Fast Ruby
sferik
629
62k
4 Signs Your Business is Dying
shpigford
185
22k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
RailsConf 2023
tenderlove
30
1.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
61k
Scaling GitHub
holman
463
140k
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に興味が出た方はぜひ触ってみてください! おわり