カスタムCommerceパイプラインまたはブロックの登録

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

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

Microsoft Visual Studioでカスタムプラグインプロジェクトを作成する際、Sitecore.Commerce.Plugin.Sampleプロジェクトテンプレート( Sitecore.Commerce.Engine.SDK(sitecore-commerce-engine-sdk.md "Sitecore Commerce Engine SDK")の一部として提供)には必要なConfigureSitecoreクラスが含まれています。 ConfigureSitecoreクラスは通常、プラグインプロジェクトのルートに配置されます。

必要なビジネスロジックを実装するには、カスタムパイプラインとブロックをConfigureServicesメソッド( ConfigureSitecoreクラスの一部)に追加し、他のパイプラインブロックとの依存関係を定義します。 ConfigureSitecoreクラスでは、新しいパイプラインやカスタムブロックをCommerce Engineに登録し、ブロックの実行順序を設定できます。

他のCommerceパイプラインブロックへの依存関係を特定し定義するために、実行中のCommerce Engineインスタンスの 現在登録済みパイプラインのログを見る か、Postmanを使って 登録済みパイプラインを取得することができます。

カスタムプラグインが依存する既存のパイプラインとブロックを特定したら、.addpipelineメソッドを使って必要なパイプラインをConfigureServicesメソッドに追加します。各パイプラインは、提供されるパイプラインブロックに対して実行する関数を指定することで設定します。

パイプラインフレームワークは以下のメソッドと関数をサポートしています:

  • .configure.Replace - この方法を使って既存のパイプラインブロックを新しいブロックに置き換える。例えば:

    services.Sitecore().Pipelines(config => config              .ConfigurePipeline(                     configure =>                     {                         configure.Replace, ();                     })       );

  • .configure.Remove - 既存のパイプラインから不要な機能ブロックを除去するためにこのメソッドを使用する。例えば:

    services.Sitecore().Pipelines(config => config              .ConfigurePipeline(                     configure =>                     {                         configure.Remove();                     })       );

以下の例は、カスタムブロック(.Add)を挿入するように設定されたパイプラインを示しており、その定義されたアクションがIPersistOrderPipelineの実行前に行われるようにしています:

.ConfigurePipeline(configuration => configuration .Add().Before() )

以下の例では、パイプライン構成が実行後にカスタムブロック.Add挿入します。

.ConfigurePipeline(configuration => configuration .Add().After() .Add().After()

サンプルConfigureSitecoreクラス

以下は、Sitecore.Commerce.Plugin.SampleプロジェクトテンプレートがデフォルトでVisual Studioで作成するサンプルConfigureSitecoreクラスの例を示しています。

namespace Sitecore.Commerce.Plugin.Sample { using System.Reflection; using Microsoft.Extensions.DependencyInjection; using Sitecore.Commerce.Core; using Sitecore.Framework.Configuration; using Sitecore.Framework.Pipelines.Definitions.Extensions;

///

/// The configure sitecore class. /// public class ConfigureSitecore : IConfigureSitecore { /// /// The configure services. /// /// /// The services. /// public void ConfigureServices(IServiceCollection services) { var assembly = Assembly.GetExecutingAssembly(); services.RegisterAllPipelineBlocks(assembly);

services.Sitecore().Pipelines(config => config

.AddPipeline<ISamplePipeline, SamplePipeline>( configure => { configure.Add(); })

.ConfigurePipeline(configure => configure.Add()));

services.RegisterAllCommands(assembly); } } }

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