顧客注文にアドオンを含むカートを作成するCreate a cart with add-ons to a customer order

適用対象:Applies to:

  • パートナー センターPartner Center

カートを通じてアドオンを購入できます。You can purchase add-ons through a cart. 現在販売可能なものの詳細については、 Cloud Solution Provider プログラムのパートナープランに関する情報を参照してください。For more information about what is currently available to sell, see Partner offers in the Cloud Solution Provider program.

前提条件Prerequisites

  • パートナー センターの認証に関するページで説明している資格情報。Credentials as described in Partner Center authentication. このシナリオでは、スタンドアロンアプリとアプリ + ユーザー資格情報の両方を使用した認証がサポートされています。This scenario supports authentication with both standalone App and App+User credentials.

  • 顧客 ID です (customer-tenant-id)。A customer ID (customer-tenant-id). お客様の ID がわからない場合は、パートナー センターのダッシュボードで検索できます。If you don't know the customer's ID, you can look it up in the Partner Center dashboard. パートナー センター メニューの [CSP] を選択し、 [顧客] を選択します。Select CSP from the Partner Center menu, followed by Customers. 顧客一覧からお客様を選び、 [アカウント] を選択します。Select the customer from the customer list, then select Account. お客様のアカウント ページで、 [顧客のアカウント情報] セクションの Microsoft ID を探します。On the customer’s Account page, look for the Microsoft ID in the Customer Account Info section. Microsoft ID は、顧客 ID (customer-tenant-id) と同じです。The Microsoft ID is the same as the customer ID (customer-tenant-id).

C#C#

カートでは、基本プランとそれに対応するアドオンを購入できます。A cart enables the purchase of a base offer and its corresponding add-ons. カートを作成するには、次の手順に従います。Follow these steps to create a cart:

  1. カートオブジェクトをインスタンス化します。Instantiate a Cart object.

  2. 基本プランを表す CartLineItem オブジェクトの一覧を作成し、そのリストをカートの LineItems プロパティに割り当てます。Create a list of CartLineItem objects which represent the base offer(s), and assign the list to the cart's LineItems property.

  3. 各基本プランのカート明細項目の下で、 AddOnItems の一覧に、その基本プランに対して購入されるアドオンを表す他の CartLineItem オブジェクトを入力します。Under each base offer's cart line item, populate the list of AddOnItems with other CartLineItem objects that each represent an add-on that will be purchased against that base offer.

  4. Iaggregatepartner.customersを使用して買い物かご操作へのインターフェイスを取得し、顧客 ID を指定して ICustomerCollectionメソッドを呼び出して顧客を識別し、買い物かご プロパティからインターフェイスを取得します。Obtain an interface to cart operations by using IAggregatePartner to call the ICustomerCollection.ById method with the customer ID to identify the customer, and then retrieving the interface from the Cart property.

  5. 最後に、 create または createasync メソッドを呼び出してカートを作成します。Finally, call the Create or CreateAsync method to create the cart.

C の # 例C# example

// IAggregatePartner partnerOperations;
// string customerId;

var cart = new Cart()
    {
        LineItems = new List<CartLineItem>()
        {
            new CartLineItem()
            {
                Id = 0,
                CatalogItemId = "A_base_offer_ID",
                FriendlyName = "Myofferpurchase",
                Quantity = 3,
                BillingCycle = BillingCycleType.Monthly,
                AddonItems = new List<CartLineItem>
                {
                    new CartLineItem
                    {
                        Id = 1,
                        CatalogItemId = "An_addon_item_ID",
                        BillingCycle = BillingCycleType.Monthly,
                        Quantity = 2,
                    },
                    new CartLineItem
                    {
                        Id = 2,
                        CatalogItemId = "Another_addon_item_ID",
                        BillingCycle = BillingCycleType.Monthly,
                        Quantity = 3
                    }
                }
            }
        }
    };

var createdCart = partnerOperations.Customers.ById(customerId).Carts.Create(cart);

次の手順に従ってカートを作成します。これにより、既存の基本サブスクリプションに対してアドオンを購入できます。Follow these steps to create a cart which will enable the purchase of add-on(s) against existing base subscription(s):

  1. キー "ParentSubscriptionId" を使用して、 ProvisioningContext プロパティにサブスクリプション ID を含む新しい CartLineItem を使用して カート を作成します。Create a Cart with a new CartLineItem containing the subscription ID in the ProvisioningContext property with key "ParentSubscriptionId".

  2. Create メソッドまたは createasync メソッドを呼び出します。Call the Create or CreateAsync method.

// IAggregatePartner partnerOperations;
// string selectedCustomerId;

var cart = new Cart()
    {
        LineItems = new List<CartLineItem>()
        {
            new CartLineItem()
            {
                Id = 0,
                CatalogItemId = "An_addon_item_ID",
                ProvisioningContext = new Dictionary<string, string>
                {
                    {
                        "ParentSubscriptionId", "An_existing_subscription_Id"
                    }
                },
                Quantity = 1,
                BillingCycle = BillingCycleType.Annual,
            }
        }
    };

var createdCart = partnerOperations.Customers.ById(selectedCustomerId).Carts.Create(cart);

REST 要求REST request

要求の構文Request syntax

認証方法Method 要求 URIRequest URI
POSTPOST {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1{baseURL}/v1/customers/{customer-id}/carts HTTP/1.1

URI パラメーターURI parameter

次のパス パラメーターを使用して顧客を指定します。Use the following path parameter to identify the customer.

名前Name 種類Type 必須Required 説明Description
顧客 idcustomer-id stringstring はいYes 顧客を識別する GUID 形式の顧客 id。A GUID formatted customer-id that identifies the customer.

要求ヘッダーRequest headers

詳細については、「パートナー センター REST ヘッダー」を参照してください。For more information, see Partner Center REST headers.

[要求本文]Request body

次の表では、要求本文に含まれる カート のプロパティについて説明します。This table describes the Cart properties in the request body.

プロパティProperty 種類Type 必須Required 説明Description
idid stringstring いいえNo カートが正常に作成されたときに提供されるカート識別子。A cart identifier that is supplied upon successful creation of the cart.
前のタイムスタンプcreationTimeStamp DateTimeDateTime いいえNo カートが作成された日付 (日付/時刻形式)。The date the cart was created, in date-time format. カートが正常に作成されたときに適用されます。Applied upon successful creation of the cart.
lastModifiedTimeStamplastModifiedTimeStamp DateTimeDateTime いいえNo カートが最後に更新された日付 (日付/時刻形式)。The date the cart was last updated, in date-time format. カートが正常に作成されたときに適用されます。Applied upon successful creation of the cart.
expirationTimeStampexpirationTimeStamp DateTimeDateTime いいえNo カートの有効期限が切れる日付 (日付と時刻の形式)。The date the cart will expire, in date-time format. カートの作成が成功したときに適用されます。Applied upon successful creation of cart.
lastModifiedUserlastModifiedUser stringstring いいえNo カートを最後に更新したユーザー。The user who last updated the cart. カートの作成が成功したときに適用されます。Applied upon successful creation of cart.
lineItemslineItems オブジェクトの配列Array of objects Yes CartLineItemリソースの配列。An Array of CartLineItem resources.

次の表では、要求本文の CartLineItem プロパティについて説明します。This table describes the CartLineItem properties in the request body.

プロパティProperty 種類Type 説明Description
idid stringstring カートの品目の一意の識別子。A unique identifier for a cart line item. カートの作成が成功したときに適用されます。Applied upon successful creation of cart.
catalogIdcatalogId stringstring カタログ項目の識別子。The catalog item identifier.
friendlyNamefriendlyName stringstring 省略可能。Optional. 明確に区別できるように、パートナーによって定義された項目のフレンドリ名。The friendly name for the item defined by the partner to help disambiguate.
数量quantity INTint ライセンスまたはインスタンスの数。The number of licenses or instances.
currencyCodecurrencyCode stringstring 通貨コード。The currency code.
billingCyclebillingCycle オブジェクトObject 現在の期間に設定されている請求サイクルの種類。The type of billing cycle set for the current period.
participantsparticipants オブジェクトの文字列ペアの一覧List of Object String pairs 購入時のレコードの PartnerId (MPNID) のコレクション。A collection of PartnerId on Record (MPNID) on the purchase.
provisioningContextprovisioningContext Dictionary<string、string>Dictionary<string, string> プランのプロビジョニングに使用されるコンテキスト。A context used for provisioning of offer.
orderGrouporderGroup stringstring 一緒に配置できる項目を示すグループ。A group to indicate which items can be placed together.
addonItemsaddonItems CartLineItem オブジェクトの一覧List of CartLineItem objects 親のカートの品目の購入から得られる基本サブスクリプションに対して購入されるアドオンのカート品目のコレクション。A collection of cart line items for add-ons that will be purchased towards the base subscription that results from the parent cart line item's purchase.
errorerror オブジェクトObject エラーが発生した場合にカートが作成された後に適用されます。Applied after cart is created in case of an error.

要求の例 (新しい基本サブスクリプション)Request example (new base subscription)

次の REST の例は、新しい基本サブスクリプションのアドオン項目を含むカートを作成する方法を示しています。The following REST example shows how to create a cart with add-on items for a new base subscription.

POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
MS-CorrelationId: f73baf70-bbc3-43d0-8b29-dffa08ff9511

{
    "LineItems": [
        {
            "Id":0,
            "CatalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
            "FriendlyName":"Myofferpurchase",
            "Quantity":3,
            "BillingCycle":"monthly",
            "AddonItems": [
                {
                    "Id":1,
                    "CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
                    "Quantity":2,
                    "BillingCycle":"monthly"
                },
                {
                    "Id":2,
                    "CatalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
                    "Quantity":3,
                    "BillingCycle":"monthly"
                }
            ]
        }
    ]
}

要求の例 (既存の基本サブスクリプション)Request example (existing base subscription)

次の REST の例は、既存の基本サブスクリプションにアドオンを追加する方法を示しています。The following REST example show how to append add-ons to an existing base subscription.

POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
MS-CorrelationId: 182474ba-7303-4d0f-870a-8c7fba5ccc4b

{
    "LineItems": [
        {
            "Id":0,
            "CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
            "Quantity":1,
            "BillingCycle":"annual",
            "ProvisioningContext":{"ParentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"}
        }
    ]
}

REST 応答REST response

成功した場合、このメソッドは、応答本文で設定された カート リソースを返します。If successful, this method returns the populated Cart resource in the response body.

応答の成功とエラーのコードResponse success and error codes

各応答には、成功または失敗を示す HTTP ステータス コードと、追加のデバッグ情報が付属しています。Each response comes with an HTTP status code that indicates success or failure and additional debugging information. このコード、エラーの種類、追加のパラメーターを読み取るには、ネットワーク トレース ツールを使用します。Use a network trace tool to read this code, error type, and additional parameters. 完全な一覧については、エラー コードに関するページを参照してください。For the full list, see Error Codes.

応答の例 (新しい基本サブスクリプション)Response example (new base subscription)

HTTP/1.1 201 Created
Content-Length: 958
Content-Type: application/json
MS-CorrelationId: f73baf70-bbc3-43d0-8b29-dffa08ff9511
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:29:05 GMT

{
    "id":"dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
    "creationTimestamp":"2018-11-01T22:29:03.6900182Z",
    "lastModifiedTimestamp":"2018-11-01T22:29:03.6900182Z",
    "expirationTimestamp":"2018-11-01T22:44:05.0025799Z",
    "lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
    "status":"Active",
    "lineItems": [
        {
            "id":0,
            "catalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
            "friendlyName":"Myofferpurchase",
            "quantity":3,
            "currencyCode":"USD",
            "billingCycle":"monthly",
            "orderGroup":"OMS-0",
            "addonItems": [
                {
                    "id":1,
                    "catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
                    "quantity":2,
                    "currencyCode":"USD",
                    "billingCycle":"monthly",
                    "orderGroup":"OMS-0"
                },
                {
                    "id":2,
                    "catalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
                    "quantity":3,
                    "currencyCode":"USD",
                    "billingCycle":"monthly",
                    "orderGroup":"OMS-0"
                }
            ]
        }
],
    "links": {
        "self": {
            "uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
            "method":"GET",
            "headers":[
            ]
        }
    },
    "attributes": {
        "objectType":"Cart"
    }
}

応答の例 (既存の基本サブスクリプション)Response example (existing base subscription)

HTTP/1.1 201 Created
Content-Length: 707
Content-Type: application/json
MS-CorrelationId: 182474ba-7303-4d0f-870a-8c7fba5ccc4b
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:46:18 GMT

{
    "id":"4d927e27-93d1-448b-abe5-819b66ecca22",
    "creationTimestamp":"2018-11-01T22:46:16.2996364Z",
    "lastModifiedTimestamp":"2018-11-01T22:46:16.2996364Z",
    "expirationTimestamp":"2018-11-01T23:01:18.7543264Z",
    "lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
    "status":"Active",
    "lineItems": [
        {
            "id":0,
            "catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
            "quantity":1,
            "currencyCode":"USD",
            "billingCycle":"annual",
            "provisioningContext": {
                "parentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"
            },
            "orderGroup":"OMS-0"
        }
    ],
    "links": {
        "self": {
            "uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/4d927e27-93d1-448b-abe5-819b66ecca22",
            "method":"GET",
            "headers":[
            ]
        }
    },
    "attributes": {
        "objectType":"Cart"
    }
}