【簡単解説】システムエンジニア&プログラマー&心理カウンセラー

【簡単解説】ECCUBE4カスタマイズの際に必要なソースプログラムの解説

2020.11.19

※この記事は上級者向きの記事です。

ECCUBE4カスタマイズ「えっと、どこを触ればよかったっけ?」

今日はECCUBE4でカスタマイズを行いたい場合の基本的な構成をまとめてみました。


「EC-CUBE(イーシーキューブ)」は、株式会社イーシーキューブのEC構築パッケージを誰でも無料で利用・改変できる「オープンソース」として公開されているものです。

2020年現在、最新のEC-CUBEはバージョン4で、EC-CUBE4はフレームワークSymfony3.4で構成されています。またテンプレートエンジンはTwig2.6です。

EC-CUBEはカスタマイズが自由に行えるオープンソースであるため、SymfonyやTwigを扱うことで自在に独自のECサイトを構築できます。

ということで今日はEC-CUBE4をカスタマイズするにあたって、押さえておきたいのは以下3つのフォルダでさらにその中で特に必要なフォルダを個別にざっくりと解説していきたいと思います。

 

  • /src/Eccube
  • /html/template
  • /app

 

/src/Eccube

この中にはほぼプログラム一式が収まっています。
必要なフォルダのみピックアップしていきましょう。

 

/src/Eccube/Controller

ここには各ページの処理一式が記述されています。ファイル名はすべて「hogehogeController.php」です。
※hogehogeはダミー文字

たとえば商品一覧、商品詳細などのControllerは「ProductController.php」です。

 
Controllerには、各ページのルーティングも定義されていて、要するにこのURLにアクセスされたら、このControllerのこの関数を実行する、といった定義がこのController内にあります。

処理的なカスタマイズや新しい機能を追加していく場合などはここを触っていく必要があります。

 

/src/Eccube/Entity

Entityはデータベースのテーブル定義をまとめたもので、データベースとSymfonyがやり取りを行う場合に必要な定義ファイルです。

基本的には、1テーブル1Entityファイルで、テーブル追加した場合などは作成しなければなりませんし、項目追加した場合はその項目の定義を追加する必要があります。

 

/src/Eccube/Form/Type

ここは入力画面での項目定義が各画面ごとに格納されています。
また入力チェックや初期値などもここで定義されています
項目の追加修正などを行いたい場合はここをカスタマイズします。

 
管理画面は「/admin」、フロン後側は「/Front」でフォルダ分けされています。
またファイル名はすべて「hogehogeType.php」です。
※hogehogeはダミー文字

たとえば、会員登録のTypeは「EntryType.php」です。

 

/src/Eccube/Repository

ここはデータベースとのやり取りを行う関数一式が格納されています。DB処理におけるカスタマイズはここで行います。
データ取得、検索などのSELECTなどここでSQLを構成し発行、データ取得して返す、といった関数の集まりですね。

ECCUBEのテーブルは「dtb_」か「mtb_」のいずれかで始まっていて、「mtb_」がマスタ系になっています。

 
マスターのみフォルダが切られていて以下となっています。

/src/Repository/Master

 

/src/Eccube/Resource/template

ここにはテンプレートが格納されています。ファイルはすべてtwigファイルです。

 
管理画面のテンプレートは以下に収められていて機能ごとにフォルダ分けされています。

/src/Resource/template/admin

 
同様にフロント側のテンプレートは以下に収められていて機能ごとにフォルダ分けされています。

/src/Resource/template/default

たとえば、マイページの機能は「/Mypage」フォルダに格納されています。

 

/src/Eccube/Resource/locale

メッセージやボタン名、タイトルなどの文字列の値が一式定義されています。
日本語は以下ファイルに定義されています。

messages.ja.yaml

 

/html/template

デフォルトのデザインのcssやjsなどが収められています。
ここはあくまでもデフォルトなので、デフォルトのデザインをそのまま流用する場合にここを変更すればよいですが、新しいデザインを作る場合などはcssなどの読み込み先を変えても構いません。
私はたいていドメインのルート直下common/などへ設置します。

/html/template/default/assets

 

/app

ここはプラグインなどが保存されたりしますが、以下2つのフォルダを抑えておくとよいでしょう。

 

/app/template/default

ここは上記で説明した「/src/Eccube/Resource/template」と同じ構成でテンプレートを保存する場所です。こちらにテンプレートが存在する場合は、こちら側のテンプレートを優先で読み込みます。こちら側にない場合に「/src」を読み込みます。

また管理画面で「コンテンツ管理>ページ管理」からテンプレートを編集した場合も、app側へ保存されます。

 

app/config/eccube/packages

ここは各定義値が設定されたファイルが存在します。インストール時に基本設定されるので必要がない場合は触る必要はほとんどありませんが、機能を追加したり大幅なカスタマイズでは触る必要がある箇所です。

 
管理画面のメニュー構成が定義されています。

eccube_nav.yaml

 
フォルダ定義や文字数定義などの基本的な定義値が収められています。

eccube.yaml

 
フレームワークの定義値が収められています。

framework.yaml

 
ECCUBE4カスタマイズのまとめ

ECCUBE4は
上記のフォルダをチェックすれば
カスタマイズも簡単!

 
最後までお読みいただきありがとうございます。

関連記事