カート ドメイン モデル
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このセクションでは、カートとその構成データ転送オブジェクト (DTO) を表すドメイン モデルについて説明します。ドメイン モデルは、Sitecore開発者がカートを操作し、カート データをECSとの間で転送する必要がある場合に使用されます。カートのすべてのビジネス ロジックは、カートの操作に使用する必要があるサービス レイヤー APIに実装されます。
カート ドメイン モデルの使用例を次に示します。
-
訪問者から情報を収集するため。
-
レンダリングで情報を表示するため。
-
パーソナライゼーションのために情報を使用するため。
-
カート情報を外部のコマースシステムに渡すため。
-
価格設定サービスレイヤーからカートの合計を返します。
カートにはPriceとTotalへの強い参照があるため、これらはドメイン モデルに含まれますが、合計を計算して価格を取得する方法は、Pricing統合サービス レイヤーの一部です。
次のクラス図は、ドメイン モデルを示しています。このセクションでは、左側にCartというプレフィックスが付いたすべてのCartクラスについて説明しますが、右側のPriceクラス、Totalクラス、TaxTotalクラスは 「価格設定 」セクションで説明されており、価格設定APIによって操作されます。 Party、ShippingInfo 、PaymentInfoクラスは、それぞれCustomer、Shipping、Paymentの各サービスレイヤーの一部です。
ドメイン モデルは、外部システムとのコントラクトを構成するクラスで構成されます。コントラクトは、必要に応じてモデルを後で簡単に拡張できるように、インターフェイスではなくクラスとして定義されます。これは、フレームワーク設計ガイドラインの本で定義されているベスト プラクティス ガイドラインに従います。
コントラクトのデフォルト実装は、Connectの一部として提供されます。外部コマースシステムを持つ実際のConnectプロバイダーに、デフォルトで提供される機能よりも多くの機能が含まれている場合は、実装を置き換えることができます。実際のクラスのすべてのインスタンス化は、Factoryデザインパターンを使用して処理されます。
カートのキー
カートのキー
カートには、次の2つの一意の複合キーがあります。
-
CartId (別名。ExternalCartId)、ショップ名
LoadCart,などの一部の方法では、このキーを使用してカートを見つけます。
-
ユーザーID、カスタマーID、カート名、ショップ名
GetCartsやCreateCart, などの一部の方法では、このキーを使用します。
クラス:カートベース
クラス:カートベース
カート ベースは、メイン カート データの概要を表し、一致するカートが複数ある場合にGetCartsとCreateOrResumeCartからの戻り値として使用されます。
Cartクラスは、Cart Baseクラスを継承します。詳細については、「クラス: カート」を参照してください。
|
名前 |
種類 |
形容 |
|---|---|---|
|
名前 |
糸 |
カートに名前を付けるために使用できます。このプロパティはオプションで使用できますが、1人の訪問者/ユーザーが複数のカートを持つことができるソリューションで使用できます。カートを区別するために、文字列値を指定する必要があります。 |
|
ユーザーID |
糸 |
カートのユーザーの識別子は、次のとおりです。
|
|
カスタマーID |
糸 |
カートの顧客の識別子。 顧客はカートを直接操作することはできず、ユーザーを通じて間接的にのみ操作できます。 |
|
ショップ名 |
糸 |
カートが属するショップ名で、マルチショップのサポートを有効にするために使用されます。 実装では、Webサイトとショップの間に1対1のマッピングがある場合、Webサイト名に対応できます。 すべてのAPIメソッドは、ShopNameをパラメーターとして受け取ります。 |
|
ロックされている |
ブーリアン |
カートがロックされているかどうかを示します。 カートは通常、チェックアウトプロセスの一部、特に支払いの開始後にロックされます。 |
|
カートタイプ |
糸 |
カートのさまざまな使用法のタイプ値が含まれます。例:レギュラー、ギフトカード、ウィッシュリスト、定期カート。 デフォルトの実装では、Regular値のみが使用され、テストされます。 これは後で拡張し、実際のConnectプロバイダーの実装でカスタマイズできます。 |
|
カートステータス |
糸 |
状態コード: InProcessまたはAbandoned。これは後で拡張し、実際のConnectプロバイダーの実装でカスタマイズできます。 |
|
通貨コード |
糸 |
カート内のアイテムの通貨コードを表します。 |
クラス: カート
クラス: カート
Cartクラスは、顧客が購入を計画している製品のコレクションを表す役割を担います。これは、カートのコンテンツを表示する必要がある場合、またはSitecoreが他の目的(パーソナライゼーションなど)のためにカートのコンテンツを決定する必要がある場合に使用されます。
Cartクラスは、Cart Baseクラスから基本カート データを継承します。詳細については、「クラス: カート ベース」を参照してください。
|
名前 |
種類 |
形容 |
|---|---|---|
|
CartLines |
List<CartLine> |
カートの明細行が含まれます。 |
|
Adjustments |
List<Adjustment> |
個々のカート広告申込情報の合計と価格の合計との間の不一致を説明する調整のコレクション。 例としては、クーポンコード(手動でトリガーされる)や配送料(自動的にトリガーされる)があります |
|
CartTotal |
Total |
カート内の製品の合計値を表します。 |
クラス:カートライン
クラス:カートライン
Cart Lineクラスは、ショッピング カート内の行を表します。これは、訪問者がカートに追加したものと、カートに追加されたアイテムの数量を表します。また、カート内の他の行に対する線の位置も表します (線が表示されるときに線が表示される順序を制御するため)。
|
名前 |
種類 |
形容 |
|---|---|---|
|
ExternalCartLineId |
String |
コマースシステム内のカートラインの一意の識別子。 カートの行を追加するときは空になり、ECSで設定できます。 カートのラインを取り外して更新するときに指定できます。 |
|
Quantity |
Decimal |
カート内の特定のカート製品の数量。 |
|
Product |
CartProduct |
カートライン製品。Cart Productオブジェクトには、実際の製品への参照が含まれています |
|
LineNumber |
Int |
カート内のカート ラインの位置。 カートのラインを取り外して更新するときに指定できます。 カートの明細行を追加するときは空にすることができます。 |
|
Adjustments |
List<Adjustment> |
合計とカート アイテムの価格の不一致を説明する調整のコレクション。 調整の実際の内容は、ECSによって提供されます。 |
|
Total |
Total |
カート製品 (副明細) で表される製品の合計を表します。この値は、カート製品 (副品目) の合計に調整のリストを含む数量を掛けた値と同じです。 読み取り専用です。価格設定サービスレイヤー用に予約されており、カートの品目を追加、削除、または更新するときに指定しないでください。 |
|
SubLines |
List<CartLine> |
再帰的なサブライン。 たとえば、カート品目がバンドルされた製品の場合、サブラインはバンドルを構成する個々の製品です。 別の例としては、商品に追加される保険などのサービスがあります |
クラス:カート製品
クラス:カート製品
Cart Productクラスは、Cart Lineクラス オブジェクトから参照できる製品を表します。また、バンドルや保険などの場合にCart Productクラスオブジェクトのサブアイテムにすることもできます。
|
名前 |
種類 |
形容 |
|---|---|---|
|
ProductId |
String |
外部コマースシステム内の商品の一意の識別子。 |
|
SitecoreProductItemId |
ID |
Sitecoreで製品アイテムを直接参照するためのショートカット。 |
|
Options |
List<Option> |
訪問者が指定した製品オプション(engraving=Adamなど)を表します。 |
|
LineNumber |
Integer |
カート内のカート項目の位置を取得します。 |
|
Adjustments |
List<Adjustment> |
カート アイテムの製品の合計と価格の不一致を説明する調整のコレクション。 |
|
Price |
Price |
商品価格が含まれています。 カートの品目をカートに追加または更新するときに指定できますが、GetCartTotalの呼び出し中にPricingサービス レイヤーによって設定することもできます。 |
クラス:カート調整
クラス:カート調整
カート調整は、Cart、Cart Line 、またはCart Line Productクラスのインスタンスに対して与えられる料金または割引を表します。
次に例を示します。
-
クーポン コード (手動でトリガーされる) CartクラスまたはCart Lineクラスのインスタンス。
-
CartクラスまたはCart Lineクラスのインスタンスに対する配送料の追加料金(自動的にトリガーされます)。
調整は固定額またはパーセンテージにすることができますが、両方を同時に行うことはできません。金額とパーセンテージの両方を適用する場合は、2つの調整を行う必要があり、LineNumberプロパティはそれらが適用される順序を指定します。
|
|
お客様のアクション |
データフロー |
|---|---|---|
|
量 |
小数 |
小計に加算または小計から減算する必要がある金額。 一度に使用できるのは、AmountまたはPercentage (以下を参照)のみです |
|
形容 |
糸 |
適用された料金または割引の説明。説明には、クーポンコードへの参照を含めることができます。 |
|
イズチャージ |
ブーリアン |
Trueの場合は料金であることを示し、そうでない場合は割引です。 |
|
百分率 |
浮く |
加算または減算する必要があるパーセンテージ。一度に使用できるのはAmountまたはPercentageのみです |
|
ライン番号 |
整数 |
複数の調整が行われる場合、LineNumberは料金または割引が適用される順序を指定します。 調整に保存された情報は、カートへの実際の計算ではなく、計算順序の表示に使用されます。 |
クラス:カートオプション
クラス:カートオプション
Cart Optionクラスは、カート内の品目に固有の構成可能値または変数値を表します。オプションの例としては、パーソナライズされた製品への彫刻があります。カートに彫刻サービスを追加すると、彫刻するテキストも必要になります。Cart Optionクラスはこれを表します。
オプションに追加料金がかかる場合、オプションはCart Line Productクラスの別のインスタンスで表す必要があります。このオプションは、Cart Line Productクラスの特定のインスタンスの変数または設定を記述するためにのみ使用され、調整や価格の変更を処理するために使用されません。
|
名前 |
種類 |
形容 |
|---|---|---|
|
OptionId |
String |
オプションの内部IDで、通常はユーザーがカート ラインにオプションを追加したときにSitecoreによって提供されます。 |
|
Description |
String |
オプションの種類を参照するオプションの説明。たとえば、彫刻、Tシャツの名前などです。 |
|
Value |
String |
実際のカスタム値 |
