---
title: "カスタマイズ可能なドメインモデル"
slug: "a-customizable-domain-model"
abstract: ""
---
# カスタマイズ可能なドメインモデル

各サービスレイヤーにはドメインモデルを反映したエンティティクラスのセットが含まれています。ドメインモデルオブジェクトはAPIを扱う際に使用されます。APIはオブジェクトを入力パラメータの一部として受け入れ、オブジェクトを返します。

ドメインモデルは最小限に抑えられています。なぜなら、ベンダーごとにある程度異なる情報が保存されており、一つのモデルがすべての人に合うわけではないからです。それでも、ドメインモデルにはすべてのショップで使われる一般的なシナリオをカバーする十分な情報、ドメインオブジェクト、パラメータが含まれています。

ドメインモデルオブジェクトの一部は、異なるECSとの統合ごとにカスタマイズされることが期待されます。Commerce ConnectにはECSに対応する実装がないドメインオブジェクトが含まれている場合もあり、その場合は現状維持しても問題ありません。

製品同期では、ドメインモデルオブジェクトに加え、エンティティクラスに対応するアイテムドメインモデルも存在します。エンティティは設定セクションを変更することでカスタマイズ可能です。

ドメインモデルは以下のようにカスタマイズ可能です:

-   すべてのドメインモデルオブジェクトは、カスタムプロパティで継承および拡張が可能です。
-   すべてのネストされたオブジェクトは、カスタムプロパティで継承および拡張が可能です。
-   すべてのサービスメソッドは、カスタマイズされたドメインオブジェクトと使用しても、既存の定義された署名を保持します。

Commerce Connectと交換する情報を抽出・管理する抽象化ECS層を作成することを推奨します。このアプローチはコンピュータサイエンスで使われるBridge設計パターンに似ており、Commerce ConnectとECSの進化に伴い、統合管理を継続的に管理しやすくします。また、Commerce ConnectドメインモデルとECS抽象化層オブジェクトが対応し類似したオブジェクトシグネチャを持つ場合、情報交換が容易になります。

一部のサービス層はSitecoreにデータを保存し、ECSにもデータを渡します。Sitecoreにデータが永続化される場合、リポジトリパターンを使ってデータの読み込みと保存を管理します。これにより、データが永続化されている実際のリポジトリを簡単に置き換えられます。詳細は[サービス層API](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-commerce/service-layer-api.html "Service layer API")のセクションをご覧ください。