---
title: "カートパイプライン"
slug: "cart-pipelines"
abstract: ""
---
# カートパイプライン

カートAPIで使われる統合および関与ロジックは、必要に応じてカスタマイズ可能なパイプラインによって実装されています。API上には各メソッドごとにパイプラインがあります。一部のパイプラインはSaveCartパイプラインやLoadCartパイプラインなど他の共通パイプラインを呼び出します。場合によっては、CreateOrResumeCartパイプラインのような「もしそうでなければ」の状況に対応するために、ロジックが複数のサブパイプラインに分割されることもあります。

## GetCartsパイプライン

**名前:**

**GetCarts**

**説明:**

パイプラインはすべてのカートリッジに対して検索を行い、指定された検索条件に合致するカートリッジのCartBaseインスタンスのリストを返します。  
  
カートリッジはECSと/またはEAの両方の状態で永続化されている可能性があります。  
  
メインカートリッジの場所によって、パイプライン用に設定されているプロセッサは異なるConnectプロバイダーの実装によって異なります。

**使用方法:**

カートを探す際にConnect APIの GetCarts メソッドで呼び出されました。

**ARGS:**

\*\*Request -\*\* は検索条件を含みます:UserID、CustomerID、CartName、CartStatus、IsLocked、ShopName。パイプラインを呼び出す前に設定されます。

\*\*Response -\*\* はカートリッジオブジェクトを含みます。パイプライン実行後に読み取られます。

**プロセッサー:**

**GetCartsFromEAState –**  
  
**責任** - 入力パラメータ(UserID、CustomerID、CartName、ShopName)に一致するすべてのユーザーでEAステートに保存されたカートに対してクエリを実行すること。  
  
デフォルトの実装では、プロセッサは2つに分割されており、以下と名付けられています。  
  

-   BuildQuery。
-   ExecuteQuery。EAリポジトリへのクエリ

  
  
**用途:**プロセッサはEA状態での検索とカートリッジのリストの返送に汎用的です。 *外部コマースシステムが永続カートリッジをサポートしている場合、プロセッサはECSに対してクエリを行うカスタムのGetCartsプロセッサに置き換えるべきです(以下参照)。*  
  
**所有権**:プロセッサーはConnectで提供されています  
  
**カスタマイズ:**より多くの検索パラメータが必要な場合は、プロセッサを継承し、上書きして検索を用いる必要があります

**GetCarts –**  
  
**責任** - 外部コマースシステムに保存されている、入力パラメータ(UserID、CustomerID、CartName、ShopName)に一致するカートに対してクエリを実行すること。  
  
**用途:**ECSがカートリッジの永続性をサポートしている場合、このプロセッサはEA状態に対してクエリを行うデフォルトのConnectプロセッサを置き換えます。  
  
*サポートできない場合は、EA stateおよびGetCartsFromEAStateプロセッサを代わりに使用する必要があります**。*  
  
**所有権**:ECSベンダー  
  
**カスタマイズ:**プロセッサはECSに合わせてカスタムされています。より多くの検索パラメータが必要な場合は、プロセッサを拡張して対応させるべきです。

## CreateOrResumeCart pipeline

**名前:**

**CreateOrResumeCart**

**説明:**

ショッピングカートの作成を開始し、その過程で:  
  

-   残留されている、潜在的に放置されているカートリッジをロードし、それを返します。
-   新しいカートが作成されるとDMSでイベントが発生します。
-   新しいショッピングカートのIDでエンゲージメント自動化プランにユーザーを入力します。

  
  
パイプラインは既存のカートが見つかり、再開できるかどうかに応じて異なるパイプラインを呼び出します。

**使用方法:**

Connect APIの CreateOrResumeCart 方式で呼び出されました。

**ARGS:**

\*\*Request -\*\*既存のカートリッジ検索にも使われる重要なカートリッジパラメータを含む。パイプラインを呼び出す前に設定される。

\*\*レスポンス -\*\*カートオブジェクトまたは、指定されたパラメータに一致する複数のカートが存在する場合に備えたCartBaseインスタンスのリストを含む。パイプラインが呼び出された後、カートプロバイダーが読み取る。

**プロセッサー:**

**FindCartInEAState**–  
  
**責任:**現在の連絡先/訪問者のEA状態にあるカートを見つけ、入力パラメータUserID、CustomerID、CartName、ShopNameに一致します。  
  
一致が見つかれば、カートIDはカスタムパイプライン引数CartID(args.CustomData\["CartID"\])で設定されます。  
  
プロセッサは、 LoadCart メソッドを呼び出す前に、既存のカートリッジIDカートを取得する必要があります  
  
**用途**:プロセッサはEA状態で検索し、与えられた入力パラメータに一致するカートリッジのカートリッジIDを返すために汎用的です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**追加のクエリパラメータが導入されない限り、デフォルトの機能を即時に上書きする必要はありません

**RunLoadCart –**  
  
**責任:**LoadCart パイプラインを呼び出し、与えられた ID をカートに積み込むこと。IDは CartId パラメータで指定されています。  
  
カートが見つからなければ、パイプラインの引数でカートリッジはnullまたは空になります。  
  
**使用例**:必須。プロセッサはカートリッジをロードする LoadCart パイプラインをCartIDで呼び出す汎用であり、他のパイプラインでも使用可能です。  
  
カートの積み込みに使用されるCartIDは顧客パイプラインに保存されていると仮定されています:arg「CartID」(args.CustomData\["CartID"\])  
  
RunResumeCartパイプラインは、再開されるカートが実行前にロードされていることを前提としています。  
  
**所有権**:プロセッサーにはConnectが付属しています  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**RunResumeCart –**  
  
**責任:**可能であれば、積み込んだカートを再開するためにResumeCartパイプラインを呼び出すこと。  
  
パイプラインの引数にはカートが存在することが期待されます。  
  
カートリッジが存在しない場合、プロセッサは ResumeCart パイプラインを呼び出しません。  
  
**使用例**:必須。プロセッサは ResumeCart パイプラインを呼び出すための汎用です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**RunCreateCart –**  
  
**責任:**新しいカートリッジを作成するために CreateCart パイプラインを呼び出すこと。  
  
パイプラインの引数にカートが存在しないことが予想されます。  
  
カートリッジが存在する場合、プロセッサは CreateCart パイプラインを呼び出しません。  
  
**使用例**:必須。プロセッサは CreateCart パイプラインを呼び出すための汎用です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

## CreateCartパイプライン

**名前:**

**クリエイトカート**

**説明:**

新しいショッピングカートを作成して保存し、その過程で:  
  

-   DMSで新しいカートリッジのイベントが発生します。
-   訪問者/連絡先を新しいショッピングカートでエンゲージメント自動化プランに入力します。

**使用方法:**

カートが存在しないときに CreateOrResumeCart パイプラインからブランチの一つとして呼び出されます。

**ARGS:**

\*\*リクエスト -\*\* CreateOrResumeCart パイプラインと同じパラメータを含む。 CreateOrResumeCart パイプラインから引き継がれている。

\*\*レスポンス -\*\*カートオブジェクトを含みます。パイプラインが呼び出された後、カートプロバイダーが読み取ります。

**プロセッサー:**

**CreateCart –**  
  
**責任:**新しいカートを作成するには、引数から値を初期化して返します。  
  
もしカートがすでにパイプラインの引数に存在している場合は無視され、上書きされます。  
  
**使用方法**:任意。デフォルトのプロセッサはドメインモデルカートの作成と値を初期化するための汎用ですが、ECSを呼び出すことはありません。  
  
一部の統合シナリオでは、この時点でECSを呼び出して新しいカートリッジを作成することが重要になるでしょう。その場合、このプロセッサはベースクラスとして使用し、カートドメインオブジェクトを初期化するので拡張することも、あるいは完全に置き換えることも可能です。  
  
他の統合シナリオでは、この時点でECSは呼び出されません。代わりにカートラインを操作する際やカート保存時のみ呼び出される可能性が高いです。統合されるシステムによります。  
  
**所有権**:プロセッサーにはConnectが付属しています  
  
**カスタマイズ:**プロセッサをベースクラスとして使い、カートドメインモデルオブジェクトを初期化した後にECSを呼び出すことで拡張することが有用です。

**RunSaveCart –**  
  
**責任:**SaveCart パイプラインを呼び出し、指定されたカートリッジを保存すること。  
  
**使用方法**:任意ですが、カートリッジに変更が加えられた際には常に呼び出されるべきであり、こちらもその通りです。プロセッサは SaveCart パイプラインを呼び出す汎用であり、他のパイプラインでも使用できます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**TriggerPageEventForResultCart –**  
  
**責任:**指定されたページイベントをトリガーし、カートの値(ExternalCartId、UserId、CartName、CartStatus)を登録します。  
  
ページイベントのテキストは、Sitecore辞書で検索することでローカライズされます。  
  
**使用方法**:任意。プロセッサは、ARGSに保存されたカートリッジから指定されたパラメータでページイベントをトリガーするための汎用です。結果引数。  
  
トリガーされるイベントは PageEventName プロセッサパラメータで指定されます。  
  
使用されるイベントテキストは PageEventText プロセッサパラメータで指定されます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ**:カートリッジから他の値を登録したい場合はプロセッサを上書きします。

## ResumeCartパイプライン

**名前:**

**CreateOrResumeCart**

**説明:**

引数およびプロセスで指定されたカートリッジを検証し、再開します:  
  

-   放棄されたカートリッジの状態を初期の状態に変えます。エンゲージメント(再起動)。
-   カートの状態を更新する
-   カートを救う
-   DMSでイベントが発生します。

**使用方法:**

SitecoreからConnect APIで電話がかかってきた。

**ARGS:**

\*\*リクエスト -\*\*検索条件を含み、カートプロバイダーがパイプラインを呼び出す前に設定します。

\*\*レスポンス -\*\*カートオブジェクトを含み、パイプラインが呼び出された後にカートプロバイダーが読み取る。

**プロセッサー:**

**ChangeCartStatus –**  
  
**責任:**カートステータスフィールドを定数CartStatus.InProcessから取った*InProcess*値で更新すること。  
  
**使用方法**:任意。プロセッサは汎用ですが、カートリッジに設定されたステータス値は *InProcess*に固定されています。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**プロセッサをコード内の定数ではなくパラメータから状態値を取得するように更新することも可能です。

**RunSaveCart –**  
  
**責任:**SaveCartパイプラインを呼び出し、指定されたカートリッジを保存すること。  
  
**使用方法**:必須。プロセッサは SaveCart パイプラインを呼び出す汎用であり、他のパイプラインでも使用できます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**TriggerPageEventForResumedCart –**  
  
**責任:**カートリッジを再開時に指定されたページイベントをトリガーし、以下のカートリッジ値を登録すること:  
  

-   *ExternalCartId*、 *UserId*、 *CartName*、 *CartStatus*、 *StateName* (移動された前の状態を含む)。

  
  
ページイベントのテキストは、Sitecore辞書で調べることでローカライズできます。  
  
**使用方法**:任意。プロセッサはカートリッジの再開や、ARGSに保存されたカートリッジの指定されたパラメータでページイベントをトリガーするために特化しています。結果引数。  
  
前の状態の値は PreviousState パイプラインのARGsに記載され、ページイベントテキストに挿入されます。 ExternalCartId\`\`.  
  
使用するイベントテキストは PageEventText プロセッサパラメータで指定されています  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ**:プロセッサを上書きしてカートリッジの他の値を登録したり、テキストのフォーマットを変更したりします。

## ロードカートパイプライン

**名前:**

**ロードカート**

**説明:**

指定された条件に合致するカートを積み込みます。例えば、IDとShopNameです。  
  
このパイプラインは、コマースシステムが管理する特定のカートのデータを読み取る役割を担っています。このパイプラインは、コマースシステムやエンゲージメント自動化ステートからカートデータを読み取ります。

**使用方法:**

-   Sitecoreから直接Connect API LoadCart 方式で呼び出されます。
-   Connect API CreateOrResumeCart 方式で間接的に呼び出されます。

**ARGS:**

\*\*Request -\*\*どのカートリッジを取得すべきかを決定する基準を含みます;パイプラインを呼び出す前に設定されます。

\*\*レスポンス -\*\*パイプラインが呼び出された後にカートオブジェクトを含みます。

**プロセッサー:**

**LoadCartFromEAState –**  
  
**責任:**  
  
EAステートから既存のカートリッジをCartIDでロードし、 ShopName パラメータで指定されたショップに入ります。  
  
パフォーマンス上の理由から、デフォルトの実装は以下の通りです:  
  

-   まず、カートリッジは現在の訪問者/連絡先EAの状態データから読み込み、指定されたパラメータでフィルタリングされます。見つかればパイプラインの *Response* argプロパティに書き込み、実行は停止されます。
-   もし見つからなければ、すべての接点のカートが与えられたパラメータで読み込まれ、フィルタリングされます。すべての接点を横断して検索するのはコストのかかる作業です。
-   カートがEAステートに見つかれば、パイプラインの *Response* argプロパティに書き込まれます。

  
  
**用途**:プロセッサはEA状態からカートリッジを読み込むための汎用的なものです。  
  
ECSでカートリッジの永続性が利用できない場合や、カートリッジの取り扱いが単独でSitecore行われる場合、プロセッサは LoadCart パイプライン内で単独で使用されることがあります。  
  
ECSがカートリッジリポジトリを単独で管理している場合、パイプラインから除外される可能性もあります。  
  
一部のECSシステムはカートドメインモデルで指定されたすべての情報を提供せず、メインデータをECSから読み込み、追加のプロセッサを挿入してEA状態に格納したカートデータで補強するハイブリッド構成が使われることがあります。  
  
放棄されたカートリッジはECSから削除されるかもしれませんが、SitecoreではEA状態のまま残ります。この場合、両方のプロセッサをパイプラインに含めるのが理にかなっているかもしれません。Sitecoreはカートリッジのバックアップストレージとして機能します。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません

**ロードカート –**  
  
**責任:**  
  
既存のカートを、指定されたCartIDでECSから既存のカートをロードし、 ShopName パラメータで指定されたショップに入ります。  
  
**使用方法**:プロセッサはECSからカートリッジを読み込むために専用です。  
  
ECSでカートリクト永続性が利用可能な場合、プロセッサは LoadCart パイプライン内で単独で使用されることもあります。LoadCartFromEAStateプロセッサのシナリオも説明参照してください。  
  
一部のECSシステムはカートドメインモデルで指定されたすべての情報を提供せず、メインデータをECSから読み込み、追加のプロセッサを挿入してEA状態に格納したカートデータで補強するハイブリッド構成が使われることがあります。  
  
LoadCartFromEAStateと組み合わせて使用する場合、カートリッジがすでにEA状態から読み込まれている場合でも、ECSで確認し、カートリッジを読み込んで最新バージョンを使用していることを確認することが重要です。  
  
もしカートが外部のコマースシステムに存在すれば、パイプラインの *Response arg* プロパティに既に保存されているカートと上書きまたはマージすることができます。これはECSのConnectプロバイダーの実装次第です。  
  
**所有権**:プロセッサーはECSによって提供されます。  
  
**カスタマイズ**:ECS専用に構築されている必要があります。

## セーブカートパイプライン

**名前:**

**セーブカート**

**説明:**

カートは外部コマースシステムとEngagement Automation状態の両方に保存されます。

**使用方法:**

他のサービスレイヤーメソッドから呼び出されますが、明示的に呼び出すことはほとんどありません。

**ARGS:**

\*\*Request -\*\*どのカートリッジを取得すべきかを決定する基準を含みます;パイプラインを呼び出す前に設定されます。

\*\*レスポンス -\*\*パイプラインが呼び出された後にカートオブジェクトを含みます。

**プロセッサー:**

**セーブカート –**  
  
**責任:**  
  
与えられたカートリッジをECSに保存します。  
  
**使用方法**:プロセッサはカートリッジをECSに保存するために特化しています。  
  
プロセッサは SaveCart パイプラインで単独で使用すべきではありません。なぜなら、既存のカートリッジを再開する機能はEA状態に保存されているカートリッジに依存しているからです。FindCartInEAStateプロセッサはEA状態のカートリッジを検索し、ECSからロードカートをロードするためのカートリッジを取得します。  
  
一部のECSシステムはカートリッジドメインモデルで指定されたすべての情報を提供せず、メインデータはECSに保存され、追加のカートデータはEA状態に格納されるハイブリッド構成が用いられることがあります。  
  
一部のECS実装では、 SaveCart パイプラインがECSシステムにConnectからのカートが提供される唯一の場所です。  
  
ECSがカートリッジの主要なリポジトリであるため、固有のCartIDキーはECSによって提供されていると仮定されます。  
  
**所有権**:プロセッサーはECSによって提供されます。  
  
**カスタマイズ**:ECS専用に構築されている必要があります。

**SaveCartToEAState –**  
  
**責任:**  
  
カートリッジをEA状態に保存できます。  
  
**使用方法**:必須。プロセッサはカートリッジをEA状態に保存するための汎用的です。  
  
ECSでカートリッジの永続性が利用できない場合や、カートリッジの取り扱いが単独でSitecore行われる場合、プロセッサは LoadCart パイプライン内で単独で使用されることがあります。  
  
プロセッサは SaveCart パイプラインで使用すべきです。なぜなら、既存のカートリッジを再開する機能はEA状態に保存されているカートリッジにも依存するためです。FindCartInEAStateプロセッサはEA状態のカートリッジを調べ、 LoadCart パイプラインでカートリッジを読み込むためのCartIDをECSから取得します。  
  
一部のECSシステムはカートドメインモデルで指定されたすべての情報を提供せず、メインデータをECSから読み込み、追加のプロセッサを挿入してEA状態に格納したカートデータで補強するハイブリッド構成が使われることがあります。  
  
放棄されたカートリッジはECSから購入しても、SitecoreではEA状態のまま残ることもあります。この場合、両方のプロセッサをパイプラインに含めるのが理にかなっているかもしれません。Sitecoreはカートリッジのバックアップストレージとして機能します。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

## AddCartLinesパイプライン

**名前:**

**AddCartLines**

**説明:**

このパイプラインはショッピングカートに新しい行を追加し、対応するページイベントをDMSに記録する役割を担います。これは商品がカートに追加されたときに行われます。

**使用方法:**

Sitecoreから電話をかけてきました。

**ARGS:**

\*\*リクエスト -\*\*更新すべきカートと、カートに追加すべき行数が含まれています。  
  
パイプラインを呼び出す前に設定されます。

\*\*レスポンス -\*\*パイプライン呼び出し後に更新されたカートオブジェクトを含みます。

**プロセッサー:**

**CheckIfLocked** **–**  
  
**責任:**カートがロックされているかをチェックし、ロックされた場合はパイプラインを中止し、ロック状態を知らせるためにSystemMessageを返します。  
  
**使用方法**:任意。プロセッサはカートリッジがロックされているかどうかをチェックするための汎用的な機能です。プロセッサはカートリッジの内容を変更する可能性のあるすべてのパイプラインで使用されなければなりません。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**AddLinesToCart –**  
  
責任:指定された行を提供されたカートに追加します。  
  
このメソッドを呼び出すと、同じ商品を含む行がカートに既に存在しても、常に既存のラインコレクションに追加されます。あるいは、すでに商品のラインが存在し、単に数量を調整すればよい場合は UpdateLinesOnCart メソッドを呼び出すこともできます。  
  
**使用方法**:任意。プロセッサはカートへのライン追加には汎用ですが、ECS専用の実装に置き換えられる可能性があります。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの実装はSitecoreのカートドメインモデルのみで動作します。  
  
ほとんどのECS統合では、この実装を継承・上書きまたは置き換え、ECSを呼び出すことが重要で、カートへの変更が渡され、ビジネスロジックを適用できるようになります。

**RunSaveCart** -  
  
**責任:**指定されたカートリッジを保存する SaveCart パイプラインを呼び出します。  
  
**使用方法**:任意ですが、カートリッジに変更があった場合は必ず呼び出さなければなりません。ここでもその通りです。プロセッサは SaveCart パイプラインを呼び出す汎用であり、他のパイプラインでも使用できます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**TriggerPageEventsForCartLines**–  
  
**責任:**カートに行を追加する際に指定されたページイベントをトリガーし、以下の値を登録します:  
  

-   プロダクトID、数量、価格、通貨

  
  
トリガーされるイベントは、ページイベントテキストとともにパラメータとして渡されます。  
  
この場合のイベントは「Lines Added To Cart(カートに行数を追加)」です。ページイベントのテキストはSitecore辞書で検索することでローカライズされます。  
  
**使用方法**:任意。プロセッサはカートリッジラインを修正する際にページイベントをトリガーするための汎用です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ**:プロセッサを上書きしてカートリッジの他の値を登録したり、テキストの書式を変更したりします。

**TriggerAddToCartStockStatusPageEvent** **–**  
  
**責任**:ページイベント「AddToCartStockStatus」をトリガーし、ShopName、カートID、商品ID、在庫状況、予約注文可能、在庫入荷日、出荷日を発生させます。ただし、在庫状況が「InStock」でない場合に限ります  
  
**使用方法**:必須。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**不要。

**UpdateVisitorInAutomationPlan –**  
  
**責任:** 現在の連絡先を *AbandonedCart* キャンペーン処理者に登録すること。  
  
**用途:** 任意。商取引マーケティングオートメーションキャンペーンで使用。  
  
**所有権:** プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:** 以下のパラメータを用いて、現在の連絡先を *Abandoned Cart* マーケティングオートメーションキャンペーンに登録します:  
  

-   basePlanName はキャンペーンプランの名前です。デフォルト値は「放棄されたカート」です。
-   allowDuplicateContacts 同じ連絡先をマーケティングオートメーションキャンペーンに複数回登録させるかどうかを示します。デフォルト値はfalseです。
-   allowUnauthenticatedContacts 匿名および未登録ユーザーの登録を許可するかどうかを示します。デフォルト値はtrueです。

  
  
さらなるカスタマイズのために、プロセッサを継承することも可能です。

## RemoveCartLinesパイプライン

**名前:**

**RemoveCartLines**

**説明:**

責任はカートのラインをカートから外すことです。

**使用方法:**

Sitecoreから電話をかけてきました。

**ARGS:**

\*\*リクエスト -\*\*更新すべきカートリッジと削除すべきカートリッジの行が含まれています。  
  
パイプラインを呼び出す前に設定されます。

\*\*レスポンス -\*\*パイプライン呼び出し後に更新されたカートオブジェクトを含みます。

**プロセッサー:**

**CheckIfLocked** **–**  
  
**責任:**カートリッジがロックされているかをチェックし、ロックされた場合パイプラインを中止し、ロック状態を知らせるSystemMessageを返します  
  
**使用方法**:任意。プロセッサはカートリッジがロックされているかどうかをチェックするための汎用的なものです。プロセッサはカートリッジ内容を変更する可能性のあるすべてのパイプラインで使用されなければなりません。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**カートからのラインを除去する –**  
  
**責任:**与えられたラインをカートから削除します。  
  
削除すべき行のリストは、カートリッジ上のCartLinesコレクション内の行に直接参照している必要があります。これらは以下の参照によって削除されます: cart.CartLines = cart.CartLines.Except(request.CartLines).ToList();  
  
**使用方法**:任意。プロセッサはカートリッジからラインを削除する汎用ですが、ECS専用の実装に置き換えられる可能性があります。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの実装はSitecoreのカートドメインモデルのみで動作します。  
  
ほとんどのECS統合では、この実装を継承・上書きまたは置き換え、ECSを呼び出すことが重要で、カートへの変更が渡され、ビジネスロジックを適用できるようになります。

**セーブカート** –  
  
**責任:**指定されたカートリッジを保存する SaveCart パイプラインを呼び出します。  
  
**使用方法**:任意ですが、カートリッジに変更が加えられた際には常に呼び出されるべきであり、こちらもその通りです。プロセッサは SaveCart パイプラインを呼び出す汎用であり、他のパイプラインでも使用できます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**TriggerPageEventsForCartLines**–  
  
**責任:**カートに行を追加する際に指定されたページイベントをトリガーし、以下の値を登録します:  
  

-   プロダクトID、数量、価格、通貨

  
  
トリガーされるイベントは、ページイベントテキストとともにパラメータとして渡されます。この場合、イベントは「カートリッジから行が削除された」です。ページイベントのテキストは、Sitecore辞書で検索することでローカライズされます。  
  
**使用方法**:任意。プロセッサはカートリッジラインを修正する際にページイベントをトリガーするための汎用です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ**:プロセッサを上書きしてカートリッジの他の値を登録したり、テキストの書式を変更したりします。

**UpdateVisitorInAutomationPlan -**  
  
**責任:** 現在の連絡先を*AbandonedCart* キャンペーン処理者に登録すること。  
  
\*\*使用方法:\*\*任意。コマースマーケティングオートメーションキャンペーンへの連絡先登録に使われていました。  
  
**所有権:** プロセッサーにはConnectが付属しています。  
  
\*\*カスタマイズ:\*\*以下のパラメータに基づいてCommerceマーケティングオートメーションキャンペーンに連絡先を登録します:  
  

-   basePlanName はキャンペーンプランの名前です。デフォルト値は「放棄されたカート」です。
-   allowDuplicateContacts 同じ連絡先をマーケティングオートメーションキャンペーンに複数回登録させるかどうかを示します。デフォルト値はfalseです。
-   allowUnauthenticatedContacts 匿名および未登録ユーザーの登録を許可するかどうかを示します。デフォルト値はtrueです。

## UpdateCartLinesパイプライン

**名前:**

**アップデートカートライン**

**説明:**

責任はカートのラインを更新することです。

**使用方法:**

Sitecoreから電話をかけてきました。

**ARGS:**

\*\*リクエスト -\*\*更新予定のカートと行を含む。  
  
パイプラインを呼び出す前に設定されます。

\*\*レスポンス -\*\*パイプライン呼び出し後に更新されたカートオブジェクトを含みます。

**プロセッサー:**

**CheckIfLocked** **–**  
  
**責任:**カートがロックされているかをチェックし、ロックされた場合はパイプラインを中止し、ロック状態を知らせるためにSystemMessageを返します。  
  
**使用方法**:任意。プロセッサはカートリッジがロックされているかどうかをチェックするための汎用的なツールです。プロセッサはカートリッジの内容を変更する可能性のあるすべてのパイプラインで使用されるべきです。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**UpdateLinesOnCart –**  
  
**責任**:提供されたカートの行を更新すること。  
  
デフォルトの実装では元のカートリッジの行は処理せず、すでにカートリッジの行が更新されたカートリッジを返します。  
  
したがって、更新された行のリストはカート上のCartLinesコレクションへの参照でなければなりません。  
  
**使用方法**:任意。プロセッサはカートリッジ上の回線更新には汎用ですが、ECS専用の実装に置き換えられる可能性があります。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの実装はSitecoreのカートドメインモデルのみで動作します。  
  
ほとんどのECS統合では、この実装を継承・上書きまたは置き換え、ECSを呼び出すことが重要で、カートリッジの変更を渡し、ビジネスロジックを適用できるようにします。

**セーブカート** –  
  
**責任:**指定されたカートリッジを保存する SaveCart パイプラインを呼び出します。  
  
**使用方法**:任意ですが、カートリッジに変更があった場合は必ず呼び出さなければなりません。ここでもその通りです。プロセッサは SaveCart パイプラインを呼び出す汎用であり、他のパイプラインでも使用できます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**TriggerPageEventsForCartLines**–  
  
**責任:**カートに行を追加する際に指定されたページイベントをトリガーし、以下の値を登録します:  
  

-   プロダクトID、数量、価格、通貨

  
  
トリガーされるイベントは、ページイベントテキストとともにパラメータとして渡されます。この場合、イベントは「Lines Updated On Cart」です。ページイベントのテキストは、Sitecore辞書で検索することでローカライズされます。  
  
**使用方法**:任意。プロセッサはカートリッジラインを修正する際にページイベントをトリガーするための汎用です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ**:プロセッサを上書きしてカートリッジの他の値を登録したり、テキストの書式を変更したりします。

**UpdateVisitorInAutomationPlan –**  
  
**責任:** 現在の連絡先を *AbandonedCart* キャンペーン処理者に登録すること。  
  
**使用方法:** 任意。Commerceマーケティングオートメーションキャンペーンに登録している人を特定するために使用されます。  
  
**所有権:** プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:** 以下のパラメータに基づいて、Commerceマーケティングオートメーションキャンペーンへの参加者を決定します:  
  

-   basePlanName はキャンペーンプランの名前です。デフォルト値は「放棄されたカート」です。
-   allowDuplicateContacts 同じ連絡先をマーケティングオートメーションキャンペーンに複数回登録させるかどうかを示します。デフォルト値はfalseです。
-   allowUnauthenticatedContacts 匿名および未登録ユーザーの登録を許可するかどうかを示します。デフォルト値はtrueです。

  
  
さらなるカスタマイズのために、プロセッサを継承することも可能です。

## DeleteCartパイプライン

**名前:**

**DeleteCart**

**説明:**

カートリッジを永久に削除する責任があります:  
  

-   カートは削除されます。
-   DMSでカートが削除されたというイベントが発生します。

**使用方法:**

Sitecoreから電話をかけてきました。

**ARGS:**

\*\*リクエスト -\*\*削除予定のカートリッジを含みます。  
  
パイプラインを呼び出す前に設定されます。

\*\*応答 –\*\*SystemMessages

**プロセッサー:**

**CheckIfLocked** **–**  
  
**責任:**カートがロックされているかをチェックし、ロックされた場合はパイプラインを中止し、ロック状態を知らせるためにSystemMessageを返します  
  
**使用方法**:任意。プロセッサはカートリッジがロックされているかどうかをチェックするための汎用的なものです。プロセッサはカートリッジ内容を変更する可能性のあるすべてのパイプラインで使用されなければなりません。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**DeleteCart –**  
  
**責任:**ECS内のストレージからカートリッジを削除・削除します。  
  
**使用方法**:必須。  
  
**所有権**:プロセッサーはECSによって提供されます。  
  
**カスタマイズ:** ECS専用に構築する必要があります。

**DeleteCartFromEAState –**  
  
**責任:**EAステートからカートを特定し削除します。  
  
**使用方法**:任意。プロセッサはEA状態でカートリッジを削除する汎用的なもの。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**TriggerPageEventForRequestCart**–  
  
**責任:**カートリッジを削除する際に指定されたページイベントをトリガーし、以下の値を登録します:  
  

-   ExternalCartId, UserId, CartName, CartStatus

  
  
トリガーされるイベントは、ページイベントテキストとともにパラメータとして渡されます。この場合、イベントはカート削除されています。ページイベントのテキストは、Sitecore辞書で検索することでローカライズされます。  
  
**使用方法**:任意。プロセッサは、 CartRequest パラメータ型に基づく引数を取るプロセッサに対してページイベントをトリガーするための汎用的です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ**:プロセッサを上書きしてカートリッジの他の値を登録したり、テキストの書式を変更したりします。

## UpdateCartパイプライン

**名前:**

**アップデートカート**

**説明:**

責任は更新されたカートを外部商取引システムに渡すことです  
  
DMSでカートが更新されていることを知らせるイベントが発生します。

**使用方法:**

Sitecoreから電話をかけてきました。

**ARGS:**

\*\*リクエスト -\*\*カートとカートベースで更新されるデータを含みます。  
  
パイプラインを呼び出す前に設定されます。

\*\*レスポンス -\*\*パイプライン呼び出し後に更新されたカートオブジェクトを含みます。

**プロセッサー:**

**CheckIfLocked** **–**  
  
**責任:**カートがロックされているかをチェックし、ロックされた場合はパイプラインを中止し、ロック状態を知らせるためにSystemMessageを返します。  
  
**使用方法:** オプションです。プロセッサはカートリッジがロックされているかどうかをチェックするための汎用的な装置です。プロセッサはカートリッジ内容を変更する可能性のあるすべてのパイプラインで使用されなければなりません。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**SetAnonymousPreferredEmail -**  
  
**責任:** 請求ページから匿名ユーザーのメールアドレスを取得し、それを優先メールアドレスに設定します。  
  
**用途:** コマースのマーケティングオートメーションキャンペーンで、匿名ユーザー向けのメールアドレスを取得するために使用されます。 *UpdateVisitorinAutomationPlan* プロセッサと連携して動作します。  
  
**所有権:** プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**

**UpdateCart –**  
  
**責任:**カートリッジ本体の更新された値(CartBaseオブジェクトのみ、行などは含めません)でカートリッジを更新すること。  
  
デフォルトの実装では、CartBase上のCustomerIDを除くすべてのデフォルトプロパティが更新されます。CartNameとShopNameは除外されます。nullやblackの値を含め、すべてが含まれています。  
  
**使用方法**:任意。プロセッサはカートリッジ本体の更新に汎用的です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトのConnectドメインモデルがカスタマイズされている場合、プロセッサはカスタマイズされたプロパティを含めるように上書きされるべきです。

**TriggerPageEventForRequestCartChanges**–  
  
**責任:**カートリッジを削除する際に指定されたページイベントをトリガーし、以下の値を登録します:  
  

-   CustomerID、CartName、ShopName

  
  
トリガーされるイベントは、ページイベントテキストとともにパラメータとして渡されます。この場合、イベントはカート削除されています。ページイベントのテキストは、Sitecore辞書で検索することでローカライズされます。  
  
**使用方法**:任意。プロセッサは、 UpdateCartRequest パラメータ型に基づく引数を取るプロセッサに対してページイベントをトリガーするための汎用的です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ**:プロセッサを上書きしてカートリッジの他の値を登録したり、テキストの書式を変更したりします。

**RunSaveCart –**  
  
**責任:**指定されたカートリッジを保存する SaveCart パイプラインを呼び出します。  
  
**使用方法**:任意ですが、カートリッジに変更があった場合は必ず呼び出さなければなりません。ここでもその通りです。プロセッサは SaveCart パイプラインを呼び出す汎用であり、他のパイプラインでも使用できます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**UpdateVisitorInAutomationPlan –**  
  
**責任:** 現在の連絡先を *AbandonedCart* キャンペーン処理者に登録すること。  
  
**使用方法:** 任意。Commerceマーケティングオートメーションキャンペーンに登録している人を特定するために使用されます。  
  
**所有権:** プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:** 以下のパラメータに基づいて、Commerceマーケティングオートメーションキャンペーンへの参加者を決定します:  
  

-   basePlanName はキャンペーンプランの名前です。デフォルト値は「放棄されたカート」です。
-   allowDuplicateContacts 同じ連絡先をマーケティングオートメーションキャンペーンに複数回登録させるかどうかを示します。デフォルト値はfalseです。
-   allowUnauthenticatedContacts 匿名および未登録ユーザーの登録を許可するかどうかを示します。デフォルト値はtrueです。

  
  
さらなるカスタマイズのために、プロセッサを継承することも可能です。

## ロックカートパイプライン

**名前:**

**ロックカート**

**説明:**

カートをロック状態にし、改造を防げます。

**使用方法:**

Sitecoreから電話をかけてきました。

**ARGS:**

\*\*リクエスト -\*\*ロックされるカートリッジを含みます。  
  
パイプラインを呼び出す前に設定されます。

\*\*レスポンス -\*\*パイプラインが呼び出された後にカートオブジェクトを含みます。

**プロセッサー:**

**ロックカート –**  
  
**責任:**カートをロック状態に設定します(IsLocked = true)。  
  
**使用方法**:任意。プロセッサはカートリッジのロック用汎用です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの実装はECSを呼び出しません。ロック時に実装を上書きまたは置き換えてECSを呼び出すことが重要かもしれません。

**RunSaveCart –**  
  
責任: SaveCart パイプラインを呼び出し、指定されたカートを保存します。  
  
**使用方法**:任意ですが、カートリッジに変更があった場合は必ず呼び出さなければなりません。ここでもその通りです。プロセッサは SaveCart パイプラインを呼び出す汎用であり、他のパイプラインでも使用できます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**TriggerPageEventForRequestCart**–  
  
**責任:**カートリッジを削除する際に指定されたページイベントをトリガーし、以下の値を登録します:  
  

-   ExternalCartId, UserId, CartName, CartStatus

  
  
トリガーされるイベントは、ページイベントテキストとともにパラメータとして渡されます。この場合、イベントはCartLockedです。ページイベントのテキストは、Sitecore辞書で検索することでローカライズされます。  
  
**使用方法**:任意。プロセッサは、 CartRequest パラメータ型に基づく引数を取るプロセッサに対してページイベントをトリガーするための汎用的です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ**:プロセッサを上書きしてカートリッジの他の値を登録したり、テキストの書式を変更したりします。

## UnlockCartパイプライン

**名前:**

**アンロックカート**

**説明:**

カートリッジをロック解除状態に設定します。

**使用方法:**

Sitecoreから電話をかけてきました。

**ARGS:**

\*\*リクエスト -\*\*カートリッジをアンロックする。  
  
パイプラインを呼び出す前に設定されます。

\*\*レスポンス -\*\*パイプラインが呼び出された後にカートオブジェクトを含みます。

**プロセッサー:**

**アンロックカート –**  
  
**責任:**カートを非ロック状態(IsLocked = false)に設定します。  
  
**使用方法**:任意。プロセッサはカートリッジのロック解除に汎用的です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの実装ではECSを呼び出しません。アンロック時にECSを呼び出すために実装を上書きまたは置き換えることが関係あるかもしれません。

**RunSaveCart –**  
  
**責任:**指定されたカートリッジを保存する SaveCart パイプラインを呼び出します。  
  
**使用方法**:任意ですが、カートリッジに変更があった場合は必ず呼び出さなければなりません。ここでもその通りです。プロセッサは SaveCart パイプラインを呼び出す汎用であり、他のパイプラインでも使用できます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。

**TriggerPageEventForRequestCart**–  
  
**責任:**カートリッジを削除する際に指定されたページイベントをトリガーし、以下の値を登録します:  
  

-   ExternalCartId, UserId, CartName, CartStatus

  
  
トリガーされるイベントは、ページイベントテキストとともにパラメータとして渡されます。この場合、イベントはカートアンロックされています。ページイベントのテキストは、Sitecore辞書で検索することでローカライズされます。  
  
**使用方法**:任意。プロセッサは、 CartRequest パラメータ型に基づく引数を取るプロセッサに対してページイベントをトリガーするための汎用的です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ**:プロセッサを上書きしてカートリッジの他の値を登録したり、テキストの書式を変更したりします。

## マージカートパイプライン

**名前:**

**マージカート**

**説明:**

ユーザーカートと匿名カートを統合します。

**使用方法:**

Sitecoreから電話をかけてきました。

**ARGS:**

\*\*リクエスト -\*\*ユーザーカートと匿名カートリッジを含みます。

\*\*応答 -\*\*統合されたユーザーカートを含みます。

**プロセッサー:**

**マージカート –**  
  
**責任:**ユーザーカートと匿名カートを統合します。  
  
**使用方法**:任意。プロセッサはカートリッジのマージ用汎用です。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの実装はECSを呼び出しません。カスタムマージルールが必要な場合は、実装を上書きまたは置き換えることが重要かもしれません。

**RunSaveCart –**  
  
**責任:**指定されたカートリッジを保存する SaveCart パイプラインを呼び出します。  
  
**使用方法**:任意ですが、カートリッジに変更があった場合は必ず呼び出さなければなりません。ここでもその通りです。プロセッサは SaveCart パイプラインを呼び出す汎用であり、他のパイプラインでも使用できます。  
  
**所有権**:プロセッサーにはConnectが付属しています。  
  
**カスタマイズ:**デフォルトの機能をすぐに上書きする必要はありません。