---
title: "注文サービス方法"
slug: "order-service-methods"
abstract: ""
---
# 注文サービス方法

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

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

## SubmitVisitorOrderメソッド

-   **名前:**: 送信訪問者注文
-   **説明:**ショッピングカートに基づいて注文を作成します。 SubmitVisitorOrder パイプラインを呼び出します。
-   **使用方法:**訪問者が注文を作成するためにショッピングカートを提出した際にSitecoreから呼び出されます。
-   **署名:**

SubmitVisitorOrderResult SubmitVisitorOrder(SubmitVisitorOrderRequest request)

-   **入力:**
-   : **カート**―カート。ショッピングカートの一例。
-   **出力:**
-   : **Order** – Cart。成功すると注文が返され、その注文はカートから継承されるため問題なく動作しますが、注文としてキャストする必要があります。失敗した場合は、cartオブジェクトのインスタンスが返され、より多くのデータやエラーコメントで修正・補強される可能性があります。
-   : **SystemMessages** - 外部システムからのメッセージの収集。

使用例:

var cartService = new CartServiceProvider();
// get the cart
var cart = cartService.CreateOrResumeCart(new CreateOrResumeCartRequest("MyShop", "Me")).Cart;
// add parties, payment and shipping info
cart.Parties = new List<Party>
{
 new Party() { ExternalId = "1", PartyId = "{F73904C0-2A45-4A2F-A99B-F934ABDCFC99}", FirstName = "Joe", LastName = "Smith", Address1 = "123 Street", City = "Ottawa", State = "Ontario", Country = "Canada" },
 new Party() { ExternalId = "2", PartyId = "{294B7DD1-7397-4322-996C-E87E592EF621}", FirstName = "Jane", LastName = "Smith", Address1 = "234 Street", City = "Toronto", State = "Ontario", Country = "Canada" }
};
cart.BuyerCustomerParty = new CartParty() { ExternalId = "1", PartyID = "{F73904C0-2A45-4A2F-A99B-F934ABDCFC99}" };
cart.AccountingCustomerParty = new CartParty() { ExternalId = "2", PartyID = "{294B7DD1-7397-4322-996C-E87E592EF621}" };
cart.Payment = new List<PaymentInfo>
{
 new PaymentInfo() { ExternalId = "1" },
 new PaymentInfo() { ExternalId = "2" },
};
cart.Shipping = new List<ShippingInfo>
{
 new ShippingInfo() { ExternalId = "1" },
 new ShippingInfo() { ExternalId = "2" },
};
cartService.SaveCart(new SaveCartRequest(cart));
var orderService = new OrderServiceProvider();
var request = new SubmitVisitorOrderRequest(cart);
var result = orderService.SubmitVisitorOrder(request);
var order = result.Order;
var orderId = order.OrderID;
## GetAvailableCountriesメソッド

この方法はECSがサポートする国のリストを返します。

-   **名前:**: GetAvailableCountries
-   **説明:**ECSが支援するすべての国の一覧を提供します。
-   **使用:**: Sitecoreから呼び出し
-   **署名:**

GetAvailableCountriesResult GetAvailableCountries( GetAvailableCountriesRequest request)

-   **入力:**
-   **出力:**
-   : **SystemMessages -** 外部システムからの国々の収集。

使用例:

var orderService = new OrderServiceProvider();
var request = new GetAvailableCountriesRequest();
var result = orderService.GetAvailableCountries(request);
## GetAvailableRegionsメソッド

ECSが支援する国の地域一覧を返します。

-   **名前:****: GetAvailableRegions**
-   **説明:**ECSが支援する国の全地域の一覧を提供します。
-   **使用:**: Sitecoreから呼び出し
-   **署名:**

GetAvailableRegionsResult GetAvailableRegions( GetAvailableRegionsRequest request)

-   **入力:**
-   : CountryCode – 地域を返送する国。
-   **出力:**
-   : **SystemMessages -** 外部システムからの国々の収集。

使用例:

var orderService = new OrderServiceProvider();
var request = new GetAvailableRegionsRequest(“Canada”);
var result = orderService.GetAvailableRegions(request);
## GetVisitorOrderメソッド

-   **名前:****: GetVisitorOrder(注文**取得)
-   **説明:**訪問者が設定したIDで注文を受け取ります。 GetVisitorOrder パイプラインを呼び出します。
-   **使用例:**特定の注文に注文詳細が必要な場合にSitecoreから呼び出します。
-   **署名:**

GetVisitorOrderResult GetVisitorOrder(GetVisitorOrderRequest request)

-   **入力:**
-   :\*\*ショップネーム –\*\*ショップの名前。
-   : **OrderId** – 注文のID。
-   : **CustomerID – 必須**顧客/訪問者/連絡先のID。顧客IDが提供されない場合、訪問者がすべての顧客の注文にアクセスできる潜在的なセキュリティリスクがあります。
-   **出力:**
-   : **Order** – 注文オブジェクトのインスタンスが返されます。注文オブジェクトは外部商取引システムによって作成されます。
-   : **SystemMessages** - 外部システムからのメッセージの収集。

使用例:

var orderService = new OrderServiceProvider();
// need a valid order id for the first param
var visitorOrderRequest = new GetVisitorOrderRequest("Order\_7777", "Me", "MyShop");
var result = orderService.GetVisitorOrder(visitorOrderRequest);
## GetVisitorOrdersメソッド

-   **名前:****GetVisitorOrders**
-   **説明:**: 指定された訪問者によって発信された注文の要約データを取得します。 GetVisitorOrders パイプラインを呼び出します。
-   **使用方法:**訪問者の注文履歴が必要な場合にSitecoreから呼び出します。
-   **署名:**

GetVisitorOrdersResult GetVisitorOrders(GetVisitorOrdersRequest request)

-   **入力:**
-   :\*\*店名 -\*\*店の名前。
-   : \*\*CustomerId –\*\*買い手の顧客当事者のID。
-   **出力:**
-   : **IReadOnlyCollection –** 注文オブジェクトのインスタンスが返されます。注文オブジェクトは外部の商取引システムによって作成されます。
-   : **SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var orderService = new OrderServiceProvider();
var visitorOrdersRequest = new GetVisitorOrdersRequest("Me", "MyShop");
var result = orderService.GetVisitorOrders(visitorOrdersRequest);
## OrderStatusChangedメソッド

-   **名前::** **OrderStatusChanged(変更済み)**
-   **説明:**注文のステータスに変更があったことをSitecoreに通知するために使用されました。
-   **使用:**: 注文のステータス変更をSitecoreに通知するためにSitecoreから呼び出し。
-   **署名:**

OrderStatusChangedResult OrderStatusChanged(OrderStatusChangedRequest request)

-   **Input:**: **OrderId** - ステータスが変更された注文のID。
-   : **CustomerId** - 注文に関連付けられた顧客のID。
-   : **OrderStatus** – 注文の新しい状態。
-   **出力:**

使用例:

var orderService = new OrderServiceProvider();
var visitorOrdersRequest = new GetVisitorOrdersRequest("Me", "MyShop");
var result = orderService.GetVisitorOrders(visitorOrdersRequest);
## 順序付け直し方法

-   **名前:****: 再注文**
-   **説明:**以前に注文した商品を1つ以上の商品を顧客の現在のカートに追加します。これが reorder パイプラインを呼び出します。
-   **使用:**顧客が既に注文した商品を1つ以上再注文したい場合に呼ばれます。
-   **署名:**

CartResultReorder(ReorderRequest request)

-   **入力:**
-   :\*\*ショップネーム –\*\*ショップの名前。
-   : \*\*OrderId –\*\***必須**注文のID。
-   : **CustomerID – 必須**顧客/訪問者/連絡先のID。顧客IDが提供されない場合、訪問者がすべての顧客の注文にアクセスできる潜在的なセキュリティリスクがあります。
-   : **ReorderLineExternalIds – オプション**再順序付けされる注文行の外部IDです。指定がなければ、順序内のすべての項目が並べ替えられます。
-   : **ForceNewLines – オプション**trueの場合、カートライン商品は顧客カート内の新しいカートラインとして追加されます。そうでなければ、可能な限り既存のカートラインに統合されます。注意:このパラメータは外部コマースシステムがこの機能をサポートしている場合のみサポートされます。
-   **出力:**
-   **: Cart** **– お客様の新しいカートの中身が返品されたインスタンス。**
-   : \*\*AddedCartLineExternalIds –\*\*顧客のカートに追加された行のIDを含むリスト。
-   : **SystemMessages -** 外部システムからのメッセージの収集。

使用例:

var orderService = new OrderServiceProvider();
// need a valid order id for the second param
var reorderRequest = new ReorderRequest("Me", "Order\_7777");
var result = orderService.Reorder(reorderRequest);
## VisitorCancelOrderメソッド

この方法の目的は、既存注文がウェブショップに存在し、ビジネスロジックがそれを妨げない場合(例えば注文がすでに処理または発送済み)であれば、訪問者がキャンセルできるようにすることです。

この方法は、注文履歴ビューから注文詳細を表示し、顧客が注文をキャンセルした場合に通常トリガーされます。

-   **名前:**: **訪問者注文キャンセル**
-   **説明:**訪問者が行った注文をキャンセルするために使用されます。注文がキャンセルされるかどうかの判断は、外部コマースシステムのビジネスロジックに委ねられています。通常、注文は店舗のオーナーが処理・処理を開始した後はキャンセルできません。キャンセルできない場合は、返送されたSystemMessagesに反映されなければなりません。
-   **使用:**: Sitecoreから呼び出し。
-   **署名:**

VisitorCancelOrderResult VisitorCancelOrder(VisitorCancelOrderRequest request)

-   **入力:**
-   : **ショップネーム – 必須**ショップ名。
-   : **OrderId** **– 必須**命令のID。
-   : **CustomerID – 必須**の顧客/訪問者のID。顧客IDが提供されない場合、訪問者がすべての顧客の注文にアクセスできる潜在的なセキュリティリスクがあります。
-   : **OrderLineExternalIds – オプション**キャンセルすべき注文ラインの外部IDリスト。指定しない場合、注文のすべてのラインはキャンセルされます。NoteConnectはデフォルトでこのパラメータをサポートしていません。このプロパティを扱うのは外部コマースシステムコネクターの責任です。
-   **出力:**
-   **: SystemMessages** **- 外部システムからのメッセージの収集。**
-   : \*\*キャンセルされた注文 –\*\*キャンセルされた注文を含みます。注:この結果プロパティを埋め込むのは外部のコマースシステムコネクタの責任です。
-   : **CancellationStatus –** 注文キャンセル操作の状態(Granted、Deniedなど)を示す拡張可能な列挙値です。注:この結果プロパティを埋め込むのは外部商取引システムコネクターの責任です。

使用例:

var orderService = new OrderServiceProvider();
// need a valid order id for the first param
var visitorCancelOrder = new VisitorCancelOrderRequest("Order\_7777", "Me", "MyShop");
var result = orderService.VisitorCancelOrder(visitorCancelOrder);