---
title: "コマースエンジンの拡張"
slug: "extending-the-commerce-engine"
abstract: "Commerce Engineの拡張方法に関するベストプラクティスや高レベルのワークフローに関するガイダンス、"
---
# コマースエンジンの拡張

Commerce Engineはプラグインフレームワークを用いてコマースの機能と機能を実装・提供し、コマース機能の広範なカスタマイズを可能にします。プラグインモデルは、アップグレード可能性、拡張性を促進し、個々の拡張機能間の懸念を明確に分離するコンポジションプログラミングの原則に基づいて構築されています。

プラグインは、ECソリューションのニーズに合わせてCommerce Engineの機能をカスタマイズする主な手段です。デフォルトのCommerce Engineプラグインを改変することはありません。代わりに、自分でカスタムCommerceプラグインを作成し、以下のようになります:

-   既存の機能の拡張や変更
-   新機能の追加
-   不要な機能を削除する

> !注Sitecore XCのブラウザ、オペレーティングシステム、.NETフレームワーク、データベースサーバーとの互換性に関する情報は、[Sitecore互換性表](https://kb.sitecore.net/articles/087164)をご覧ください。

## カスタムプラグイン作成のベストプラクティス

以下はカスタムCommerce Engine機能開発時に考慮すべき推奨事項とガイドラインです。

-   一般的に、デフォルトのプラグインが貢献するベースクラスからの継承は避けるべきです。代わりにコンポジションプログラミングのアプローチを使いましょう。
-   カスタムのeコマース機能や動作を実装するためのプラグインを自分で作成しましょう。デフォルトのCommerce Engineプラグインのソースコードを変更してはいけません。デフォルトのSitecore XCプラグインのソースコードを変更すると、Sitecore XCの新しいバージョンへのアップグレードに影響が出たり、Commerceソリューションが不安定になったり不具合を起こす可能性があります。
-   コマースエンティティは同じタイプの複数のコンポーネントを持つことはできません。既存のコマースエンティティにカスタムコンポーネントを提供するプラグインを作成する際は、同じコンポーネントがそのコマースエンティティに既に存在していないか確認してください。例えば、 Carts.cs エンティティ(デフォルト Sitecore.Commerce.Plugin.Cartsの一部)には CartLineComponentが含まれています。したがって、カスタムプラグインには型のコンポーネントを含めるべきではありません CartLineComponent.

## プラグインの取得

公式リリースおよび対応版のCommerce Engineプラグインは、[公式Sitecore Commerceの公開NuGetフィード](https://nuget.sitecore.com/resources/v3/index.json)から入手できます。これにより、メジャーリリースのオーバーヘッドなしで新しいバージョンのCommerceプラグインを公開できます。

Sitecoreパートナーはカスタム開発の一環としてプラグインも提供できます。

## Commerce Engine拡張のワークフロー

Commerce Engineは[Commerce Engine SDK Sitecore](https://doc.sitecore.com/xp/ja/developers/101/sitecore-experience-commerce/sitecore-commerce-engine-sdk.html "Sitecore Commerce Engine SDK")を用いて拡張します。 Customer.Sample.Solutionが含まれています。 Customer.Sample.SolutionはVisual Studioで開くことができます。SDKにはCommerce Engineプロジェクト自体と、ソリューションの典型的な拡張を示すサンプルプラグインが含まれています。

大まかに言えば、Sitecore XC解を拡張すると、次のようになります:

1.  Customer.Sample.Solutionを開けろ。
2.  あなたのニーズにより適した名称に変えてください。
3.  最初の解が動作するように解を再構築します。
4.  PostmanのサンプルやサンプルConsoleアプリを使って解答を行ってください。
5.  ソリューション内で追加のプラグインを別プロジェクトとして作成し、懸念の強い分離を用いましょう。
6.  ユニットテストと機能テストを組み合わせてプラグインをテストしてください。
7.  ソリューションが要件を満たしたら、新しいデプロイメントを作成します。
8.  新しい展開Send QAやDevOpsのプロセスを経て本番環境にデプロイします。