---
title: "ロイヤルティプログラムとカードサービスプロバイダー"
slug: "loyalty-programs-and-cards-service-provider"
abstract: ""
---
# ロイヤルティプログラムとカードサービスプロバイダー

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

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

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

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

## GetLoyaltyProgramメソッド

GetLoyaltyProgramメソッドは、外部商取引システムに対して特定の忠実プログラムをクエリするために使われます。

**名前:**

ゲットロイヤルティプログラム

**説明:**

指定された条件に合致するロイヤルティプログラムを取得します。 GetLoyaltyProgram パイプラインを呼び出します。

**使用方法:**

特定のロイヤルティプログラムが必要な時に連絡します。  
  
例としては以下のものがあります:  
  

-   特定のショップとプログラムIDの取得について。
-   特定のショップ、プログラムID、ユーザー向けのプログラムを取得すること。

**署名:**

GetLoyaltyProgramResult GetLoyaltyProgram(\[NotNull\]GetLoyaltyProgramRequest request)

**入力:**

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

\*\*ProgramId –\*\*返却が必要なプログラムのID。

\*\*ショップ名 –\*\*オプション。カートを探すための店舗名。

**出力:**

**LoyaltyProgram****–** リクエストされたロイヤルティプログラム。  
  
オブジェクトはリクエストで指定された条件に合致するプログラムを表します。

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

使用例:

var loyaltyProgramService = new LoyaltyProgramServiceProvider();
var request = new GetLoyaltyProgramRequest("myShop", "John");
var result = loyaltyProgramService.GetLoyaltyProgram(request);
## GetLoyaltyProgramsメソッド

GetLoyaltyProgramsメソッドは、外部の商取引システムに対してロイヤルティプログラムのリストを検索するために使われます。

**名前:**

ゲットロイヤルティプログラム

**説明:**

指定された条件に合致するロイヤルティプログラムを取得します。 GetLoyaltyPrograms パイプラインを呼び出します。

**使用方法:**

ロイヤルティプログラムのリストが必要なときに電話します。  
  
例としては以下のものがあります:  
  

-   ショップ用のプログラムを手に入れること。
-   特定のショップでユーザーのためにプログラムを入手すること。

**署名:**

GetLoyaltyProgramsResult GetLoyaltyPrograms(\[NotNull\]GetLoyaltyProgramsRequest request)

**入力:**

\*\*UserID – 任意 -\*\*必要な関連プログラムのユーザーのIDを返す。

\*\*ショップ名 –\*\*カート検索用のショップ名

**出力:**

**ReadOnlyCollection–** LoyaltyProgramSummaryオブジェクトのコレクション  
  
リストは、リクエストで指定された条件に合致するプログラムを表しています。

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

使用例:

var loyaltyProgramService = new LoyaltyProgramServiceProvider();
var request = new GetLoyaltyProgramsRequest("myShop", "John");
var result = loyaltyProgramService.GetLoyaltyPrograms(request);
## GetLoyaltyProgramStatusメソッド

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

**名前:**

GetLoyaltyProgramStatus

**説明:**

特定のプログラムに対してロイヤルティカードの状態を取得します。 GetLoyaltyProgramStatus パイプラインに連絡します。

**使用方法:**

ロイヤルティカードプログラムの状態が必要なときに電話します。  
  
例としては以下のものがあります:  
  

-   すべてのプログラムに対してロイヤルティカードの状態を取得すること。
-   特定のプログラムに対してロイヤルティカードのステータスを取得すること。

**署名:**

GetLoyaltyProgramStatusResult GetLoyaltyProgramStatus(\[NotNull\]GetLoyaltyProgramStatusRequest request)

**入力:**

**ロイヤルティカード**\*\*–\*\*ステータスを確認するためのロイヤルティカード。

**ProgramIds**\*\*– オプション – \*\*ステータスを確認するためのプログラムIDのオプションリスト。

**出力:**

**ReadOnlyCollection–** 特定のプログラムに対するステータスのコレクション。

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

使用例:

var loyaltyProgramService = new LoyaltyProgramServiceProvider();
var loyaltyCard = new LoyaltyCard
{
 CardNumber = "1234567890",
 CustomerId = "John",
 ProgramIds = new List<string>(new List<string> {"ProgamId1"})
};
var request = new GetLoyaltyProgramStatusRequest(loyaltyCard);
var result = loyaltyProgramService.GetLoyaltyProgramStatus(request);
## JoinLoyaltyProgramメソッド

JoinLoyaltyProgramメソッドは、外部コマースシステム内のロイヤルティプログラムにユーザーを追加するために使用されます。

**名前:**

JoinLoyaltyProgram

**説明:**

指定された条件でユーザーをロイヤルティプログラムに参加します。 JoinLoyaltyProgram パイプラインを呼び出します。

**使用方法:**

ユーザーがロイヤリティプログラムに参加する必要があるときに呼び出されます。  
  
例としては以下のものがあります:  
  

-   店舗内のすべてのロイヤルティプログラムにユーザーを登録してください。
-   店舗内の特定のロイヤルティプログラムにユーザーを登録します。

**署名:**

JoinLoyaltyProgramResult JoinLoyaltyProgram(\[NotNull\]JoinLoyaltyProgramRequest request)

**入力:**

**UserId**\*\*-\*\*プログラムに参加する必要があるユーザーのID。

**ShopName**\*\*–\*\*ユーザーがプログラムに登録しているショップ。

\*\*ProgramId – 任意。\*\*ユーザーを追加するプログラム。

**出力:**

**ロイヤルティカード** **– プログラム内で作成されたロイヤルティカードです。**

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

使用例:

var loyaltyProgramService = new LoyaltyProgramServiceProvider();
var request = new JoinLoyaltyProgramRequest("Rob", "webShop");
var result = loyaltyProgramService.JoinLoyaltyProgram(request);
var loyaltyCard = result.LoyaltyCard;
## GetLoyaltyCardsメソッド

GetLoyaltyCards方式は、ロイヤルティカードのコレクションを返却するために使われます。

**名前:**

ゲットロイヤルティカード

**説明:**

指定された条件に合致するロイヤルティカードを受け取る。 GetLoyaltyCards パイプラインを呼び出す。

**使用方法:**

ロイヤルティカードのリストまたは1枚のロイヤルティカードが必要な場合に電話します。  
  
例としては以下のものがあります:  
  

-   店舗でユーザー分のカードをすべて手に入れましょう。
-   店舗で特定のユーザー用のカードを用意しましょう。

**署名:**

GetLoyaltyCards結果 GetLoyaltyCards(\[NotNull\]GetLoyaltyCardsRequest request)

**入力:**

**UserId**\*\*-\*\*カードを取得しるべきユーザーのID。

\*\*ショップネーム -\*\*カード検索用のショップ名。

**CardID – 任意**\*\*-\*\*特定のカードを探している場合のID。

**出力:**

**ReadOnlyCollection–** 指定された条件に合致するカードが見つかりました。

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

使用例:

var loyaltyProgramService = new LoyaltyProgramServiceProvider();
var request = new GetLoyaltyCardsRequest("Rob", "WebShop");
var result = loyaltyProgramService.GetLoyaltyCards(request);
## GetLoyaltyCardTransactionsメソッド

GetLoyaltyCardTransactionsメソッドは特定のカードの取引リストを返します。

**名前:**

GetLoyaltyCardTransactions

**説明:**

指定された条件に合致するトランザクションのリストを取得します。 GetLoyaltyCardTransactions パイプラインを呼び出します。

**使用方法:**

カードの取引リストが必要なときに呼び出します。

**署名:**

GetLoyaltyCardTransactions結果 GetLoyaltyCardTransactions(\[NotNull\]GetLoyaltyCardTransactionsRequest request)

**入力:**

**ロイヤルティカード**\*\*–\*\*取引を取得するためのロイヤルティカード。

**出力:**

**ReadOnlyCollection–** カードの取引のコレクションです。

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

使用例:

var loyaltyProgramService = new LoyaltyProgramServiceProvider();

var loyaltyCard = new LoyaltyCard
{
 CardNumber = "1234567890",
 CustomerId = "Mike",
 ProgramIds = new List<string> {"ProgamId1"}
};
var request = new GetLoyaltyCardTransactionsRequest(loyaltyCard);
var result = loyaltyProgramService.GetLoyaltyCardTransactions(request);