---
title: "カートサービス提供者"
slug: "cart-service-provider"
abstract: ""
---
# カートサービス提供者

サービスプロバイダーは、Connectパイプラインとのやり取りを容易にするために設計されたラッパーオブジェクトです。プロバイダーはConnectパイプラインを呼び出す以外のロジックを実装しません。すべてのビジネスロジックはパイプラインプロセッサ内で実装されています。

プロバイダー内の各メソッドには対応するRequestオブジェクトとResultオブジェクトが使われます。例えば、GetCartsはGetCartsRequestオブジェクトを受け取り、GetCartsResultオブジェクトを返します。場合によっては、同じデータを返す際にレスポンスオブジェクトを再利用することもあります。

デフォルトリクエストおよび結果引数のカスタマイズ版は、オーバーロードされたジェネリックベースのメソッドを呼び出すことで使用できます。

カートサービスプロバイダーには、カートデータとやり取りするための以下の方法が含まれています。

## GetCartsメソッド

GetCartsメソッドはカートデータを外部商取引システムに対して照会するために使われ、カートの集合を返すのではなく、主要なカートデータの要約のみを含むCartBaseオブジェクトの集合を返します。

**名前:**

**GetCarts**

**説明:**

指定された条件に合致するカートを取得します。 GetCartsパイプラインを呼び出します。

**使用方法:**

カートのリストが必要なときに電話します。  
  
例としては以下のものがあります:  
  

-   特定の訪問者のカートをすべての訪問者に届ける。
-   現在の訪問者のためにマルチカートソリューションでカートを入手する方法。
-   例えば、一定期間使用されなかったカートが放置されることなどです。

**署名:**

GetCarts結果GetCarts(GetCartsRequest request)

**入力:**

\*\*UserID – 任意 -\*\*カートリッジを取得するべきユーザーのIDです。値が指定されていない場合、カートリッジ取得時にユーザーIDは考慮されません。

\*\*CustomerId – 任意 – \*\*カートを取得すべき顧客のIDです。値が指定されていない場合、カート取得時に顧客IDは考慮されません。

**CartName – 任意 -** 取得すべきカートの名前。値が指定されていない場合、カート名はカートリビュー時に考慮されません。

**CartStatus – オプション –** 回収すべきカートの状態。例としては「アクティブ」や「放棄」があります。値が指定されていない場合、カートのステータスはカートリッジの回収時に考慮されません。  
  
これは、B2Bのシナリオで、ユーザーに利用可能なカートリッジのリストを表示したいが、ロックされていないカートリッジのみを表示したい場合に使えます。

**IsLocked – オプション** – 提供されている場合、検索はカートがロックされているかどうかもフィルターをかけます。

\*\*ショップネーム – 任意。\*\*カート検索用のショップ名。

**出力:**

**IEnumerable –** CartBaseオブジェクトの集合。  
  
リストはリクエストで指定された条件に合致するカートリッジを表しています。

**SystemMessages** **\- 外部システムからのメッセージの収集。**

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create request to get the carts.
var request = new GetCartsRequest("MyStore")
{
 UserIds = new Collection<string> { "John" },
 CustomerIds = new Collection<string> { "JohnCustomerId" },
 Names = new Collection<string> { "JohnsName" },
 Statuses = new Collection<string> { "InProcess" },
 IsLocked = false
};
// Call service provider and receive the result.
var result = cartServiceProvider.GetCarts(request);
## CreateOrResumeCartメソッド

**名前:**

**CreateOrResumeCart**

**説明:**

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

-   残っている、あるいは放置されている可能性のあるカートリッジを読み込もうとします。
-   Experience Analyticsでイベントをトリガーします。
-   ショッピングカートのIDでマーケティングオートメーションプランにユーザーを入力します。

**使用方法:**

訪問者が到着した際にショッピングカートが必要な場合に電話をかけます。

**署名:**

CreateOrResumeCartResult CreateCart(CreateOrResumeCartRequest request)

**入力:**

4つの入力パラメータすべてが現在の訪問者の既存のカートと検索・照合するために使われますが、そのうち必須のパラメータは2つだけです。

**UserID – 必須**

**CustomerID – オプション**

**CartIdまたはCartName – カートの読み込みや再開に必須。カートリッジ作成時はオプション。**

**ショップネーム – 必須**

**出力:**

**カート –** ショッピングカートを表すカートオブジェクトインスタンスです。現在の訪問者に複数のカートがすでに存在し、どれを返すべきか決めていない場合、カートは返されません。

\*\*IEnumerable -\*\*現在の訪問者に複数のカートがすでに存在し、どれを返すべきか決めていない場合、CartBaseオブジェクトのリストが返されます。

**SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create the request.
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "Bred");
// Call the service provider to get the cart
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
// Read the id of the returned cart
var id = cart.ExternalId;
// Create request to remove the cart.
var deleteCartRequest = new DeleteCartRequest(cart);
// Call the service provider and receive the result.
cartServiceProvider.DeleteCart(deleteCartRequest);
## ロードカート法

**名前:**

**ロードカート**

**説明:**

指定されたショップのカートIDが入ったカートを取得します。 LoadCart パイプラインを呼び出します。このメソッドは、すべてのカートラインが関連付けられた完全なカートオブジェクトを返します。

**使用方法:**

特定のカートが必要な時に呼び出されます

**署名:**

LoadCartResult LoadCart(LoadCartRequest request)  
  
\> \[!注\]  
\> LoadCartRequestクラスはカートを再計算するかどうかを指定するためのRecalculateプロパティ(ブール)を提供します。Commerce Engine(CE)のConnectレイヤーでは、LoadCartRequest.Recalculateがfalseに設定されている場合、CE Connectがカート取得の要求を準備する際に、policykeysヘッダーにDoNotCalculateCart文字列を追加します。デフォルトでは、LoadCartRequest.Recalculateプロパティはtrueに設定されています。

**入力:**

**CartID – 必須**

**ショップネーム - 必須**

**出力:**

**カート –** リクエストで指定された条件に合致するショッピングカートを表すカートオブジェクトインスタンス。

**SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create the request
var request = new LoadCartRequest("Autohaus", "Bred");
// call the service provider to get the cart
var cart = cartServiceProvider.LoadCart(request).Cart;
## セーブカート法

**名前:**

**セーブカート**

**説明:**

サポートされている場合は外部システムに指定されたカートリッジを保存し、EA状態でも保存Sitecore。 SaveCart パイプラインを呼び出します。  
  
他のサービス層メソッドから暗黙的に呼び出されるが、明示的に呼び出されることはありません

**使用方法:**

特定のカートリッジを永続化する必要がある場合に呼び出されます。このメソッドは、カートリッジを変更してカートが変更された操作の後に実行されるべきです。  
  
カートの更新、カートラインの追加、削除、更新、カートのロックおよび解除時に暗黙的に実行されます。

**署名:**

SaveCartResult SaveCart(SaveCartRequest request)

**入力:**

**カート – 必須**

**出力:**

**SystemMessages**\*\*-\*\*外部システムからのメッセージの収集。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create cart and lock it.
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "Mark");
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
// add a cartline to the cart
var cartLine1 = new CartLine
{
 Quantity = 1,
 Product = new CartProduct
 {
 ProductId = "Audi Q10",
 Price = new Price(55, "USD")
 }
};
var cartLines = new Collection<CartLine> { cartLine1 };
var addCartLinesRequest = new AddCartLinesRequest(cart, cartLines);
cart = cartServiceProvider.AddCartLines(addCartLinesRequest).Cart;
var saveCartRequest = new SaveCartRequest(cart);
var result = cartServiceProvider.SaveCart(saveCartRequest);
## AddCartLinesメソッド

**名前:**

**AddCartLines**

**説明:**

責任はカートにラインを追加することです。

**使用方法:**

カートのラインのリストがショッピングカートに追加されそうなときに呼び出され、ユーザーが **「カートに追加**」をクリックしたときに呼び出されます。

**署名:**

AddCartLinesResult AddCartLines(AddCartLinesRequest request)

**入力:**

**カート – 必須** - カートは未修正でなければなりません。カートインスタンスに加えられた変更は無視されます。カートの取得および変更にはカートIDとショップネームのみが考慮されます。

\*\*IEnumerable CartLines – 必須 - \*\*追加すべきカートラインの集合。

**ForceNewLines – オプション** – もしこれが正当なら、カートのライン商品は顧客カートの新しいカートラインとして追加されます。そうでなければ、可能な限り既存のカートラインに統合されます。  
  
\> \[!注\]  
\> このパラメータは外部商取引システムがこの機能をサポートしている場合のみサポートされます。

**出力:**

**カート -** 外部システムで更新されたカートを表すカートオブジェクト。

\*\*AddedCartLineExternalIds – \*\*カートリッジに追加された行の外部IDのリスト。

**SystemMessages** - 外部システムからのメッセージの収集。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Prepare parameters for getting cart for visitor ID Ivan in shop Autohaus
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "Ivan");
// Get a cart, new or existing
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
// Create cart line with subline to add to the cart
var cartLines = new List<CartLine>(new Collection<CartLine>
{
 new CartLine
 {
 Product = new CartProduct
 {
 ProductId = "Audi",
 Price = new Price(10000, "USD") },
Quantity = 1,
SubLines = new Collection<CartLine>
 {
new CartLine
 {
 Product = new CartProduct
 {
 ProductId = "Winter Tyres",
 Price = new Price(100, "USD")
 },
 Quantity = 4
 },
new CartLine
 {
 Product = new CartProduct
 {
 ProductId = "Summer Tyres",
 Price = new Price(80, "USD")
 },
 Quantity = 4
 }
 }
 }
}
);
// Create request with prefix and prefix lines
var request = new AddCartLinesRequest(cart, cartLines);
// Add prefix lines into prefix
var result = cartServiceProvider.AddCartLines(request);
var resultCart = result.Cart;
## RemoveCartLinesメソッド

**名前:**

**RemoveCartLines**

**説明:**

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

**使用方法:**

カートから1本以上のラインが削除されそうになった場合、またはユーザーがカートを1行以上削除して更新した際に呼び出します。

**署名:**

RemoveCartLinesResult RemoveCartLines(RemoveCartLinesRequest request)

**入力:**

\*\*カート -\*\***必須**。カートは未修正でなければなりません。カートインスタンスに加えられた変更は無視されます。カートの取得および変更にはカートIDとショップネームのみが考慮されます。

\*\*数えきれない カートライン – 必須 -\*\*カートラインの集合を除去する。  
  
ExternalCartLineId、LineNumber、またはオブジェクト参照を使って削除すべき行を識別できます。  
  
デフォルトのConnectベースの実装では、オブジェクト参照ごとに行が削除されます。

**出力:**

**カート -** 外部システムで更新されたカートを表すカートオブジェクト。

**SystemMessages**\*\*-\*\*外部システムからのメッセージの収集。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create cart with "Audi Q10", "BMW X7" and "Citroen C3"
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "John");
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
var cartLine1 = new CartLine
{
 Quantity = 1,
 Product = new CartProduct
 {
 ProductId = "Audi Q10",
 Price = new Price(55, "USD")
 }
};

var cartLine2 = new CartLine
{
 Quantity = 2,
 Product = new CartProduct
 {
 ProductId = "BMW X7",
 Price = new Price(10, "USD")
 }
};

var cartLine3 = new CartLine
{
 Quantity = 1,
 Product = new CartProduct
 {
 ProductId = "Citroen C3",
 Price = new Price(25, "USD")
 }
};
var cartLines = new Collection<CartLine>
{
 cartLine1, cartLine2, cartLine3
};

var addCartLinesRequest = new AddCartLinesRequest(cart, cartLines);
cart = cartServiceProvider.AddCartLines(addCartLinesRequest).Cart;
// Create request to remove cart line "BMW X7".
var request = new RemoveCartLinesRequest(cart, cart.Lines.Where(l => l.Product.ProductId == "BMW X7").ToArray());
// Call service provider and receive the result.
var result = cartServiceProvider.RemoveCartLines(request);
## UpdateCartLinesメソッド

**名前:**

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

**説明:**

責任はカートの回線を更新することです。

**使用方法:**

ショッピングカートが更新されそうなときに、すでにカート内の行を参照しています。UIの観点から言えば、ユーザーが特定の商品についてカートを更新するときを指します。最も一般的には、以下のタイミングです:  
  

-   量が変わる。
-   保険や配送などのサービスが追加されます。
-   特定の製品に対してプロモーションコードが追加されます。
-   ある製品は別のバリアントに置き換えられます。

**署名:**

UpdateCartLinesResult UpdateCartLines(UpdateCartLinesRequest request)

**入力:**

\*\*カート - 必須 -\*\*カートは未修正でなければなりません。カートインスタンスに加えられた変更は無視されます。カートの取得と変更はカートIDとショップネームのみが対象となります。

\*\*IEnumerable CartLines – 必須 \*\*カート上で更新するためのカートラインの集合。

**出力:**

**カート –** 外部システム内の更新されたカートを表すカートオブジェクト。

**SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create cart with "Audi Q10", "BMW X7" and "Citroen C3"
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "John");
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
var cartLine1 = new CartLine
{
 Quantity = 1,
 Product = new CartProduct
 {
 ProductId = "Audi Q10",
 Price = new Price(55, "USD")
 }
};
var cartLine2 = new CartLine
{
 Quantity = 2,
 Product = new CartProduct
 {
 ProductId = "BMW X7",
 Price = new Price(10, "USD")
 }
};
var cartLines = new Collection<CartLine> { cartLine1, cartLine2 };
var addCartLinesRequest = new AddCartLinesRequest(cart, cartLines);
cart = cartServiceProvider.AddCartLines(addCartLinesRequest).Cart;
var bmw = cart.Lines.First(i => i.Product.ProductId == "BMW X7");
bmw.Product.Price = new Price(110000, "USD");
bmw.Quantity = 3;
// Create request to update cart lines.
var updateCartLinesRequest = new UpdateCartLinesRequest(cart, new Collection<CartLine> { bmw });
// Call service provider and receive the result.
var result = cartServiceProvider.UpdateCartLines(updateCartLinesRequest);
## DeleteCartメソッド

**名前:**

**DeleteCart**

**説明:**

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

-   カートは削除されます。
-   DMSでカートリッジが削除されたことを知らせるトリガーイベント。

**使用方法:**

カートリッジを削除する必要がある場合は必ず呼び出してください。  
  
UIに関しては、次のようなものが考えられます:  
  

-   ユーザーが支払いのB2Cシナリオを経て注文が作成され登録されたとき、
-   カートが一定期間放置された状態で、訪問者が戻ることが期待されていない場合。

**署名:**

DeleteCartResult DeleteCart(DeleteCartRequest request)

**入力:**

**カート - 必須**。カートは変更されていなければなりません。カートインスタンスに加えられた変更は無視されます。カートの取得と改変はカートIDとショップネームのみが対象となります。

**出力:**

**SystemMessages** - 外部システムからのメッセージの収集。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create the request.
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "Bred");
// Call the service provider to get the cart
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
// Read the id of the returned cart
var id = cart.ExternalId;
// Create request to remove the cart.
var deleteCartRequest = new DeleteCartRequest(cart);
// Call the service provider and receive the result.
cartServiceProvider.DeleteCart(deleteCartRequest);
## UpdateCartメソッド

**名前:**

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

**説明:**

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

**使用方法:**

このメソッドは、カートを修正する操作の後に実行されるべきであり、通常は調整が追加、削除、または修正された後に行われます。

**署名:**

UpdateCartResult UpdateCart(UpdateCartRequest request)

**入力:**

\*\*カート - 必須 -\*\*更新されるカート。カートは変更されていなければなりません。カートインスタンスに加えられた変更は無視されます。カートの取得および変更にはカートIDとShopNameのみが考慮されます。

\*\*カートベース –\*\*カートに変更を加えるためのカートベースのインスタンス  
  
通常、変更できるプロパティはUserId、CustomerId、CartName、そして場合によってはShopNameのみです。  
  
IsLockedおよびCartStatusの値を考慮するかどうかは、外部商取引システムのビジネスロジックに依存します。  
  
null値は考慮されませんが、空欄の値は考慮されます。

**出力:**

**カート –** 外部システム内の更新されたカートを表すカートオブジェクト。

**SystemMessages**\*\*-\*\*外部システムからのメッセージの収集。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create prefix.
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "Peter");
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
// Create the instance of the CartBase with properties that should be changed in existing prefix.
var changes = new CartBase
{
 CustomerId = "Customer Peter",
 Name = "Peter's Cart",
 ShopName = "Autohaus"
};
// Create request to update the prefix.
var updateCartRequest = new UpdateCartRequest(cart, changes);
// Call service provider with prepared request and receive the result.
var result = cartServiceProvider.UpdateCart(updateCartRequest);
## ロックカート法

**名前:**

**ロックカート**

**説明:**

責任は、カートを注文にコミットできる状態で、任意の支払い取引が行われる前にロック状態に設定することです。  
  

-   カートリッジをロックに設定して保存してください。
-   DMSでカートがロック状態であることを知らせるイベントが発生します。

  
  
カートがロック状態にある場合、それは2つのことを示します。  
  

-   他のサービスレイヤーの方法ではショッピングカートの内容を変更することはできません。
-   ロック状態のカートを簡単に特定でき、支払い取引と比較・確認するために、チェックアウトプロセスでの予期せぬ出来事で未完了のカートがないか確認できます。

  
  
対応する UnlockCart メソッドがあります。 LockCart メソッドが呼び出されたときにカートがロックされている場合、パイプラインは中止され、何も起こりません。

**使用方法:**

通常はチェックアウトのプロセス中、支払い取引が実行される直前、そしてカートを注文に変換する前に実行されます。UIの観点からは、チェックアウトフローのユーザーが「確認」をクリックし、B2Cのシナリオでは支払いを行い注文が作成されるとトリガーされます。

**署名:**

LockCartResult LockCart(LockCartRequest request)

**入力:**

**カート - 必須**

**出力:**

**カート –** 外部システム内の更新されたカートを表すカートオブジェクト。

**SystemMessages**\*\*-\*\*外部システムからのメッセージの収集。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create a sample cart.
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "Jho");
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
// Create request to lock this cart.
var lockCartRequest = new LockCartRequest(cart);
// Call service provider and receive the result.
var result = cartServiceProvider.LockCart(lockCartRequest);
## アンロックカート法

**名前:**

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

**説明:**

責任はカートをロック解除状態に設定することです:  
  

-   カートリッジをロック解除に設定して保存します。
-   DMSでカートがロック状態にあることを知らせるイベントが発生します。

  
  
デフォルトではカートリッジはロック解除状態で編集可能です。  
  
対応する LockCart メソッドがあり、状態をロックに設定します。 UnlockCart メソッドが呼び出された時点でカートがロックされていなければ、パイプラインは中止され、何も起こりません。

**使用方法:**

通常はユーザーがカートに戻って、チェックアウトプロセスと支払い取引を開始した後に内容を変更しようとした場合に呼び出されますが、その実装にはどのように処理すべきかが明記されています。

**署名:**

UnlockCartResult UnlockCart(UnlockCartRequest request)

**入力:**

**カート – 必須**

**出力:**

**カート –** 外部システム内の更新されたカートを表すカートオブジェクト。

**SystemMessages**\*\*-\*\*外部システムからのメッセージの収集。これによりエラー条件が報告されます。

使用例:

var cartServiceProvider = new CartServiceProvider();
// Create cart and lock it.
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "Mark");
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
var lockCartRequest = new LockCartRequest(cart);
cart = cartServiceProvider.LockCart(lockCartRequest).Cart;
// Create request to unlock this cart.
var unlockCartRequest = new UnlockCartRequest(cart);
// Call service provider and receive the result.
var result = cartServiceProvider.UnlockCart(unlockCartRequest);
## マージカート法

**名前:**

**マージカート**

**説明:**

責任は指定された2台のカートを統合することです。  
  

-   両方のカートは同じ店名でなければなりません。
-   両方のカートリッジは異なるExternalIDを持っている必要があります。
-   カート1とカート2の商品は統合され、返品されます。

**使用方法:**

通常、ユーザーがログインしてシステムが匿名カートの存在を認識したときに呼び出します。

**署名:**

CartResult MergeCart(NotNull MergeCartRequest request)

**入力:**

**UserCart – 必須**  
  
**AnonymousCart - 必須**

**出力:**

**カート –** マージされたユーザーカートを表すカートオブジェクト。

使用例:

var cartServiceProvider = new CartServiceProvider();
var userCart = new Cart
{
 ExternalId = "0",
 ShopName = "first shop",
 Lines = new List<CartLine>
 {
 new CartLine
 {
 Quantity = 1,
 Product = new CartProduct
 {
 ProductId = "Audi Q10",
 Price = new Price(55, "USD")
 }
 }
 }
};
var anonymousCart = new Cart
{
 ExternalId = "1",
 ShopName = "first shop",
 Lines = new List<CartLine>
 {
 new CartLine
 {
 Quantity = 1,
 Product = new CartProduct
 {
 ProductId = "BMW M5",
 Price = new Price(75, "USD")
 }
 }
 }
};
var request = new MergeCartRequest(userCart, anonymousCart);
var mergeredCart = cartServiceProvider.MergeCart(request).Cart;
cartServiceProvider.DeleteCart(new DeleteCartRequest(anonymousCart));
## AddPartiesメソッド

-   **名前:****: AddParties**
-   **説明:**責任はカートにパーティを追加することです。
-   **使用法:**: 通常、カートにパーティ情報を追加する際に呼び出します。
-   **署名:**

AddPartiesResult AddParties(NotNull AddPartiesRequest request)

-   **入力:**
-   : **カート – 必須\*\*\*\*パーティー - 必須**
-   **出力:**
-   : **Parties** – このカートに付随するすべてのパーティの読み取り専用リスト。
-   :

使用例:

var cartServiceProvider = new CartServiceProvider();
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "John");
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
var partyList = new List<Party>
{
 new Party
 {
 PartyId = "123", FirstName = "Joe", LastName = "Smith",
 Address1 = "123 Street", City = "Ottawa",
 State = "Ontario", Country = "Canada"
 },
 new Party
 {
 PartyId = "456", FirstName = "Jane", LastName = "Smith",
 Address1 = "234 Street", City = "Toronto",
 State = "Ontario", Country = "Canada"
 }
};
var addPartiesRequest = new AddPartiesRequest(cart, partyList);
var addPartiesResult = cartServiceProvider.AddParties(addPartiesRequest);
## RemovePartiesメソッド

-   **名前:****: RemoveParties**
-   **説明:**責任はカートからパーティを外すことです。
-   **使用法:**: 通常はパーティー情報を削除する際に呼び出します。
-   **署名:**

RemovePartiesResult RemoveParties(NotNull RemovePartiesRequest request)

-   **入力:**
-   :\**カート – 必須*政党 – 必須 –\*\*カートから取り除くべき政党のリスト。
-   **出力:**
-   : **Parties** – このカートを除去した後に関連付けられたすべてのパーティの読み取り専用リスト。
-   :

使用例:

var cartServiceProvider = new CartServiceProvider();
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "John");
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
var partyList = new List<Party>
{
 new Party
 {
 PartyId = "123", FirstName = "Joe", LastName = "Smith",
 Address1 = "123 Street", City = "Ottawa",
 State = "Ontario", Country = "Canada"
 },
 new Party
 {
 PartyId = "456", FirstName = "Jane", LastName = "Smith",
 Address1 = "234 Street", City = "Toronto",
 State = "Ontario", Country = "Canada"
 }
};
var addPartiesRequest = new AddPartiesRequest(cart, partyList);
var addPartiesResult = cartServiceProvider.AddParties(addPartiesRequest);
var removePartiesRequest = new RemovePartiesRequest(cart, new List<Party>
{
 partyList0
});
var removePartiesResult = cartServiceProvider.RemoveParties(removePartiesRequest);
## UpdatePartiesメソッド

-   **名前:**: **UpdateParties**
-   **説明:**責任はカート内の当事者リストを更新することです。
-   **使用例:**: 通常、パーティの更新が必要なときに呼び出されます。
-   **署名:**

UpdatePartiesResult UpdateParties(NotNull UpdatePartiesRequest request)

-   **入力:**
-   : **カート – 必須\*\*\*\*Parties – 必要** – カート内の更新すべき政党一覧。
-   **出力:**
-   : **Parties** – アップデート後にこのカートリッジに関連付けられたすべてのパーティの読み取り専用リスト。
-   :

使用例:

var cartServiceProvider = new CartServiceProvider();
var createCartRequest = new CreateOrResumeCartRequest("Autohaus", "John");
var cart = cartServiceProvider.CreateOrResumeCart(createCartRequest).Cart;
var party1 = new Party
{
 PartyId = "123",
 FirstName = "Joe",
 LastName = "Smith",
 Address1 = "123 Street",
 City = "Ottawa",
 State = "Ontario",
 Country = "Canada"
};
var party2 = new Party
{
 PartyId = "456",
 FirstName = "Jane",
 LastName = "Smith",
 Address1 = "234 Street",
 City = "Toronto",
 State = "Ontario",
 Country = "Canada"
};
var partyList = new List<Party> { party1, party2 };

var addPartiesRequest = new AddPartiesRequest(cart, partyList);
var addPartiesResult = cartServiceProvider.AddParties(addPartiesRequest);
party1.Address1 = "678 Road";
party1.City = "London";
var updatePartiesRequest = new UpdatePartiesRequest(cart, new List<Party> { party1 });
var removePartiesResult = cartServiceProvider.UpdateParties(updatePartiesRequest);
## AddPaymentInfoメソッド

-   **名前:**: **AddPaymentInfo**
-   **説明:**支払い情報をカートに追加する責任があります。
-   **用途:**通常はチェックアウトフロー中に呼び出し、注文処理のための支払い情報を追加します。
-   **署名:**

AddPaymentInfoResult AddPaymentInfo(NotNull AddPaymentInfoRequest request)

-   **入力:**
-   :\**カート – 必須*支払い – 必須 – \*\*カートに追加される支払い情報のリスト。
-   **出力:**
-   : **Payments** – 追加後のカートに関連する支払いの読み取り専用リスト。
-   :

使用例:

var cartService = new CartServiceProvider();
var cart = cartService.CreateOrResumeCart(new
 CreateOrResumeCartRequest("MyShop", "Me")).Cart;
var paymentList = new List<PaymentInfo>
{
 new PaymentInfo() { ExternalId = "1", PaymentMethodID = "1"},
 new PaymentInfo() { ExternalId = "2", PaymentMethodID = "2"}
};
var addPaymentRequest = new AddPaymentInfoRequest(cart, paymentList);
var addPaymentResult = cartService.AddPaymentInfo(addPaymentRequest);
## RemovePaymentInfoメソッド

-   **名前:**: **RemovePaymentInfo**
-   **説明:**支払い情報をカートから削除する責任があります。
-   **使用:**通常、ユーザーが支払い情報を変更したいときに呼び出されます。
-   **署名:**

RemovePaymentInfoResult RemovePaymentInfo(NotNull RemovePaymentInfoRequest request)

-   **入力:**:\**カート – 必須*支払い – 必須–\*\*カートから削除される支払い情報のリスト。
-   :
-   **Output:****: Payments** – カートの削除後に関連する支払いの読み取り専用リスト。
-   :
-   :

使用例:

var cartService = new CartServiceProvider();
var cart = cartService.CreateOrResumeCart(new
 CreateOrResumeCartRequest("MyShop", "Me")).Cart;
var paymentList = new List<PaymentInfo>
{
 new PaymentInfo() { ExternalId = "1", PaymentMethodID = "1"},
 new PaymentInfo() { ExternalId = "2", PaymentMethodID = "2"}
};
var addPaymentRequest = new AddPaymentInfoRequest(cart, paymentList);
var addPaymentResult = cartService.AddPaymentInfo(addPaymentRequest);
var removePaymentRequest = new RemovePaymentInfoRequest(cart, new
List<PaymentInfo> {paymentList0});
var removeResult = cartService.RemovePaymentInfo(removePaymentRequest);
## AddShippingInfoメソッド

-   **名前:****: AddShippingInfo**
-   **説明:**配送情報をカートに追加する責任があります。
-   **使用方法:**通常はチェックアウトフロー中に呼び出し、注文処理のための配送情報を追加します。
-   **署名:**

AddShippingInfoResult AddShippingInfo(NotNull AddShippingInfoRequest request)

-   **入力:**
-   :\**カート – 必須*配送情報 – 必須 –\*\*カートに追加する配送情報のリスト。
-   **出力:**
-   : **ShippingInfo** – 追加されたカートに関連する配送情報の読み取り専用リスト。
-   :

使用例:

var cartService = new CartServiceProvider();
var cart = cartService.CreateOrResumeCart(new
 CreateOrResumeCartRequest("MyShop", "Me")).Cart;
var shippingList = new List<ShippingInfo>
{
 new ShippingInfo() { ExternalId = "1", ShippingMethodID = "1"},
 new ShippingInfo() { ExternalId = "2", ShippingMethodID = "2"}
};
var addRequest = new AddShippingInfoRequest(cart, shippingList);
var addResult = cartService.AddShippingInfo(addRequest);
## RemoveShippingInfoメソッド

-   **名前:**: **RemoveShippingInfo**
-   **説明:**カートから配送情報を削除する責任があります
-   **使用方法:**通常、注文処理のために出荷情報を削除するためにチェックアウトフロー中に呼ばれます。
-   **署名:**

RemoveShippingInfoResult RemoveShippingInfo(NotNull RemoveShippingInfoRequest request)

-   **入力:**
-   :\**カート – 必須*配送情報 – 必須 –\*\*カートから削除すべき配送情報のリスト。
-   **出力:**
-   : **ShippingInfo** – カートの削除後に関連する発送情報の読み取り専用リスト。
-   :

使用例:

var cartService = new CartServiceProvider();
var cart = cartService.CreateOrResumeCart(new
 CreateOrResumeCartRequest("MyShop", "Me")).Cart;
var shippingList = new List<ShippingInfo>
{
 new ShippingInfo() { ExternalId = "1", ShippingMethodID = "1"},
 new ShippingInfo() { ExternalId = "2", ShippingMethodID = "2"}
};
var addRequest = new AddShippingInfoRequest(cart, shippingList);
var addPaymentResult = cartService.AddShippingInfo(addRequest);
var removeRequest = new RemoveShippingInfoRequest(cart, new
List<ShippingInfo> {shippingList0});
var removeResult = cartService.RemoveShippingInfo(removeRequest);