有限会社スプレッドワークス/Spread Works Inc.
ECサイト構築Webサイト構築Webシステム開発マーケティング支援制作実績課題解決
SERVICESサービス紹介
ECサイト構築・運用
CASES / WORKS課題解決 / 制作実績
NEWS / COLUMNお知らせ / ナレッジ・コラム
コラム

EC-CUBEのカスタマイズ方法を解説

Satoshi NakanoSatoshi Nakano

EC-CUBE4(以降、EC-CUBE)はオープンソースのEC構築プラットフォームとして、非常に高いカスタマイズ性を備えています。本記事では「EC-CUBEをもっと自由に使いたい」「既存機能では足りない」と考えている方に向けて、EC-CUBEカスタマイズの基本的な考え方や主な方法、実際のカスタマイズ例、注意点まで詳しく解説します。

カスタマイズが難しくプロに任せたい方は ECサイト構築サービス with EC-CUBE をご利用ください。


EC-CUBEのカスタマイズを初心者ができるのか?結論、難しい。

EC-CUBEのカスタマイズは、単にテンプレートの見た目を変えるだけであれば初心者でも可能ですが、機能を追加・カスタマイズとなるとSymfonyベースの高度なプログラミング知識が求められるため、WordPressのようなCMSを少し触った経験がある程度の方にはかなり難しい内容です。本格的な機能拡張や処理の追加を行うには、PHP、Twig、Doctrine ORM、サービスコンテナなどの理解が必要になります。カスタマイズされる方は、まずは当ページおよび開発者向けドキュメントを参考にカスタマイズを進めてみてください。

PHP・Symfonyの基礎知識が必要

EC-CUBEはSymfonyフレームワークをベースとしているため、基本的なPHPの構文だけでなく、DIコンテナやルーティング、イベント駆動などのフレームワーク特有の知識が必要です。

ファイル構成が複雑

テンプレート、Entity、Form、Controller、Serviceなど、機能ごとにファイルが分かれており、初学者には全体のつながりを理解するのが難しい傾向があります。

アップデートやセキュリティ対応も必要

カスタマイズだけでなく、アップデートとの整合性、セキュリティリスクの回避も考慮しなければなりません。

▶ 参考:EC-CUBE 4 開発者向けドキュメント


EC-CUBE カスタマイズの基本的な考え方

EC-CUBEはPHPとSymfonyをベースに構築されており、機能追加やデザイン変更、外部連携など幅広いカスタマイズが可能です。プラグイン機構やテンプレート編集により、柔軟に要件を実現できます。

EC-CUBEはソースコードが公開されているオープンソースであるため、本体のソースコードを直接編集することも可能ですが、当社では以下の理由から本体ソースコードの直接編集は推奨していません。

  • セキュリティホールが発見された際、迅速なアップデート対応が困難になる
  • 不具合や問題発生時に、本体とカスタマイズ部分の切り分けが難しくなる
  • EC-CUBEアップグレードが困難になる

カスタマイズの元となるコードの取得について

ソースコードの取得はGithubから取得する方法とEC-CUBE公式サイトからダウンロードするパッケージ版のどちらかで取得できます。 内容は同じではなく、パッケージ版は言語ファイルのキー値が日本語に変換されており、git版と同じ状態ではありません。テンプレートだけ編集される場合は、パッケージ版を基にカスタマイズしても良いですが、gitが使える方は最新のソースコードと現在の状態の差分を見ることができるgit版の利用をお勧めします。

▶ 参考:Github

▶ 参考:EC-CUBE公式サイト / ダウンロード


EC-CUBE カスタマイズの方法

(1) プラグイン開発

EC-CUBEにはプラグイン機構があり、標準機能を改変せずに新機能を追加できます。独自プラグインの開発により、要件に合った機能拡張が可能です。

EC-CUBE4はバージョンによってプラグインの記述方法が異なります。

  • 4.0〜4.1は互換性あり
  • 4.2〜4.3は互換性あり

プラグインでは、以下のような拡張が可能で、EC-CUBE本体で実装している内容と同様の機能を実装することができます。(1点注意事項としてプラグインでは言語ファイルの上書きができません。)

  • ショッピング側・管理画面側のテンプレートに独自のデザインを差し込む、または置き換える
  • Symfonyのサービスコンテナ(アプリケーション全体で使用するオブジェクトを一元管理し、自動的に依存関係を解決・注入する仕組み)を利用して既存機能に介入
  • データ取得の条件追加やソート順の変更
  • 既存のテーブルにカラムを追加

▶ 参考:EC-CUBE4 プラグイン開発ドキュメント

(2) カスタマイズフォルダでの機能実装

EC-CUBEの/app/Customizeフォルダに各種ファイルを設置することで、プラグインと同様の拡張が可能です。 (プラグインとの違いは1点あり、言語ファイルの上書きが可能です。)

(3) テンプレート・テーマ編集(Twig)

フロント画面の見た目を変更する場合は、app/template/ 配下にあるTwigテンプレートファイルを編集します。


カスタマイズに役立つTIPSと注意点

セキュリティに考慮したコーディング必要

EC-CUBE カスタマイズを行う際は「セキュリティガイドライン」を内容を理解した上で、行うようにしてください。

▶ 参考:EC-CUBE 4 開発者向けドキュメントサイト / EC-CUBE 4 セキュリティガイドライン

キャッシュの扱いに注意

Symfonyは各種ファイルをキャッシュすることによって、実行速度を速める機構があり、ファイルを修正してもキャッシュが利用され変更が反映されない場合があります。 管理画面または以下のコマンドを実行してキャッシュクリアするようにしてください。

EC-CUBEインストールディレクトリ/app/bin/console cache:clear --no-warmup

デバッグモードについて

環境設定ファイル「EC-CUBEインストールディレクトリ/.env」に以下の記述をするとデバッグモードになります。デバッグモードではキャッシュがされないため、開発時に便利です。 また、SymfonyのProfilerツールも利用でき、画面右下のSymfonyのアイコンをクリックすると、デバッグ内容を確認できます。なお画面が表示されないプログラムのデバッグはhttps://ホスト名/_profilerでProfilerの画面が確認できます。

APP_ENV=dev
APP_DEBUG=1

composer updateコマンドは使用してはいけない

composer updateして、利用しているパッケージを更新したいところですが、各バンドルのバージョン指定が厳密でなく、マイナーバージョンの自動アップデートによって不具合が発生し、動作しなくなることがあります。パッケージを導入する場合は基本的に composer install を利用するようにしてください。


EC-CUBE カスタマイズのご相談はスプレッドワークスへ

「こういうことができる?」「既存のサイトに機能追加したい」「他社で作ったけど不満がある」――そんなお悩みをお持ちの方は、EC-CUBEのインテグレートパートナーであるスプレッドワークスにぜひご相談ください。

  • 4系を中心に多数のEC-CUBEカスタマイズ実績あり
  • オリジナルプラグインや外部連携、業務システムとの統合も対応可能
  • 中小企業・メーカー向けに特化したご提案が可能

ご相談・お見積もりは無料です。お気軽にお問い合わせください。

このコラムに関連するサービス・製品

ECサイト構築サービス with EC-CUBE

EC-CUBEを活用したECサイト構築サービスでは、オリジナルデザインや高機能プラグインを活用し、業種や規模に応じた柔軟なカスタマイズを提供します。小規模から大規模まで対応可能で、安定稼働と高水準のセキュリティを実現。

Satoshi Nakano
Satoshi Nakano代表取締役 / ITエンジニア / デザイナー / ITコンサルタント

IT業界歴27年、デザイナーとしてキャリアを始め、デザイン・プログラミング・コンサルを統合したアプローチを提供。幼少期からのプログラミング経験で複数言語・独自フレームワークに精通。年商億超えECサイト運営会社2社の経営を通じ、戦略立案や運営ノウハウを培いました。EC-CUBE公式インテグレートパートナーとして、EC構築・カスタマイズ・運営を一貫サポートし、ビジネス成長に貢献します。

カテゴリー
  • すべて

  • 雑記

  • 技術アーカイブス

  • コラム

Powered by SPREAD Commerce on EC-CUBE.copyright © Spread Works Inc. all rights reserved.