パートナー センター API を使用して新しいコマース サブスクリプションの変更をスケジュールする

適用対象: パートナー センター

この記事では、パートナー センター API を使用して、更新時にのみ行われる新しいコマース サブスクリプションの変更をスケジュールする方法について説明します。 この API は、ライセンスベースの新しいコマース サブスクリプションとソフトウェア サブスクリプションをサポートします。

Note

ライセンスベースのサービスの新しいコマース エクスペリエンスには、多くの新機能が含まれており、すべてのクラウド ソリューション プロバイダー (CSP) で利用できます。 詳細については、新しいコマース エクスペリエンスの概要を参照してください。

スケジュールされた変更を作成すると、次回の更新時にサブスクリプションを自動的に変更できます。 変更をスケジュールすることで、ライセンス数の増減、請求期間と頻度の変更、SKU のアップグレードを選択することもできます。 変更のスケジュールを設定すると、現在の期間中に直ちに行うのではなく、更新時にサブスクリプションを変更できます。

重要

更新日より前に中期 (即時) の変更を行った場合、更新時に以前に行われる予定だったすべての変更が削除されます。

前提条件

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

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

  • サブスクリプション ID。

  • サブスクリプションで自動更新が有効になっています。

パートナー センターの方法

パートナー センターでサブスクリプションの変更をスケジュールするには:

  1. 顧客を選択

  2. 変更をスケジュールするサブスクリプションを選択します。

  3. 自動更新を有効にします。

  4. [Manage Renewal]\(更新の管理\) を選びます。

  5. 更新時に行われるサブスクリプションに変更を加えます。

  6. [ Okay を選択してサイド パネルを閉じます。

  7. Submit を選択して変更を保存します。

Note

更新は、期間の最終日の翌日の午前 12 時 (UTC) から処理されます。 更新はキューで処理され、処理されるまでに最大 24 時間かかる場合があります。

C#

顧客のサブスクリプションの変更をスケジュールするには:

  1. ID でサブスクリプションを取得
  2. スケジュールされた移行の適格性の種類について 移行の適格性を取得します。
  3. ScheduledNextTermInstructions オブジェクトを作成し、サブスクリプションのプロパティに設定します。
  4. Patch() メソッドを呼び出して、スケジュールされた変更でサブスクリプションを更新します。
var selectedSubscription = subscriptionOperations.Get();
selectedSubscription.ScheduledNextTermInstructions = new ScheduledNextTermInstructions
{
    Product = new ProductTerm
    {
        ProductId = changeToProductId,
        SkuId = changeToSkuId,
        AvailabilityId = changeToAvailabilityId,
        BillingCycle = changeToBillingCycle,
        TermDuration = changeToTermDuration,
    },
    Quantity = changeToQuantity,
    customTermEndDate = DateTime,
};
var updatedSubscription = subscriptionOperations.Patch(selectedSubscription);

顧客のサブスクリプションの変更をスケジュールするには、必要なスケジュールされた変更が別の製品に対して行われます。

  1. ID でサブスクリプションを取得
  2. スケジュールされた移行の適格性の種類について 移行の適格性を取得します。
  3. Patch() メソッドを呼び出して、スケジュールされた変更でサブスクリプションを更新します。

REST 要求

要求の構文

認証方法 要求 URI
PATCH {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1

URI パラメーター

次の表に、API を呼び出すために必要なクエリ パラメーターを示します。

名前 タイプ Required 説明
customer-tenant-id guid 顧客に対応する GUID。
subscription-id guid サブスクリプションに対応する GUID。

要求ヘッダー

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

要求本文

要求本文には、scheduledNextTermInstructions プロパティが定義された完全な Subscription リソースが必要です。 サブスクリプションの変更をスケジュールするには、 AutoRenewEnabled プロパティが true に設定されていることを確認します。

コンバージョン (EndofSaleWithConversions) オファーによる販売終了時の可用性 ID:

  1. CatalogItemID を返す GetTransitionEligibility。

    a. スケジュールされた適格性の種類を必ず設定してください。それ以外の場合、既定値は即時です。

  2. CatalogItemID を使用して availabilityID を抽出します。

Note

GET 可用性を使用して scheduledNextTerm Instructions の可用性を判断し、すべての用語が EOS 状態の場合は、空の一覧が表示されます。 有効なパスを決定する最善の方法は、GetTransitionEligibilty API を呼び出して有効なオプションを返す方法です。

フィールド Type Required 説明
scheduledNextTermInstructions object サブスクリプションの次の用語の指示を定義します。 このプロパティには、 product オブジェクトと quantity フィールドが含まれます。

要求の例

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id>/subscriptions/<subscription-id> HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: ec8f62e5-1d92-47e9-8d5d-1924af105f2c
If-Match: <etag>
Content-Type: application/json
Content-Length: 1029
Expect: 100-continue
Connection: Keep-Alive

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "customTermEndDate": "2019-01-09T00:21:45.9263727",
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "active",
    "autoRenewEnabled": true,
    "scheduledNextTermInstructions": { 
      "product": { 
         "productId":  "DG7GMGF0DVSV", 
         "skuId":  "000P", 
         "availabilityId":  "DG7GMGF0F3Q9", 
         "billingCycle":  "Annual", 
         "termDuration":  "P3Y",
         "promotionId": "39NFJQT1PFPJ:000H:39NFJQT1Q5DK"
        }, 
      "quantity":  1 
      "customTermEndDate" : "2019-01-09T00:21:45.9263727",
     },  // original value = null 
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [{
        "type": "Full",
        "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
    }],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {"objectType": "Subscription"},
}

REST 応答

要求が成功した場合、このメソッドは応答本文で更新された Subscription リソース プロパティを返します。

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

各応答には、成功または失敗を示す HTTP 状態コード、およびその他のデバッグ情報が付属しています。 ネットワーク トレース ツールを使用して、このコード、エラーの種類、およびその他のパラメーターを読み取ります。 完全な一覧については、エラー コードに関するページを参照してください。

応答の例

HTTP/1.1 200 OK
Content-Length: 1322
Content-Type: application/json; charset=utf-8
MS-RequestId: ca7c39f7-1a80-43bc-90d8-ee7d1cad3831
MS-CorrelationId: ec8f62e5-1d92-47e9-8d5d-1924af105f2c
X-Locale: en-US

{
    "id": "6e7aa601-629e-461b-8933-0898c3cc3c7c",
    "offerId": "DZH318Z0BXWC:0001:DZH318Z0BMJX",
    "offerName": "offer Name",
    "friendlyName": "friendly Name",
    "quantity": 1,
    "customTermEndDate": "2019-01-09T00:21:45.9263727",
    "unitType": "License(s)",
    "hasPurchasableAddons": false,
    "creationDate": "2019-01-04T01:00:12.6647304Z",
    "effectiveStartDate": "2019-01-09T00:21:45.9263727+00:00",
    "commitmentEndDate": "2019-02-08T00:21:45.9263727+00:00",
    "status": "active",
    "autoRenewEnabled": true,
    "scheduledNextTermInstructions": { 
      "product": { 
         "productId":  "DG7GMGF0DVSV", 
         "skuId":  "000P", 
         "availabilityId":  "DG7GMGF0F3Q9", 
         "billingCycle":  "Annual", 
         "termDuration":  "P3Y",
         "promotionId": "39NFJQT1PFPJ:000H:39NFJQT1Q5DK"
        }, 
      "quantity":  1 
      "customTermEndDate": "2019-01-09T00:21:45.9263727",
     },  // original value = null 
    "isTrial": false,
    "billingType": "license",
    "billingCycle": "monthly",
    "termDuration": "P1M",
    "refundOptions": [{
        "type": "Full",
        "expiresAt": "2019-01-10T00:21:45.9263727+00:00"
    }],
    "isMicrosoftProduct": false,
    "partnerId": "",
    "contractType": "subscription",
    "publisherName": "publisher Name",
    "orderId": "ImxjLNL4_fOc-2KoyOxGTZcrlIquzls11",
    "attributes": {"objectType": "Subscription"},
}