顧客向けのマルチパーティ プライベート オファーを作成する
ISV (発信元) と共同作業パートナー (販売者) は、同じ API 呼び出しセットを使用して、顧客のプライベート オファーを作成する必要があります。 想定されるフローを次に示します。
- ISV はオファーを作成し、パートナーの可視性を販売するために送信します
- ISV は、販売パートナーに (電子メールまたはその他の方法を使用して) オファーを販売パートナーに通知し、パートナーの編集を販売できるようになりました
- 販売パートナーは、プライベート オファーの構成をレビューして完了し、エンド カスタマーの可視性のために送信します
オファーの作成を呼び出すメソッドを次に示します。
要求
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-07-01
要求ヘッダー
Header | 型 | 説明 |
---|---|---|
承認 | String | 必須。 フォームの Microsoft Entra アクセス トークン Bearer <token> 。 |
省略可能: clientID
要求パラメーター
$version - 必須。 これは、要求で使用されているスキーマのバージョンです。
要求本文
次のオプションは、顧客のマルチパーティ プライベート オファーを作成するときのパートナー センターのオプションを反映しています。 これらのオプションは、次の offerPricingType 値によって定義されます。
offerPricingType 値 | パートナー センターのプライベート オファー作成オプションと同等 |
---|---|
editExistingOfferPricingOnly | 既存のパブリック オファーとプランの価格をカスタマイズする - このオプションを使用して、取引可能なすべてのオファーの種類 (SaaS、Azure Virtual Machines、Azure アプリlications) のプライベート オファーを作成します。 パートナーの価格は、絶対価格またはパーセンテージ割引を使用してカスタマイズできます。 |
saasNewCustomizedPlans | SaaS オファーの価格、測定数量、ユーザー制限をカスタマイズする - このオプションを使用して、絶対パートナー価格、測定ディメンションの数量、およびユーザー制限をカスタマイズすることで、SaaS プランのプライベート オファーを作成します。 |
vmSoftwareReservations | VM ソフトウェア予約プランの価格と特定の数量をカスタマイズする - このオプションを使用して、VM ソフトウェア予約 (1 年または 3 年) を販売するマルチパーティ プライベート オファーを作成し、絶対パートナーの価格、vCPU サイズ、数量、期間、支払いスケジュールをカスタマイズします。 |
前の 3 つの価格の種類のオプションでは、プラン固有のリソース要件が異なる場合があります。 詳細については、次の表を参照してください。
リソース名 | editExistingOfferPricingOnly | saasNewCustomizedPlans | vmSoftwareReservations |
---|---|---|---|
プライシング。計画 | これを、要求本文で構成するパブリック プランのプラン ID に設定します | 適用なし | 適用なし |
pricing.basePlan | 適用なし | これを、要求本文で構成するパブリック プランのプラン ID に設定します | これを、要求本文で構成するパブリック プランのプラン ID に設定します |
pricing.newPlanDetails.name | 適用なし | これを、要求本文で顧客に表示される新しいプランの名前に設定します | 要求本文には適用されず、システムによって生成され、完了時にジョブの応答で使用できるようになります。 |
pricing.newPlanDetails.description | 適用なし | これを、要求本文で新しいプランの顧客に表示される説明に設定します | 要求本文には適用されず、システムによって生成され、完了時にジョブの応答で使用できるようになります。 |
customerContractRenewal 値 | 説明 |
---|---|
true | プライベート オファーは、既存の顧客契約の更新です。 顧客更新のプライベート オファーには、50% の割引された代理店料金が適用されます |
false | プライベート オファーは 既存の顧客契約の更新 できません。 標準の代理店料金が適用されます。 |
要求本文は、呼び出し元ロールによって異なります。 ISV 呼び出し元と販売パートナーの呼び出し元を区別するには、 privateOfferType を使用します。
呼び出し元ロール | privateOfferType 値 |
---|---|
ISV (発信元) | multipartyPromotionOriginator |
販売パートナー (販売者) | multipartyPromotionChannelPartner |
要求本文のサンプル
ISV によるサンプル要求本文で、割引価格を使用してオファーを作成し、既存のパブリック プランのみの価格をカスタマイズする
ISV (発信元) は、オファーのすべての基本的な詳細を提供する必要があります。 これには名前を含める必要があります。
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/private-offer/2024-09-30",
"resourceName": "privateOffer",
"name": "privateOffercustomer1705",
"state": "live",
"privateOfferType": "multipartyPromotionOriginator",
"offerPricingType": "editExistingOfferPricingOnly",
"customerContractRenewal": false,
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"termsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"notificationContacts": [ "amy@contoso.com" ],
"beneficiaries": [
{ "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
],
"partners": [
{
"id": "12345678",
"partnerName": "Market Place Test",
"location": "United States"
}
],
"pricing": [
{ "product": "product/34771906-9711-4196-9f60-4af380fd5042", "plan":"plan/123456","discountType": "percentage", "discountPercentage": 5 }
],
"notes": "ISV 123"
}
]
}
絶対価格を使用して既存のパブリック プランのみの価格をカスタマイズするサンプル要求本文
割合ベースの割引ではなく絶対価格を使用している場合は、絶対価格を定義するマルチパーティ プライベート オファー リソースの上に新しいリソースを作成し、その新しく作成されたリソースを構成スキーマのリソース一覧に別のオブジェクトとして含めることができます。
この方法を使用して、既存のパブリック プランの価格リソースを取得し、価格を編集してから、オファーの編集されたリソースを使用します。
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
絶対価格リソースのサンプル
{
"$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
"resourceName": "newSimpleAbsolutePricing",
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"plan": "plan/987654",
"offerPricingType": "editExistingOfferPricingOnly",
"pricing": {
"recurrentPrice": {
"priceInputOption": "usd",
"prices": [
{
"pricePerPaymentInUsd": 1,
"billingTerm": {
"type": "month",
"value": 1
}
},
{
"pricePerPaymentInUsd": 2,
"paymentOption": {
"type": "month",
"value": 1
},
"billingTerm": {
"type": "year",
"value": 1
}
}
]
},
"customMeters": {
"priceInputOption": "usd",
"meters": {
"meter1": {
"pricePerPaymentInUsd": 1
}
}
}
}
}
価格モジュールにそのリソースをオブジェクトとして含める
[
{
"product": "product/34771906-9711-4196-9f60-4af380fd5042",
"plan": "plan/123456",
"discountType": "percentage",
"discountPercentage": 5
},
{
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"plan": "plan/987654",
"discountType": "absolute",
"priceDetails": {
"resourceName": "newSimpleAbsolutePricing"
}
}
]
絶対価格を使用して SaaS オファーの価格、測定数量、およびユーザー制限をカスタマイズする要求本文のサンプル
プライベート オファーの絶対価格と可用性リソースを作成するには、次の方法を使用します。
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
価格とメーターの数量をカスタマイズする定額 SaaS オファーの絶対価格リソースのサンプル
{
"$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"resourceName": "newSaaSPlanAbsolutePricing",
"plan": "plan/123456",
"offerPricingType": "saasNewCustomizedPlans",
"pricing": {
"recurrentPrice": {
"recurrentPriceMode": "flatRate",
"priceInputOption": "usd",
"prices": [
{
"billingTerm": {
"type": "month",
"value": 1
},
"paymentOption": {
"type": "month",
"value": 1
},
"pricePerPaymentInUsd": 0.1
},
{
"billingTerm": {
"type": "year",
"value": 1
},
"paymentOption": {
"type": "month",
"value": 1
},
"pricePerPaymentInUsd": 0.12
}
]
},
"customMeters": {
"priceInputOption": "usd",
"meters": {
"meter1": {
"includedQuantities": [
{
"billingTerm": {
"type": "month",
"value": 1
},
"quantity": 10.0,
"isInfinite": false
},
{
"billingTerm": {
"type": "year",
"value": 1
},
"quantity": 15.0,
"isInfinite": false
}
]
},
"meter2": {
"includedQuantities": [
{
"billingTerm": {
"type": "month",
"value": 1
},
"isInfinite": true
},
{
"billingTerm": {
"type": "year",
"value": 1
},
"isInfinite": true
}
]
}
}
}
}
}
価格とユーザーの制限をカスタマイズするユーザーごとの SaaS オファーの絶対価格リソースのサンプル
{
"$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
"resourceName": "newSaaSPlanAbsolutePricing",
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"plan": "plan/123456",
"offerPricingType": "saasNewCustomizedPlans",
"pricing": {
"recurrentPrice": {
"recurrentPriceMode": "perUser",
"priceInputOption": "usd",
"userLimits": {
"min": 20,
"max": 100
},
"prices": [
{
"billingTerm": {
"type": "month",
"value": 1
},
"paymentOption": {
"type": "month",
"value": 1
},
"pricePerPaymentInUsd": 0.01
},
{
"billingTerm": {
"type": "year",
"value": 1
},
"paymentOption": {
"type": "year",
"value": 1
},
"pricePerPaymentInUsd": 0.02
}
]
}
}
}
価格モジュールにそのリソースをオブジェクトとして含める
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/private-offer/2024-09-30",
"name": "privateOffercustomer1705",
"state": "live",
"privateOfferType": "multipartyPromotionOriginator",
"offerPricingType": "newSimpleAbsolutePricing",
"customerContractRenewal": false,
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"partners": [
{
"id": "12345678",
"partnerName": "Market Place Test",
"location": "United States"
}
],
"termsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"notificationContacts": [ "amy@contoso.com" ],
"beneficiaries": [
{ "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
],
"pricing": [
{
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"discountType": "absolute",
"priceDetails": {
"resourceName": "newSaaSPlanAbsolutePricing"
}
"basePlan": "plan/123456",
"newPlanDetails": {
"name": "newPlanName",
"description": "newPlanDescription"
}
],
"notes": "ISV 123"
}
]
}
絶対価格を使用して VM ソフトウェア予約オファーの価格と特定の数量をカスタマイズするサンプル要求本文
オファーの絶対価格と可用性リソースを作成するには、次の方法を使用します。
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
価格と数量をカスタマイズする VM オファーの絶対価格リソースのサンプル
{
"$schema": "https://schema.mp.microsoft.com/schema/price-and-availability-private-offer-plan/2023-07-15",
"resourceName": "newVMSRAbsolutePricing",
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"offerPricingType": "vmSoftwareReservations",
"plan": "plan/987654",
"softwareReservation": {
"reservationDuration": {
"type": "year",
"value": 1
},
"paymentSchedule": {
"type": "year",
"value": 1
},
"vmPrices": {
"36Core": {
"quantity": 4.0,
"unitPricePerPaymentPeriodInUsd": 0.04
}
}
}
}
価格モジュールにそのリソースをオブジェクトとして含める
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/private-offer/2024-09-30",
"name": "privateOffercustomer1705",
"state": "live",
"privateOfferType": "multipartyPromotionOriginator",
"offerPricingType": "vmSoftwareReservations",
"customerContractRenewal": false,
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"partners": [
{
"id": "12345678",
"partnerName": "Market Place Test",
"location": "United States"
}
],
"termsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"notificationContacts": [ "amy@contoso.com" ],
"beneficiaries": [
{ "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
],
"pricing": [
{
"product": "product/7ba807c8-386a-4efe-80f1-b97bf8a554f8",
"discountType": "absolute",
"priceDetails": {
"resourceName": "newVMSRAbsolutePricing"
}
"basePlan": "plan/987654"
],
"notes": "ISV 123"
}
]
}
オファーの作成を完了するためのパートナーからの要求のサンプル
販売パートナーは、ISV によって提供されるマルチパーティプライベート オファー ID を使用して、顧客調整 % (マークアップ) を構成し、パートナーのカスタム契約を販売し、パートナーの連絡先によって準備され、販売する必要があります。
次の例は、オファー ID を使用してオファーの詳細を取得するときに返される応答本文に基づいています。
{
"$schema": "https://schema.mp.microsoft.com/schema/configure/2022-07-01",
"resources": [
{
"$schema": "https://schema.mp.microsoft.com/schema/private-offer/2024-09-30",
"resourceName": "privateOffer",
"name": "privateOffercustomer1705",
"state": "live",
"privateOfferType": "multipartyPromotionChannelPartner",
"offerPricingType": "editExistingOfferPricingOnly",
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"preparedBy": "tester@microsoft.com",
"originatorTermsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"termsAndConditionsDocs": [
{
"sasUrl": "https://promotionpmeprod.blob.core.windows.net/promotionsblobdata/44c2b38a-fa64-4861-806c-6c486ec19b6d-769f3960-45af-42db-ab3b-6391841683d6",
"fileName": "Test1.pdf",
"customerFacingDocumentName": "Test1 T&C"
} ],
"notificationContacts": [ "amy@contoso.com" ],
"beneficiaries": [
{ "id": "xxxxxx-2163-5eea-ae4e-d6e88627c26b:6ea018a9-da9d-4eae-8610-22b51ebe260b_2019-05-31", "description": "Top First Customer"}
],
"partners": [
{
"id": "12345678",
"partnerName": "Market Place Test",
"location": "United States"
}
],
"originatorPricing": [
{
"product": "product/34771906-9711-4196-9f60-4af380fd5042",
"plan":"plan/123456",
"discountType": "percentage",
"discountPercentage": 5
"markupPercentage": 1.0
}
],
"lastModified": "2023-01-19",
"eTag": "\"7f020249-0000-0800-0000-63c9b4ca0000\"",
}
]
}
前の例の主要なコールアウト
- 販売パートナーは、 preparedBy 属性を指定する必要があります。
- ISV カスタム使用条件は表示できますが、販売パートナーが編集することはできません。これらはリソース originatorTermsAndConditionsDocsにキャプチャされます。
- 販売パートナーは、独自のカスタム用語と条件を termsAndConditionsDocs リソースにアップロードできます。
- 販売パートナーは、 notificationContacts リソースでオファーの通知を受け取る独自の連絡先を追加できます。
- 受益者属性とパートナー属性は表示可能ですが、販売パートナーが編集することはできません。
- 価格リソースは originatorPricing として表示されます。 markupPercentage は必須であり、申請時に販売パートナーが提供する必要があります。価格リソース内の他のすべての属性は読み取り専用です。
回答
応答には jobId が含まれています 後で状態をポーリングするために使用できます。
{
"$schema": "https://schema.mp.microsoft.com/schema/configure-status/2022-07-01",
"jobId": "c32dd7e8-8619-462d-a96b-0ac1974bace5",
"jobStatus": "notStarted",
"jobResult": "pending",
"jobStart": "2021-12-21T21:29:54.9702903Z",
"jobEnd": "0001-01-01",
"errors": []
}
エラー コード
HTTP 状態コード | 説明 |
---|---|
401 | 認証エラー: 有効な Microsoft Entra アクセス トークンを使用していることを確認します。 |
400 | スキーマの検証。 要求本文が正しいスキーマに従っていることを確認し、すべての必須フィールドを含めます。 |