---
title: "Orders API(C#)での作業"
slug: "work-with-the-orders-api--c--"
abstract: "Sitecore XCオーダー APIを使って他のビジネスシステムと統合し、注文関連データを交換する方法。"
---
# Orders API(C#)での作業

Ordersサービスは、RESTfulでOData準拠のAPIを提供しており、他のビジネスシステムと統合して注文関連データを交換することができます。このトピックでは、Orders APIを使ってC#プログラミング言語を使ったCommerce統合を構築する例を提供します。

> !注このトピックに含まれるC#コード例は、[Sitecore Commerce Engine Software Development Kit](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-commerce/compile-the-sample-commerce-engine.html "Compile the sample Commerce Engine")(Sitecore.Commerce.Engine.SDK)にパッケージ化されたSitecore.Commerce.Sample.Consoleサンプルに基づいています。

コンテナコール内にはCommerce Engineの操作やコマンド(C#を使用)を含める必要があります(この [例](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-commerce/build-a-container--c--.html "Build a container (C#)")参照)。

Sitecore Experience Commerce(XC)システムでいかなる操作を実行するには、発信者はまずSitecore Identityサーバーから [有効なベアラー認証トークンを取得する](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-commerce/obtain-an-authentication-token--c--.html "Obtain an authentication token (C#)") 必要があります。

> !注注文の履行や支払いの処理など、[Orders Views and Actions API](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-commerce/work-with-the-orders-entity-views-and-actions-api--c--.html "Work with the Orders Entity Views and Actions API (C#)")を使えば、他の操作もプログラム的に実行できます。

## 注文を作成する(C#)

必要な商品、フルフィルメント、支払い情報がすべて揃っているショッピングカートに注文APIを使えば注文を作成できます。

注文を作成するには、CreateOrderクエリを使用します。クエリはショッピングカートのID(cartId)と買い物客のメールアドレスを提供しなければなりません。例えば:

Container container = AuthoringContainer();
DataServiceActionQuerySingle<CommerceCommand> actionQuery = container.CreateOrder("cartId", "user@email.com");
CommerceCommand command = Proxy.DoCommand(actionQuery);
string orderId = command.Models.OfType<CreatedOrder>().FirstOrDefault().OrderId;
## 注文をキャンセルする(C#)

注文ステータスが *保留*中または *保留中*の場合、注文をキャンセルするためにOrders APIを使うことができます。

注文をキャンセルするには:

Container container = AuthoringContainer();
DataServiceActionQuerySingle<CommerceCommand> actionQuery = container.CancelOrder(orderId);
CommerceCommand command = Proxy.DoCommand(actionQuery);
## 注文をカスタムステータス(C#)に設定してください

注文をカスタムステータスに設定できます。

> !重要デフォルトでは、Commerce Orderフローは注文のステータスに基づいています。注文の状態は、End to Endプロセスフローで次に取るべき処理を決定します。カスタムオーダーステータスの導入は、Commerce Orderの通常のシステム内での流れに影響を与えることを念頭に置いてください。

注文を顧客ステータスに設定するには、C#を使って:

DataServiceActionQuerySingle<CommerceCommand> actionQuery = container.SetOrderStatus(orderId, "CustomStatus");
CommerceCommand command = Proxy.DoCommand(actionQuery);
## 注文から販売活動を取得する(C#)

Sitecore XC注文の支払い情報が更新されるたびに販売活動を生成します。

注文の販売活動をC#で取得するには:

DataServiceQuery<SalesActivity> actionQuery = container.GetOrderSalesActivities(orderId);
IEnumerable<SaleActivity> salesActivities = Proxy.Execute(actionQuery);