---
title: "顧客ドメインモデル"
slug: "the-customer-domain-model"
abstract: ""
---
# 顧客ドメインモデル

![03000015.png](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/100/sitecore-experience-commerce/images/03000015.png)

## クラス:CommerceUser

CommerceUserクラスはユーザーアカウントを表現する責任を負います。ユーザーは、ウェブショップ(ウェブサイト)の訪問者に似ており、ログインアカウントを作成して(再)認証を受けられるようにしています。

CommerceUserエンティティは外部コマースシステム固有のカスタム情報を含めるように拡張可能ですが、ユーザーが認証目的のみでSitecoreに保存されている場合はデフォルトの実装が機能します。

以下の主張はユーザーに関するものです:

-   ユーザーはウェブサイトにログインできる人を表します。例えば、システム内にそのユーザーのアカウントが存在することを意味します。
-   ユーザーアカウントを登録せずにチェックアウトを通過する訪問者。例えば、匿名チェックアウトは顧客として作成されますが、ユーザーアカウントは持っていません。
-   顧客とユーザーの関係:
    -   ユーザーは複数の異なる顧客を代理として代理として表現することができます。
    -   顧客、例えば会社は、複数のユーザーを代表して会社を代表することができます。例えば、異なる部署の従業員などです。
    -   前述の2つの主張に基づくと、両者の間に多対多の関係があることを意味します。
-   複数のユーザーが同じ顧客のために同じショッピングカートを管理することも、個別のショッピングカートを持つことも可能です。

使用シナリオ:

-   サイト上で新しいアカウントが明示的に作成された場合。
    
-   既存のユーザーアカウントがチェックアウト時に使用されている場合。
    
-   リピーターユーザーが顧客特有の商品価格や割引を得るために認証を行ったとき、
    
-   ユーザーや顧客のプロフィールがユーザーによって編集されたとき。
    
-   店主が新規ユーザーにウェルカムメールを送るとき。
    
-   ショップのオーナーがしばらく戻っていない新規ユーザー(B2C)をフォローアップしたい場合。
    
    名称
    
    種類
    
    概要
    
    ExternalID
    
    ストリング
    
    コマースシステム内のユーザーの一意識別子。これにより、コマースシステムのネイティブAPIを使ってユーザーへの参照を得ることができます。  
      
    外部システムでアカウントが作成されるまでは空のままです。
    
    ID
    
    ストリング
    
    ユニークID。
    
    メール
    
    ストリング
    
    ユーザーのメールアドレス。
    
    ファーストネーム
    
    ストリング
    
    姓
    
    ストリング
    
    商店
    
    一覧
    
    ユーザーがアクセスできるショップのリストです。
    
    障害者
    
    ブール
    
    ユーザーアカウントが無効になっているかどうかを示します。
    
    コメント
    
    ストリング
    
    フリーテキストコメント。
    
    創設日
    
    デートタイム
    
    アカウントが追加された日時を取得します。
    
    ラストアクティビティデート
    
    デートタイム
    
    ユーザーが最後に認証されたかショップにアクセスした日時を取得または設定します。
    
    LastLoginDate
    
    デートタイム
    
    ユーザーが最後に認証された日時を取得または設定します。
    
    ラストアブルデート
    
    デートタイム
    
    ユーザーアカウントが無効化された最新の日付と時刻を取得します。
    
    LastPasswordChangedDate
    
    デートタイム
    
    ユーザーのパスワードが最後に更新された日時を取得します。
    
    顧客
    
    一覧
    
    ユーザーが関連付けられている顧客の顧客IDのリスト
    

## クラス:商取引顧客

顧客の概念は統合コマースシステムとeショップソリューションによって決まります。B2Cソリューションでは、顧客は通常個人を表しますが、B2Bのシナリオでは顧客は通常企業を表します。

CommerceCustomerエンティティは常に外部商取引システム固有のカスタム情報を含むように拡張されます。

以下の主張は顧客に関するものです:

-   顧客はB2Cショップでは個人を、B2Bショップでは企業を代表します。
-   顧客アカウントはウェブショップにログインすることはできません。ログインするにはユーザーアカウントが必要です。カスタマーアカウントはユーザーアカウントとは異なり、両者は異なる情報を含みます。
-   すべてのコマースシステムがユーザーと顧客の両方の概念をサポートしているわけではありません。例えば、SESはユーザーのみですが、InSite Commerceは顧客とユーザーの両方を持っています。
    -   外部システムが顧客をサポートしていない場合、情報はユーザープロファイルにまとめて保存されることがありますが、通常は関係は利用できません。
-   B2Cのシナリオでは、顧客とユーザーは通常同じ存在です。
-   B2Bのシナリオでは、顧客は通常、以下のような1対多数のユーザーを関連付けます:
    -   通常、顧客はユーザーがシステム上で行った注文の請求書を支払う側です。
    -   ユーザーは顧客に代わってショッピングカートを管理し、レジの手続きを経て注文を行います。
    -   顧客は複数のショッピングカートを関連付けることができ、それぞれを一人または複数の異なるユーザーが管理することができます

使用シナリオ:

-   匿名チェックアウト時に暗記的に新規顧客アカウントが作成された場合。
    
-   店主が顧客プロフィールを編集したとき。
    
-   お客様が注文をして、注文確認メールを受け取ったとき、
    
-   ショップのオーナーがB2Bソリューションの新規顧客にウェルカムメールを送るとき。
    
-   ショップのオーナーがキャンペーンを企画したり、B2Bソリューションの特別オファーを宣伝したい場合。
    
-   店主がしばらく注文していない新規顧客のフォローアップをしたい場合。
    
    名称
    
    種類
    
    概要
    
    ExternalID
    
    ストリング
    
    コマースシステム内のユーザーの一意識別子。これにより、コマースシステムのネイティブAPIを使ってユーザーへの参照を得ることができます。  
      
    ASP.NETを使用する場合、ExternalUserIDはUserNameと等しくなります。  
      
    外部システムでアカウントが作成されるまでは空のままです。
    
    名称
    
    ストリング
    
    お客さんの名前。
    
    ID
    
    ストリング
    
    ユニークID。
    
    IsDisabled
    
    ブール
    
    顧客アカウントが無効化されているかどうかを示します。
    
    商店
    
    一覧
    
    顧客がアクセスできる店舗のリスト。
    
    カスタマーパーティ
    
    一覧
    
    連絡先情報と住所情報を含む当事者リスト。
    
    CommerceUsers
    
    一覧
    
    顧客が関連付けられているユーザーのユーザーIDのリスト。
    

## クラス:カスタマーパーティ

CustomerPartyクラスは、顧客と当事者リストとの間のタイプおよびゼロから多への関係を表すために使われます。

名称

種類

概要

ExternalID

ストリング

党の一意識別子。

パーティアイド

ストリング

パーティーのID。将来のSitecore使用のために予約されています。

名称

ストリング

関係を表す任意の文字列です。

種類

顧客パーティータイプ

関係のタイプを表しています。

## クラス:CustomerPartyTypes

CustomerPartyTypesクラスは顧客と当事者の関係の種類を示すために使われます。

このクラスは拡張可能な列挙として導入されます。 CustomerPartyTypesオプションを拡張・カスタマイズするために:

public class MyECSCustomerPartyTypes : CustomerPartyTypes
{
    public const int MyCustomPartyType = 3;
      public MyECSCustomerPartyTypes(int value)  : base(value)
      {   }
}

名称

種類

概要

バイヤーパーティ

パブリックコンスタント int BuyerParty = 1

BuyerPartyは買い手を代表し、通常は商品が発送される当事者として使われます。

会計党

public const int AccountingParty = 2

AccountingPartyは買い手を代表し、通常は請求書が送付される当事者として使われます。

## クラス:パーティー

CustomerPartyエンティティはアドレスの連絡先情報を表し、CustomerPartyオブジェクトのリストはCustomerクラスに含まれています

CustomerPartyオブジェクトは顧客層と注文サービス層の両方で使用されています。

名称

種類

概要

ExternalID

ストリング

政党の一意識別子

パーティーID

ストリング

パーティーのID

ファーストネーム

ストリング

名前

姓

ストリング

姓

メール

ストリング

メールアドレス

会社

ストリング

会社名

住所1

ストリング

通り名

住所2

ストリング

地域、地区、郡などです。

郵便番号

ストリング

郵便番号/郵便番号

都市

ストリング

都市名

州

ストリング

州

国

ストリング

国名

電話番号

ストリング

電話番号