Commerce Engineプラグインの要素
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Commerce Coreインフラストラクチャは、Commerceプラグインを構成するさまざまなコア クラスを定義します。
このトピックでは、Commerceマイクロサービス プラグインが一般的に貢献する主要なオブジェクト クラスの一部を紹介します ( Commerce Coreの概要 トピックでは、Commerceのコア オブジェクトと概念のより包括的な一覧を提供します)。
Commerce.Engine.SDKの一部としてパッケージ化されたVisual Studio拡張機能をインストールすると、Sitecore.Commerce.Plugin.Sampleプロジェクト テンプレートは、これらの一般的なクラスのほとんどにサンプルを提供します。
エンティティ
エンティティ
コマースプラグインはエンティティを提供できます。コマース エンティティは、コアCommerceEntityクラスに基づいており、電子商取引に固有の主要なビジネス概念を直接表すように設計されています。たとえば、Sitecore.Commerce.Plugin.OrdersプラグインはOrdersエンティティとSalesActivityエンティティを提供し、Sitecore.Commerce.Plugin.Cartsプラグインはcartsエンティティを提供します。
エンティティークラスは、永続ストレージに1つのユニットとして格納されます。カスタム定義エンティティを格納するためにデータベーススキーマを管理する必要はありません。
コマースエンティティには、Service APIを使用して取得するために使用する一意の識別子があります。
コンポーネント
コンポーネント
Commerce Coreは、構成の拡張性を可能にする基本構造であるコンポーネント クラスを定義します。コマースプラグインは、コマースエンティティを拡張する方法としてコンポーネントを提供できます。たとえば、可用性プラグインSitecore.Commerce.Plugin.Availabilityは、Sitecore.Commerce.Plugin.Catalogの一部であるSellableItemエンティティを拡張するitemAvailabilityComponentを提供します。通常、コンポーネントをエンティティに関連付けるには、パイプラインにフックします。
次に、itemAvailabilityComponentの例を示します。
モデル
モデル
コマースプラグインは、エンティティやコンポーネント内で再利用可能なPOCO クラスであるモデルを提供できます。モデルを使用して、コマンド応答またはAPI要求応答の一部として返されるデータを作成および表示できます。
次に、CreateOrderモデル クラスの例を示します。
コント ローラー
コント ローラー
コントローラーは、プラグインのコマンドとして実装されたコマース機能を公開します。たとえば、カスタムコマンドを定義し、このコマンドをREST APIを介して公開する場合は、カスタムコントローラーアクションを定義する必要があります。コントローラー クラスはODATAに準拠しており 、標準のASP.NET Coreモデル ビュー コントローラー (MVC) パターンに基づいています。
コマンド
コマンド
プラグインは、Sitecore XCの外部向けAPIのように動作するコマンドを定義します。コマンド クラスは、アクションを実行したり、呼び出されたときにイベントをトリガーしたりするために必要なすべての情報を定義し、カプセル化します。
コマンドは、Commerce Engine内で内部的にアクションをトリガーして、他のパイプラインを実行したり、他のアクションを実行したりすることもできます。たとえば、コントローラーを使用してSellable商品を取得する呼び出しでは、GetSellableItemCommandが呼び出され、GetSellableItemパイプラインが実行されます。
パイプライン
パイプライン
Commerce Coreは、拡張性をサポートするパイプライン フレームワークを定義します。Commerceプラグインでは、パイプラインはビジネス ロジックのコンテナーとして機能します。パイプライン クラス自体は通常軽量であり、主にパイプライン自体の定義を表します。たとえば、Ordersプラグインで定義されているICreateOrderPipelineクラスを次に示します。
コマースパイプラインはブロックで構成されています。パイプラインブロックは、動作、アクション、およびビジネスロジックの実装を担当します。
コードを使用して 、Commerce Engineのパイプラインとブロックを作業および拡張 し、特定のコマース ソリューションの要件を満たします。
次に、注文時に割り当てられる一意のIDを生成する役割を担うCommerceパイプライン ブロックOrderPlacedAssignConfirmationIdBlockの例を示します。
サイトコアの設定
サイトコアの設定
configure.sitecoreクラスは、プラグインが定義するすべてのパイプラインからのブロック定義を一覧表示、調整、および登録する役割を担います。パイプライン設定によって、各パイプラインブロックを実行する順序が決まります。パイプラインは、起動時にconfigure.sitecoreクラス内の情報を使用して、実行するブロックを認識します。既存のパイプラインに新しいカスタムブロックを追加する場合、または新しいパイプラインを作成する場合は、カスタムパイプラインとブロックをconfigure.sitecoreクラスに挿入して、必要な順序で処理されるようにする必要があります。
以下は、サンプルのBraintree支払プロバイダー プラグイン (Commerce Engine SDKの一部として含まれています) で提供されるconfigure.sitecoreクラスの例です。
檄
檄
Commerce Engineポリシーは、Commerce Engine内の機能またはCommerceマイクロサービスの動作または機能に影響を与える設定のグループです。コマース ポリシーは通常、ビジネス ニーズによって推進され、多くの場合、ストアフロントの動作に影響を与えます。ポリシーは大量にキャッシュされ、デプロイ シナリオの外部で値が変更されることはほとんどありません。ポリシー設定は、.JSON構成ファイルを使用して構成します。 ブートストラップ プロセスでは、構成が一元化されたポリシー ストアに初期化されます。
次に、ポリシー定義クラス (CartCouponsPolicyの例を示します。
手先
手先
コマースプラグインは ミニオンに貢献できます。コマース ミニオンはワーカー プロセスであり、プロセス内の特定のタスクを実行するための基本的な作業単位として実装されます。