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
20240321_生成AI時代のDevOps
kzkmaeda
2
610
Autify Company Deck
autifyhq
1
30k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
11
3k
Ask-LLM論文紹介: How to Train Data-Efficient LLMs
s_ota
0
110
10分でわかるfreeeのQA
freee
0
230
2023 Japan AWS Jr.Championsに選出されての振り返りとこれから
hiropy877
1
130
大規模なアジャイル開発の現場と技術負債 / Technical Debt
yoshiitaka
20
4k
GitHub最新情報キャッチアップ 2024年3月
dzeyelid
16
3.2k
Tohoku.Tech #1 「Cursorを使ったRaspberry Piの開発」by ねこまた
jun2882
0
250
.NETの非同期戦略とUnityとの相互運用
neuecc
2
2.4k
Cloud Friendly(?) Jenkins. How we failed to make Jenkins cloud native and what we learned?
onenashev
PRO
0
110
依存ライブラリはどこに?
takesection
0
110
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
KATA
mclloyd
14
11k
Faster Mobile Websites
deanohume
296
30k
Producing Creativity
orderedlist
PRO
335
39k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.8k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
1
3.3k
Fontdeck: Realign not Redesign
paulrobertlloyd
75
4.8k
Docker and Python
trallard
33
2.6k
A Philosophy of Restraint
colly
195
15k
Debugging Ruby Performance
tmm1
68
11k
GitHub's CSS Performance
jonrohan
1023
450k
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に興味が出た方はぜひ触ってみてください! おわり