次の方法で共有


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

に適用: パートナー センター

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

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

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

Von Bedeutung

更新日より前に中間 (即時) 変更を行った場合、更新時に発生する予定だったスケジュール変更はすべて削除されます。

[前提条件]

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

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

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

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

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

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

  1. 顧客を選択します

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

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

  4. 更新管理 を選択します。

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

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

  7. [送信] を選択して変更を保存します。

更新は、学期の最終日の後、翌日の午前12:00 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 リクエスト
パッチ {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id} HTTP/1.1

URI パラメーター

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

名前 タイプ 必須 説明
顧客テナントID GUIDの Y 顧客に対応する GUID。
サブスクリプション ID GUIDの Y サブスクリプションに対応する GUID。

要求ヘッダー

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

リクエストの本文

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

販売終了時の在庫状況 ID とコンバージョン (EndofSaleWithConversions) オファー:

  1. GetTransitionEligibility を使用して CatalogItemID を返します。

    ある。 スケジュールされた適格性タイプを設定してください。設定しないと、デフォルトは即時になります。

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

GET Availabilitysを使用してscheduledNextTerm命令の可用性を判断し、すべての条件がEOS状態である場合は、空のリストが表示されます。 有効なパスを決定する最善の方法は、GetTransitionEligibilty API を呼び出して有効なオプションを返すことです。

フィールド タイプ 必須 説明
scheduledNextTermInstructions (スケジュール済み次の用語の指示) オブジェクト Y サブスクリプションの次の期間の指示を定義します。 このプロパティには、 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: aaaa0000-bb11-2222-33cc-444444dddddd
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 応答

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

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

各応答には、成功または失敗を示す 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: aaaa0000-bb11-2222-33cc-444444dddddd
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"},
}