EC-CUBEのプラグイン設計で確認したい9つのポイント|競合・アップデート時の注意点を解説

EC-CUBEのプラグイン設計で確認したい9つのポイント|競合・アップデート時の注意点を解説EC-CUBE
この記事は約8分で読めます。

この記事でわかること
EC-CUBEは、プラグインによって機能を拡張できるのが強みの一つです。ただ、プラグインの選び方や組み合わせによっては、競合や、アップデート時の不具合につながることがあります。この記事では、プラグインを「数」ではなく、責務・依存関係・影響範囲で見る視点と、導入・保守の場面で確認しておきたいポイントを、開発・保守の経験から解説します。

この記事を読むと分かること

  • プラグインを「数」でなく影響範囲で見る考え方
  • 導入前・保守時に確認したいポイント
  • BtoBで特に整理しておきたい、責務の境界

前提:プラグインは、EC-CUBE本体を拡張する仕組み

プラグインを使うと、決済・配送連携・会員機能・SEO機能・BtoB機能など、さまざまな機能を追加できます。個別開発を一から行う場合と比べて、必要な機能を追加しやすいケースがあります。

一方で、プラグインは「独立した機能を後付けするだけ」とは限りません。EC-CUBE本体の処理・画面・データベースなどを拡張するため、導入する際は、どこにどう影響するかを確認しておくことが大切です。「便利だから入れる」という判断だけで積み重ねていくと、後から競合や保守の難しさにつながることがあります。

なお、EC-CUBEのプラグインは、Controller、Entity、EventListener、Doctrineのクエリ、Serviceなどを持てる構造です。つまり、プラグインは「軽い追加機能」でも「危険な介入」でもなく、拡張方式の一つです。だからこそ、責務や依存関係を意識して設計・選定しておくと、後々の保守がしやすくなります。

プラグインの導入・保守で確認したいポイント

プラグインを採用・運用する際に、確認しておきたいポイントを整理します。

1. 「数」ではなく、影響範囲で見る

「プラグインが多いと重くなる」と言われることがありますが、問題は数そのものではありません。同じ数でも、実装内容・依存関係・イベント処理・データベースアクセスの量によって、影響は大きく変わります。数を気にするより、それぞれのプラグインが何をしているかを把握することが大切です。

2. EC-CUBE・PHP・依存ライブラリの対応状況を確認する

導入前に、そのプラグインが、使用するEC-CUBEのバージョン、PHPのバージョン、依存ライブラリに対応しているかを確認します。対応状況が合っていないと、導入時や、後のアップデート時に問題が起きやすくなります。

3. 他プラグイン・独自カスタマイズとの責務の重複を確認する

複数のプラグインや独自カスタマイズが、同じ機能や同じデータに関与していると、競合が起きることがあります。導入前に、すでにある機能と、責務(役割)が重複しないかを確認します。特に、同じ処理を複数の箇所で書いていないかは、後の保守に影響します。

4. コア・プラグイン本体への直接変更を避ける

EC-CUBE本体(コア)や、オーナーズストア等から導入したプラグインを、管理方針を決めずに直接書き換えると、アップデート時に差分確認や再適用が必要になることがあります。拡張は、コアを直接変更するのではなく、イベントやDIなど、EC-CUBE4系で用意されている拡張方式を、要件に応じて利用します。データ項目の追加などでは、Entity拡張を利用できる場合もあります。独自に変更する場合は、変更内容をバージョン管理し、更新時の取り込み方針も決めておくことが大切です。

5. DB変更・イベント・画面差し込みなど、影響箇所を把握する

プラグインが、データベースに変更を加えるのか、どのイベントで動くのか、どの画面に差し込むのか。こうした影響箇所を把握しておくと、競合やトラブルの原因を切り分けやすくなります。特にデータベースの構造に変更を加えるプラグインは、影響が広くなりやすいため、注意が必要です。

6. 更新・無効化・アンインストール時の挙動を確認する

プラグインを更新・無効化・削除したときに、何が起きるかを確認します。たとえば、追加したデータがどうなるか、他の機能に影響しないか。導入時だけでなく、やめるときの挙動も確認しておきたい部分です。無効化・削除時に残るデータや依存関係も確認しておきましょう。

7. ステージング環境でアップデートを確認する

EC-CUBE本体やプラグインのアップデートは、いきなり本番環境で行うのではなく、まずステージング(検証)環境で試すことをおすすめします。プラグインの対応バージョンや依存関係によっては、アップデート時に確認や改修が必要になることがあります。本番反映前に、対象サイトの構成で動作を確認しておくことが大切です。

8. プラグインごとの採用理由・担当範囲・バージョンを管理する

どのプラグインを、なぜ入れたのか。どの機能を担っているのか。どのバージョンを使っているのか。これらを記録しておくと、担当者が変わったときや、トラブル時の調査がしやすくなります。採用理由・担当範囲・バージョンを記録しておくと、保守や引き継ぎ時に、現在の構成を確認しやすくなります。

9. BtoBでは、複数機能が同じ業務ルールに関与する場合、責務の境界を整理する

BtoBサイトでは、価格・会員・受注・決済など、複数の機能が同じ業務ルールに関わることがあります。たとえば、顧客別価格・数量割引・掛売管理が、それぞれ別のプラグインや独自実装で構成されていると、業務ロジックが分散し、改修時に影響範囲が追いにくくなることがあります。こうした場合は、どの機能が、どの業務ルールを担うのかという責務の境界を整理しておくことが大切です。BtoB固有の設計論点については、EC-CUBEでBtoBサイトを構築する際の注意点9選もあわせてご覧ください。

パフォーマンス・セキュリティの視点

プラグインは、コードを追加するものです。そのため、パフォーマンスとセキュリティの両面で、影響を確認しておきたい部分があります。

観点確認したい点
パフォーマンスイベント処理やデータベースクエリが増えていないか、キャッシュとの相性に問題がないか
セキュリティ入力値の検証、権限管理が適切か、既知の脆弱性やセキュリティ上の注意情報がないか、利用しているEC-CUBE・PHPのバージョンに対応しているか

これらは、プラグインを追加するたびに増える可能性がある部分です。プラグインの追加は「コードを増やすこと」でもあるため、必要性と影響を見極めて判断することが大切です。

プラグイン設計の考え方の背景

EC-CUBE4系は、Symfonyの仕組みを利用した拡張設計になっています。3系・4系ともSymfonyの仕組みを利用していますが、4系ではプラグインの拡張方式が見直され、ServiceProviderの廃止やSymfonyのDI機構の利用、フックポイントの扱いなどが変わっています。こうした仕組みを踏まえ、コアを直接書き換えずに、用意された拡張方式で機能を足していくことが、保守のしやすさに影響します。EC-CUBE4系のアーキテクチャについては、EC-CUBE4系のアーキテクチャを解説で整理しています。

プラグイン構成の整理や、保守の相談を承ります。

「プラグインが増えて、構成が分かりにくくなってきた」「アップデートで不具合が出ないか不安」「他社が作ったサイトを引き継いで保守したい」といったご相談に対応しています。現在の構成を確認したうえで、整理の方針をご提案します。

プラグイン・保守について相談する

よくある質問

プラグインは、何個までなら入れて大丈夫ですか?

「何個まで」という基準はありません。問題は数そのものではなく、それぞれのプラグインが何をしているか(実装内容・依存関係・イベント処理・データベースアクセスなど)です。同じ数でも、影響範囲によって負荷や競合のリスクは変わります。数を気にするより、各プラグインの役割と影響範囲を把握しておくことをおすすめします。

更新が止まっているプラグインは、使わない方がいいですか?

一概には言えません。更新が止まっていても、対応バージョンや依存関係が合っていれば、動作すること自体はあります。ただし、EC-CUBE本体やPHPをアップデートする際に、対応状況によっては、確認や改修が必要になる場合があります。導入前・継続利用時には、対応バージョンや依存関係、開発元の継続性を確認しておくと、後の対応がしやすくなります。

プラグインの競合は、どうすれば防げますか?

完全に防ぐ方法はありませんが、確認したいポイントはあります。複数のプラグインや独自カスタマイズが、同じ機能・同じデータに関与していないか(責務の重複)を確認すること、EC-CUBE本体や既成プラグインを変更する場合は変更内容を管理しアップデート時の取り込み方針を決めておくこと、アップデートをステージング環境で検証することなどです。複数のプラグインや独自カスタマイズが同じ処理・同じデータに関与する場合は、責務の境界や処理順序を確認しておくことが重要です。

他社が作ったEC-CUBEサイトの、プラグイン構成を整理してもらえますか?

対応しています。既存サイトのプラグイン構成を確認し、何がどの機能を担っているか、責務の重複や、更新時に確認が必要な箇所を整理します。引き継ぎの保守案件では、まず現状の構成を把握することから始めます。構成が分かりにくくなっている場合や、アップデートに不安がある場合は、ご相談ください。

まとめ

EC-CUBEのプラグインは、機能を拡張できる便利な仕組みですが、選び方や組み合わせによって、競合やアップデート時の不具合につながることがあります。大切なのは、プラグインを「数」で見るのではなく、それぞれの責務・依存関係・影響範囲で見ることです。

導入前には対応バージョンや責務の重複を確認し、コアやプラグイン本体の直接変更には管理方針を決め、アップデートはステージング環境で検証する。そして、プラグイン構成を記録し、管理する。こうした情報を整理しておくことで、保守や引き継ぎ時に確認すべき範囲を把握しやすくなります。私たちサンクユーは、プラグイン構成の整理や、他社が構築したサイトの保守にも対応しています。構成に不安がある場合は、お気軽にご相談ください。

投稿者プロフィール

Nakamura
サンクユーのEC-CUBE担当。15年以上にわたりEC-CUBE開発に従事し、2系・3系・4系すべてに精通。難易度の高いカスタマイズや、他社構築サイトの改修・再設計も多数対応しています。

Javaでの業務システム開発を起点に、PHP・Perl・フロントエンド・CMSまで横断的に対応。基幹システム連携や業務フローを踏まえた設計を得意とし、複雑な要件にも柔軟に対応可能です。

ChatGPT CODEXを活用し、開発スピードと品質の両立を実現しています。

お気軽にご相談ください

お気軽にご相談ください

タイトルとURLをコピーしました