カートドメインモデル
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
この節では、カートリッジおよびその構成データ転送オブジェクト(DTO)を表すドメインモデルについて説明します。ドメインモデルは、Sitecore開発者がカートリッジとやり取りし、ECSとカートデータをやり取りする必要がある場合に使用されます。カートリッジのすべてのビジネスロジックはサービス層APIで実装されており、カートリッジを操作するために使用する必要があります。
カートドメインモデルの利用例をいくつか挙げます:
- 訪問者から情報収集。
- レンダリングに情報を表示するために。
- 情報をパーソナライズのために活用すること。
- カート情報を外部の商取引システムに渡すためです。
- プライシングサービス層からカート総額を返すために。
!注カートには価格と総額への強い参照があるためドメインモデルに含まれますが、合計計算や価格の取得方法は価格統合サービス層の一部です。
以下のクラス図はドメインモデルを示しています。左側のカートクラスはCartで始まるすべてのクラスがこのセクションで説明され、右側のPrice、Total 、TaxTotalクラスは 価格設定 セクションで説明され、価格設定APIによって操作されます。 Party、ShippingInfo 、PaymentInfoクラスはそれぞれ顧客、配送、決済サービス層の一部です。

!注ドメインモデルは外部システムとの契約を構成するクラスで構成されています。契約はインターフェースではなくクラスとして定義されており、必要に応じて後でモデルを容易に拡張できるようにしています。これは『Framework Design Guidelines』の書籍で定められたベストプラクティスガイドラインに従っています。
契約のデフォルト実装はConnectの一部として提供されます。外部商取引システムを持つ実際のConnectプロバイダーがデフォルト以上の機能を持っている場合、その実装を置き換えることができます。実際のクラスのインスタンス化はすべてFactory設計パターンで処理されます。
カートキー
カートリッジには2つの固有の複合キーがあります:
-
CartId(別名
)、ショップネームLoadCart``, このキーを使ってカートを探す方法もあります。
-
UserId、CustomerId、CartName、ShopName
GetCartsやCreateCart``,のような一部の手法ではこのキーが使われています。
クラス
カートベースはメインカートデータの要約を表し、複数のマッチカートの場合にGetCartsやCreateOrResumeCartの返還値として使用されます。
CartクラスはCart Baseクラスから継承します。詳細は「クラス:カート」を参照してください。
名称
種類
概要
名称
ストリング
カート名を付けるために使うことができます。このプロパティは任意ですが、単一の訪問者やユーザーが複数のカートを持つ解法で使うことができます。カートを区別するためには文字列の値が必要です。
ユーザーID
ストリング
カートのユーザーの識別子は以下の通りです:
- 連絡先IDまたは識別子はSitecoreによって提供されました。
- ユーザーIDはSitecoreから提供されました。
- ECSが提供するユーザーID。
カスタマーID
ストリング
カートの顧客の識別子。
顧客はカートを直接操作できず、ユーザーを通じて間接的に操作できます。
ショップネーム
ストリング
カートが置く場所のショップ名で、マルチショップ対応を可能にするために使われています。
実装上では、ウェブサイトとショップが一対一で対応している場合、ウェブサイト名に対応することもあります。
すべてのAPI手法は ShopName をパラメータとして取ります。
アイロックド
ブール
カートがロックされているかどうかを示します。
カートは通常、支払い開始後、チェックアウトの一部でロックされます。
カートタイプ
ストリング
カートの異なる用途の型値を含みます。例
、ギフトカード、ウィッシュリスト、リカリングカート。デフォルトの実装では、通常値のみが使用されテストされます。
後で拡張やカスタマイズが可能なのも、実際のConnectプロバイダー実装で可能です。
カートステータス
ストリング
ステータスコード
または Abandoned。後で拡張やカスタマイズは、実際の Connect プロバイダーの実装で可能です。通貨コード
ストリング
カート内の商品の通貨コードを表します。
クラス
Cartクラスは、顧客が購入を計画している商品の集合を表現する責任を負います。カートの内容を表示する必要がある場合や、Sitecoreがパーソナライズなど他の目的でカートの内容を決定する必要がある場合に使用されます。
CartクラスはCart Baseクラスからベースカートデータを受け継ぎます。詳細については、クラス:カートベースを参照してください。
名称
種類
概要
CartLines
List
カートラインを含んでいます。
Adjustments
List
個々のカート項目の合計値と合計価格の不一致を説明する調整のコレクション。
例としては、クーポンコード(手動でトリガー)や送料サーチャージ(自動でトリガー)があります
CartTotal
Total
カート内の商品の総価値を表します。
クラス
Cart Lineクラスはショッピングカート内のラインを表します。これは訪問者がカートに追加したものと、カートに加わった商品の数量を表します。また、カート内の他のラインに対するラインの位置(ラインが表示される順序を制御するため)を表します。
名称
種類
概要
ExternalCartLineId
String
商取引システムにおけるカートラインの一意識別子。
カートラインを追加すると空になり、ECSで設定できます。
カートラインの削除や更新時に指定できます。
Quantity
Decimal
カート内の特定の商品の量。
Product
CartProduct
カートライン商品。カート製品オブジェクトには実際の製品への参照が含まれています
LineNumber
Int
カートのラインの位置。
カートラインの削除や更新時に指定できます。
カートラインを追加するときに空になることがあります。
Adjustments
List
合計価格とカート価格の不一致を説明する調整のコレクション。
調整の実際の内容はECSによって提供されています。
Total
Total
カート製品(サブアイテム)が表す商品の合計値を表します。この値は、カート製品(サブアイテム)の合計に調整リストを含む数量を掛けたものと同じです。
読み取り専用。プライシングサービスレイヤー用に予約されており、カートラインの追加、削除、更新時に提供してはなりません。
SubLines
List
再帰的サブライン。
例えば、カート商品がバンドル商品の場合、サブラインはバンドルを構成する個別の商品となります。
もう一つの例は、商品に追加される保険のようなサービスです
クラス
Cart Productクラスは、Cart Lineクラスオブジェクトによって参照可能な製品を表します。また、バンドルや保険の場合、Cart Productクラスオブジェクトのサブアイテムにもなり得ます。
名称
種類
概要
ProductId
String
外部商取引システムにおける製品の一意識別子。
SitecoreProductItemId
ID
Sitecoreで商品を直接参照するためのショートカットです。
Options
List
訪問者が指定した製品オプション(例
=Adam)を表します。LineNumber
Integer
カート内のアイテムの位置を取得します。
Adjustments
List
カート商品の総額と価格の不一致を説明する調整のコレクション。
Price
Price
商品価格を含みます。
カートラインを追加または更新する際に提供できますが、GetCartTotalへの通話時にプライシングサービス層によって設定されることもあります。
クラス
カート調整とは、Cart、Cart Line 、またはCart Line Productクラスのインスタンスに対して支払われる料金や割引を指します。
例としては以下の通りです:
- CartクラスやCart Lineクラスのインスタンスで手動でトリガーされたクーポンコード。
- CartクラスやCart Lineクラスのインスタンスで自動的に発動する配送上座料金(Shipping surcharges)。
調整は固定額または割合で行うことができますが、同時に両方行うことはできません。もし金額と割合の両方が適用される場合は、2つの調整が必要であり、LineNumberプロパティはそれらの適用順を指定します。
顧客の行動
データフロー
金額
小数点
小計に加えたり引いたりする必要がある金額。
一度に使用できるのは Amount または Percentage (後述)のみです
概要
ストリング
適用される料金や割引の説明。説明にはクーポンコードへの言及が含まれることもあります。
IsCharge
ブール
「True」の場合はチャージであることを示し、そうでなければ割引となります。
割合
フロート
加算または引く必要がある割合。一度に使えるのは Amount か Percentage だけだ
ライン番号
整数
複数の調整が行われる場合、 LineNumber は手数料や割引の適用順を指定します。
調整に格納された情報は、実際の計算ではなく、計算順序の表示に使われます。
クラス
Cart Optionクラスはカート内のアイテムに特有の設定可能な変数値を表します。オプションの例としては、パーソナライズされた商品の彫刻があります。カートに彫刻サービスを追加すると、彫刻するテキストも必要です。Cart Optionクラスはこれを表します。
オプションに追加料金がある場合は、そのオプションはCart Line Productクラスの別のインスタンスで表現されなければなりません。オプションは、Cart Line Productクラスの特定のインスタンス上の変数や設定を説明するためにのみ使用され、調整や価格変更を扱うためのものではありません。
名称
種類
概要
OptionId
String
オプションの内部IDは、ユーザーがカートラインに追加した際に通常Sitecoreから提供されます。
Description
String
オプションの種類に関する説明はオプションです。例えば、彫刻やTシャツに名前など。
Value
String
実際のカスタム値は