---
title: "海運サービス提供者"
slug: "shipping-service-provider"
abstract: ""
---
# 海運サービス提供者

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

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

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

配送サービス提供者は、支払いデータとやり取りするための以下の方法を含んでいます。

## GetShippingOptionsメソッド

GetShippingOptions方式は、外部商取引システムに対して配送オプションデータを照会し、複数の配送オプションを返すために使われます。

**名前:**

GetShippingOptions(GetShippingOptions)

**説明:**

カートの配送オプションを把握します。 GetShippingOptions パイプラインに連絡します。

**使用方法:**

配送オプションのリストが必要な場合はお電話ください。  
  
例としては以下のものがあります:  
  

-   利用可能なすべての配送オプションを入手しています。
-   ユーザーのカートの中身の配送オプションを取得すること。

**署名:**

GetShippingOptions結果GetShippingOptions(GetShippingOptionsRequest request)

**入力:**

**カート**\*\*– 任意。\*\*特定のカートで利用可能な配送オプションを確認してください。

**出力:**

**ReadOnlyCollection****<\*\*\*\*ShippingOptions\*\*\*\*> –** リクエストされたシナリオ向けの配送オプションのコレクションです。  
  
ReadOnlyCollection - カート内の異なる項目ごとに利用可能な配送オプション。

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

使用例:

var shippingService = new ShippingServiceProvider();
var request = new GetShippingOptionsRequest();
var result = shippingService.GetShippingOptions(request);
## GetShippingMethodsメソッド

GetShippingMethodsメソッドは、外部の商取引システムに対して出荷データを照会し、特定の支払いオプションのすべての配送方法を取得するために使われます。

**名前:**

GetShipping Methods

**説明:**

指定された条件に合致する配送方法を取得します。 GetShippingMethods パイプラインを呼び出します。

**使用方法:**

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

-   特定の配送オプションの配送方法を取得すること。
-   特定の配送オプションやパーティーの配送方法を入手すること。

**署名:**

GetShippingMethods結果GetShippingMethods(GetShippingMethodsRequest request)

**入力:**

**ShippingOption** – 配送方法を取得できる配送オプション。  
  
**パーティー – 任意** – パーティーごとに選択肢を制限する。

**出力:**

**ReadOnlyCollection** – リクエストされたオプションの配送方法のコレクション。

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

使用例:

var shippingService = new ShippingServiceProvider();
var shippingOption = new ShippingOption
{
 Description = "Super Fast Shipping",
 Name = "SuperFast",
 ShippingOptionType = new ShippingOptionType(1, "Courier"),
 ShopName = "webShop"
};
var request = new GetShippingMethodsRequest(shippingOption);
var result = shippingService.GetShippingMethods(request);
## GetShippingMethodメソッド

GetShippingMethod方式は、ECSから配送方法の詳細を取得するために使われます。

**名前:**

GetShippingtMethod

**説明:**

指定された条件に合致する配送方法の詳細を取得。 GetShippingMethodパイプラインを呼び出します。

**使用方法:**

配送方法の詳細が必要な時に電話します。

**署名:**

GetShippingMethod結果GetShippingMethod(GetShippingMethodRequest request)

**入力:**

**ショップネーム**\*\*–\*\*\*\*オプション –**現在の店の名前です。  
  
**ExternalId**–\*\***必須** – ECS内の配送方法のID。**

**出力:**

**配送方法 –** リクエストされた配送方法

**ShippingMethodPerItem -**

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

使用例:

var provider = (ShippingServiceProvider)Factory.CreateObject("shippingServiceProvider", true);
var request = new GetShippingMethodRequest("Next Day");
var result = provider.GetShippingMethod(request);
## GetPricesForShipmentsメソッド

GetPricesForShipments方式はカート内のすべての商品の可能な配送価格リストを取得するために使われます。

**名前:**

GetPricesForShipments

**説明:**

指定された基準に合致する輸送コストを取得します。 GetPricesForShipments パイプラインを呼び出します。

**使用方法:**

送料リストが必要な場合はお電話ください。

**署名:**

出荷価格取得結果出荷価格取得(GetPricesForShipmentsRequest request)

**入力:**

\*\*ショップ名 -****必須****\-\*\*現在のショップの名前。

\*\*ShippingLookup –\*\***必須** – 配送方法と検索オプションの組み合わせ。

\*\*カート –\*\***必須** – 検索すべき項目が入ったカート。

**出力:**

**ReadOnlyCollection<\*\*\*\*送料\*\*\*\*>** –カート内の商品に割り当てられた送料の集合。

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

使用例:

var shippingLookupList = new List<ShippingLookup>
{
 new ShippingLookup
 {
 LineItemIds = new List<string> { "1", "2" }.AsReadOnly()
 }
};
var cartProvider = (CartServiceProvider)Factory.CreateObject("cartServiceProvider", true);
var cartRequest = new LoadCartRequest("StarterKit", "cartid");
var cartResult = cartProvider.LoadCart(cartRequest);
var cart = cartResult.Cart;
var provider = (ShippingServiceProvider)Factory.CreateObject("shippingServiceProvider", true);
var request = new GetPricesForShipmentsRequest("StarterKit", shippingLookupList, cart);
var result = provider.GetPricesForShipments(request);
if (result.Success && result.ShippingPrices != null)
{
 foreach (var shippingPrice in result.ShippingPrices)
 {
 // handle shipping prices
 }
}