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
2.7k
0
Share
初めてのEC-CUBEカスタマイズに苦労した話
EC-CUBE3のカスタマイズ開発経験をもとに、EC-CUBEの概要、利用技術、開発難易度、所感等をまとめました。
drytt
April 15, 2019
More Decks by drytt
See All by drytt
Blockchainはどう役に立つのだろうか
drytt
1
1.7k
Other Decks in Technology
See All in Technology
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
5
13k
「決め方」の渡し方 / How to hand over the "decision-making process"
pauli
7
1.2k
組織的なAI活用を阻む 最大のハードルは コンテキストデザインだった
ixbox
1
900
I ran an automated simulation of fake news spread using OpenClaw.
zzzzico
1
970
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
11k
自己組織化を試される緑茶ハイを求めて、今日も全力であそんで学ぼう / Self-Organization and Shochu Green Tea
naitosatoshi
0
140
AWSで2番目にリリースされたサービスについてお話しします(諸説あります)
yama3133
0
130
Data Enabling Team立ち上げました
sansantech
PRO
0
280
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
250
チームで育てるAI自走環境_20260409
fuktig
0
870
BIツール「Omni」の紹介 @Snowflake中部UG
sagara
0
220
Databricks Appsで実現する社内向けAIアプリ開発の効率化
r_miura
0
330
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
64
53k
Speed Design
sergeychernyshev
33
1.6k
Making Projects Easy
brettharned
120
6.6k
Designing for Timeless Needs
cassininazir
0
190
The SEO identity crisis: Don't let AI make you average
varn
0
430
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
Building the Perfect Custom Keyboard
takai
2
720
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
It's Worth the Effort
3n
188
29k
Context Engineering - Making Every Token Count
addyosmani
9
800
Mobile First: as difficult as doing things right
swwweet
225
10k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
200
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に興味が出た方はぜひ触ってみてください! おわり