次の方法で共有


間接リセラーの顧客の注文を作成する

間接リセラーの顧客の注文を作成する方法。

前提条件

  • パートナー センターの認証に関するページで説明している資格情報。 このシナリオでは、アプリとユーザーの資格情報を使用した認証のみがサポートされます。

  • 顧客 ID です (customer-tenant-id)。 顧客の ID がわからない場合は、[顧客] ワークスペースを選択し、顧客の一覧から顧客を選択し、[アカウント] を選択して、パートナー センター検索できます。 顧客の [アカウント] ページで、[顧客アカウント情報] セクションで Microsoft ID をします。 Microsoft ID は、顧客 ID (customer-tenant-id) と同じです。

  • 購入するアイテムのオファー識別子。

  • 間接リセラーのテナント識別子。

C#

間接リセラーの顧客の注文を作成するには:

  1. サインインしているパートナーとのリレーションシップを持つ間接リセラーのコレクションを取得します。

  2. 間接リセラー ID と一致するコレクション内の項目に対するローカル変数を取得します。 この手順は、注文を作成するときにリセラーの MpnId プロパティにアクセスするのに役立ちます。

  3. 顧客を記録するために、Order オブジェクトをインスタンス化し、ReferenceCustomerID プロパティを顧客識別子に設定します。

  4. OrderLineItem オブジェクトのリストを作成し、そのリストを注文の LineItems プロパティに割り当てます。 各注文品目には 1 つのプランの購入情報が含まれています。 各品目の PartnerIdOnRecord プロパティに間接リセラーの PartnerID を設定してください。 少なくとも 1 つの注文品目が必要です。

  5. 顧客 ID を指定して IAggregatePartner.Customers.ById メソッドを呼び出して顧客を識別し、Orders プロパティからインターフェイスを取得して、操作を注文するインターフェイスを取得します。

  6. Create メソッドまたは CreateAsync メソッドを呼び出して注文を作成します。

C# の例

// IAggregatePartner partnerOperations;
// string customerId;
// string offerId;
// string indirectResellerId;

// Get the indirect resellers with a relationship to the signed-in partner.
var indirectResellers = partnerOperations.Relationships.Get(PartnerRelationshipType.IsIndirectCloudSolutionProviderOf);

// Find the matching reseller in the collection.
var selectedIndirectReseller = (indirectResellers != null && indirectResellers.Items.Any()) ?
    indirectResellers.Items.FirstOrDefault(reseller => reseller.Id.Equals(indirectResellerId, StringComparison.OrdinalIgnoreCase)) :
    null;

// Prepare the order and populate the PartnerIdOnRecord with the reseller's Partner Id.
var order = new Order()
{
    ReferenceCustomerId = customerId,
    LineItems = new List<OrderLineItem>()
    {
        new OrderLineItem()
        {
            OfferId = offerId,
            FriendlyName = "New offer purchase.",
            Quantity = 5,
            PartnerIdOnRecord = selectedIndirectReseller != null ? selectedIndirectReseller.MpnId : null
        }
    }
};

// Place the order.
var createdOrder = partnerOperations.Customers.ById(customerId).Orders.Create(order);

サンプル: コンソール テスト アプリプロジェクト: パートナー センター SDK サンプル クラス: PlaceOrderForCustomer.cs

REST 要求

要求の構文

認証方法 要求 URI
投稿 {baseURL}/v1/customers/{customer-id}/orders HTTP/1.1

URI パラメーター

次のパス パラメーターを使用して顧客を指定します。

名前 タイプ Required 説明
customer-id string はい 顧客を識別する GUID 形式の文字列。

要求ヘッダー

詳細については、「パートナー センター REST ヘッダー」を参照してください。

要求本文

注文

次の表では、要求本文の Order プロパティについて説明します。

名前 タイプ Required 内容
id string いいえ 注文の正常な作成時に指定される注文識別子。
referenceCustomerId string はい 顧客 ID。
billingCycle string いいえ パートナーがこの注文に対して課金される頻度。 既定値は "Monthly" で、注文が正常に作成されると適用されます。 サポートされる値は、BillingCycleType で検出されたメンバー名です。 注: 年次請求機能はまだ一般公開されていません。 年次請求は、近日中にサポートされる予定です。
lineItems オブジェクトの配列 はい OrderLineItem リソースの配列。
creationDate string いいえ 注文が作成された日付 (日時形式)。 注文が正常に作成されると適用されます。
属性 object いいえ "ObjectType": "Order" が含まれています

OrderLineItem

次の表では、要求本文の OrderLineItem プロパティについて説明します。

名前 タイプ Required 説明
lineItemNumber int はい コレクション内の各品目には、0 からカウント -1 までカウントする、一意の品目番号が与えられます。
offerId string はい オファーの識別子。
subscriptionId string いいえ サブスクリプション識別子です。
parentSubscriptionId string いいえ 省略可能。 アドオン オファーの親サブスクリプションの ID。 PATCH にのみ適用されます。
friendlyName string いいえ 省略可能。 曖昧さをなくすためにパートナーが定義したサブスクリプションのフレンドリ名。
数量 int はい ライセンス ベースのサブスクリプションのライセンス数。
partnerIdOnRecord string いいえ 間接プロバイダーが間接リセラーに代わって注文を行う場合は、間接リセラーの PartnerID のみを このフィールドに設定します (間接プロバイダーの ID は設定しません)。 これにより、インセンティブを正しく計算できます。 リセラー PartnerID の提供に失敗しても、注文は失敗しません。 ただし、リセラーは記録されず、結果としてインセンティブの計算に販売が含まれない可能性があります。
属性 object いいえ "ObjectType":"OrderLineItem" が含まれます。

要求の例

POST https://api.partnercenter.microsoft.com/v1/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/orders HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 02109f46-3ff2-4be4-9f37-b2eb6d58d542
MS-CorrelationId: 85195ae6-3de5-4978-abd4-7be2fbfe4c84
X-Locale: en-US
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 410
Expect: 100-continue

{
    "Id": null,
    "ReferenceCustomerId": "c501c3c4-d776-40ef-9ecf-9cefb59442c1",
    "BillingCycle": "unknown",
    "LineItems": [{
            "LineItemNumber": 0,
            "OfferId": "DB2E705F-B82A-4024-A3D5-D88E12F2DB35",
            "SubscriptionId": null,
            "ParentSubscriptionId": null,
            "FriendlyName": "New offer purchase.",
            "Quantity": 5,
            "PartnerIdOnRecord": "4847383",
            "Attributes": {
                "ObjectType": "OrderLineItem"
            }
        }
    ],
    "CreationDate": null,
    "Attributes": {
        "ObjectType": "Order"
    }
}

REST 応答

成功した場合、応答本文には、設定された Order リソースが含まれます。

応答の成功とエラーのコード

各応答には、成功または失敗を示す HTTP ステータス コードと、追加のデバッグ情報が付属しています。 このコード、エラーの種類、追加のパラメーターを読み取るには、ネットワーク トレース ツールを使用します。 完全な一覧については、パートナー センターのエラー コードを参照してください

応答の例

HTTP/1.1 201 Created
Content-Length: 831
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 85195ae6-3de5-4978-abd4-7be2fbfe4c84
MS-RequestId: 02109f46-3ff2-4be4-9f37-b2eb6d58d542
MS-CV: Nd3Oum/L5EywtKQK.0
MS-ServerId: 020021921
Date: Mon, 10 Apr 2017 23:02:24 GMT

{
    "id": "3eddcac6-63b2-4c40-b0b6-f47e18301492",
    "referenceCustomerId": "c501c3c4-d776-40ef-9ecf-9cefb59442c1",
    "billingCycle": "monthly",
    "lineItems": [{
            "lineItemNumber": 0,
            "offerId": "DB2E705F-B82A-4024-A3D5-D88E12F2DB35",
            "subscriptionId": "42226ED6-070A-4E0F-B80C-4CDFB3E97AA7",
            "friendlyName": "New offer purchase.",
            "quantity": 5,
            "partnerIdOnRecord": "4847383",
            "links": {
                "subscription": {
                    "uri": "/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/subscriptions/42226ED6-070A-4E0F-B80C-4CDFB3E97AA7",
                    "method": "GET",
                    "headers": []
                }
            }
        }
    ],
    "creationDate": "2017-04-10T16:02:25.983-07:00",
    "links": {
        "self": {
            "uri": "/customers/c501c3c4-d776-40ef-9ecf-9cefb59442c1/orders/3eddcac6-63b2-4c40-b0b6-f47e18301492",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "etag": "eyJpZCI6IjNlZGRjYWM2LTYzYjItNGM0MC1iMGI2LWY0N2UxODMwMTQ5MiIsInZlcnNpb24iOjF9",
        "objectType": "Order"
    }
}