1. Commerce Engine開発のベスト プラクティス

新しいCommerceプラグイン プロジェクトを作成するためのベスト プラクティス

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

プラグインは、Commerce Engineの機能をカスタマイズしてeコマース ソリューションのニーズを満たす主な方法です。Commerce Engineプラグインには、機能の一部を構成するすべての必要なクラスが含まれています。このセクションでは、カスタム機能を実装するための新しいCommerceプラグイン プロジェクトを作成するのに役立つベスト プラクティスとヒントを提供します。

新しい機能領域ごとにソリューションに新しいプラグインを作成します

カスタム機能を実装する場合は、新しい機能領域ごとに、または特定の要件を満たすために変更する必要がある標準機能ごとに、ソリューションに新しいプラグインを作成する必要があります。たとえば、既存のパイプラインを変更したり、パイプライン ブロックを置き換えてsitecore.commmerce.plugin.catalogプラグインが提供するデフォルトのビジネス ロジックを変更したりする場合は、対応する機能領域に対して独自のプラグインを作成します。コマースソリューションは通常、カスタマイズを含む独自のプラグインを定義します。カスタム プラグインプロジェクトに 名前を付けて、拡張する機能の領域を反映するようにします。

同じ機能領域のアーティファクトのみをプラグインプロジェクトに追加する

カスタム機能を実装するために新しいプラグインを作成する場合は、異なる機能領域に属する要素をプラグインに含めないでください。

たとえば、カスタム プラグイン プロジェクトが既存のカタログ機能を拡張する場合は、そのプラグインのプロモーションの操作を処理するパイプライン ブロックを含めないでください。代わりに、プロモーション操作に必要な変更を含む別のカスタムプロモーションプラグインプロジェクトを作成します。

プラグインプロジェクトの名前と構造

新しい各Commerce Engineプラグインは、Visual Studioでプロジェクトとして定義されます。このセクションでは、カスタムプラグインプロジェクトの命名と構造化に関するベストプラクティスとガイドラインを提供します。

プラグインプロジェクトの命名規則

新しいCommerce Engineプラグイン プロジェクトに名前を付ける際には、次の規則とパターンを考慮してください。

新しい機能を実装するプラグインの命名

次の規則を使用して、新機能を実装するカスタムプラグインプロジェクトに名前を付けます。

<CompanyName>.Commerce.Plugin.<FunctionalArea>

どこ:

  • <CompanyName> は、会社の名前 (または、クライアント向けのサイトを構築している場合はクライアント) です。たとえば、HabitatCompanyのようになります。

  • Commerce.Pluginプロジェクトのタイプを示します。

  • <FunctionalArea> は、機能または特徴の新しい領域です。たとえば、ProductComparisonのようになります。

たとえば、新しい製品比較機能を実装するカスタムプラグインの名前は : HabitatCompany.Commerce.Plugin.ProductComparisonです。

基本機能を拡張するプラグインの命名

ベースプラグインがデフォルトで提供する機能を拡張するカスタムプラグインを作成する場合は、拡張するベースプラグインの名前をプロジェクト名の一部として含めます。次のパターンを使用して、カスタムプラグインに名前を付けます。

<CompanyName>.Commerce.Plugin.<CommerceDefaultPluginName>

どこ:

  • <CompanyName> は、サイトを構築している会社 (またはクライアント) の名前です。たとえば、HabitatCompanyのようになります。

  • Commerce.Pluginプロジェクトのタイプを示します。

  • <CommerceDefaultPluginName> は、拡張するデフォルトのプラグインの名前を反映しています。

たとえば、ベースCommerce.Plugin.Catalogプラグインによって提供される機能を拡張するカスタム プラグインの名前は、HabitatCompany.Commerce.Plugin.Catalogです。

プロジェクト名を避けるのが長くなりすぎる

プロジェクト名が長くなりすぎて、プラグインプロジェクト名の推奨ガイドラインに厳密に従うと、管理しなくなる可能性があります。

ソリューション名にすでに <CompanyName> (またはクライアント名) が含まれている場合は、プラグイン名から <CompanyName> セグメントとcommerce.pluginセグメントを削除して、プラグイン プロジェクト名を短縮できます。

メモ

基になるアセンブリと既定の名前空間には、プラグイン名から削除された2つのセグメントを引き続き含めることをお勧めします。

たとえば、HabitatCompany.Commerce.Plugin.ProductComparisonという名前のプロジェクトを短縮するには、名前をPlugin.ProductComparisonに変更できます。ただし、プロジェクトがビルドするアセンブリは、名前付け規則に従い、完全な名前 ( HabitatCompany.Commerce.Plugin.ProductComparison.dllなど) を持ちます。デフォルトの名前空間はHabitatCompany.Commerce.Plugin.ProductComparisonのままです。

プロジェクトの構造と名前空間

カスタム・プラグイン・プロジェクトを構造化してプラグイン成果物およびクラスを編成する場合は、以下のガイドラインおよびベスト・プラクティスを考慮してください。

  • 各タイプのプラグイン成果物を格納する個別のフォルダーを作成し、フォルダー名が成果物の種類の複数形になるようにします。たとえば、カスタムプラグインプロジェクトが新しいコマンドクラスとコントローラークラスを実装する場合は、それぞれCommandsControllersという名前のフォルダーを作成します。

  • パイプライン ブロックまたは引数を表すクラスを、BlocksサブフォルダーとArgumentsサブフォルダーにそれぞれ追加します。

  • パイプラインまたはパイプライン インターフェイスを表すクラスをPipelinesフォルダーに直接追加します。

Sitecore.Commerce.Engine.SDKの一部として含まれているVisual Studioプロジェクト テンプレートは、プラグイン プロジェクトに必要な構造の良い例であり、適切なフォルダー名とサブフォルダー名が含まれています。

Example of the folder structure that a plugin project template creates in Visual Studio.

プラグインプロジェクトの参照

プロジェクト内の他のコンポーネントへの参照または依存関係を追加する場合は、次の点を考慮してください。

  • 公式のSitecore NuGetフィードを介してSitecoreプラグインへのすべての参照を追加します。

  • 可能な場合は、NuGetを使用してサードパーティのアセンブリへのすべての参照を追加します。

  • 独自のソリューション内のカスタム プラグイン プロジェクトへのすべての参照を、Visual Studioのプロジェクトの依存関係として定義します。

Commerce Engineへの新しいプラグインの追加

カスタム プラグインを作成するときは、新しいプラグイン アセンブリをCommerce Engine実行可能ファイルに登録して、新しい機能を使用できるようにする必要があります。以下は、Commerce Engineプロジェクトの実行可能ファイルにカスタムプラグインを追加するためのベストプラクティスです。

  • プロジェクト参照を使用して、sitecore.commerce.engineプロジェクトと同じソリューション内に新しいプラグイン プロジェクトを追加します。

  • より複雑なビルド シナリオでは、NuGetを使用してCommerce Engineプロジェクトに新しいプラグイン参照を追加できます。

この記事を改善するための提案がある場合は、 お知らせください!