Skapa ett privat erbjudande för flera delar för en kund
ISV (originator) och den samarbetande partnern (säljaren) bör använda samma uppsättning API-anrop för att skapa ett privat erbjudande för en kund. Här är det förväntade flödet.
- ISV skapar erbjudandet och skickar in för att sälja partnersynlighet
- ISV meddelar den säljande partnern (via e-post eller andra metoder) att erbjudandet nu är tillgängligt för att sälja partnerredigeringar
- Sälja partnergranskningar och slutför konfigurationen av det privata erbjudandet och skickar för slutkundssynlighet
Här är metoden för att anropa för att skapa erbjudandet.
Förfrågan
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-07-01
Begärandehuvud
Header | Typ | Beskrivning |
---|---|---|
Auktorisering | String | Obligatoriskt. Microsoft Entra-åtkomsttoken i formuläret Bearer <token> . |
Valfritt: clientID
Parametrar för begäran
$version - krävs. Det här är den version av schemat som används i begäran.
Begärandetext
Följande alternativ speglar alternativen i Partnercenter när du skapar ett privat erbjudande för flera delar för en kund. Dessa alternativ definieras av följande offerPricingType-värden :
offerPricingType-värde | Alternativ för att skapa privata partnercenter |
---|---|
editExistingOfferPricingOnly | Anpassa priser för befintliga offentliga erbjudanden och planer – Använd det här alternativet för att skapa ett privat erbjudande för alla typer av transakterbara erbjudanden: SaaS, Azure Virtual Machines och Azure Applications. Du kan anpassa dina partnerpriser via absoluta priser eller procentrabatter. |
saasNewCustomizedPlans | Anpassa priser, mätarkvantiteter och användargränser för SaaS-erbjudandet – Använd det här alternativet för att skapa ett privat erbjudande för en SaaS-plan genom att anpassa ditt absoluta partnerpris, mätardimensionskvantiteter och användargränser. |
vmSoftwareReservations | Anpassa priser och specifika kvantiteter för erbjudanden för vm-programvarureservationer – Använd det här alternativet för att skapa ett privat erbjudande för fleraparter för att sälja programvarureservationer för virtuella datorer (1 år eller 3 år) och anpassa det absoluta partnerpriset, vCPU-storleken, kvantiteterna, varaktigheten och betalningsschemat. |
För de föregående tre alternativen för pristyp kan kraven på planspecifika resurser variera. Mer information finns i följande tabell:
Resursnamn | editExistingOfferPricingOnly | saasNewCustomizedPlans | vmSoftwareReservations |
---|---|---|---|
prissättning. Plan | Ange detta till plan-ID för den offentliga planen som ska konfigureras i begärandetexten | Ej tillämpligt | Ej tillämpligt |
pricing.basePlan | Inte tillämpligt | Ange detta till plan-ID för den offentliga planen som ska konfigureras i begärandetexten | Ange detta till plan-ID för den offentliga planen som ska konfigureras i begärandetexten |
pricing.newPlanDetails.name | Inte tillämpligt | Ange namnet på den nya planen som ska visas för kunden i begärandetexten | Inte tillämpligt för begärandetexten, kommer att genereras av systemet och vara tillgängligt i jobbets svar när det har slutförts. |
pricing.newPlanDetails.description | Inte tillämpligt | Ange den beskrivning som ska visas för kunden för den nya planen i begärandetexten | Inte tillämpligt för begärandetexten, kommer att genereras av systemet och vara tillgängligt i jobbets svar när det är klart. |
customerContractRenewal-värde | beskrivning |
---|---|
true | Privat erbjudande är en förnyelse av ett befintligt kundavtal. En avgift på 50 % rabatt gäller för ditt privata erbjudande för kundförnyelser |
falskt | Privat erbjudande är inte en förnyelse av ett befintligt kundavtal. Din standardavgift för agenturer tillkommer. |
Begärandetexten varierar beroende på uppringarrollen. Använd privateOfferType för att skilja ISV-uppringaren från att sälja partnersamtal.
Anroparroll | privateOfferType-värde |
---|---|
ISV (Originator) | multipartyPromotionOriginator |
Säljande partner (säljare) | multipartyPromotionChannelPartner |
Exempel på begärandetext
Exempel på begärandetext från ISV för att skapa erbjudandet med hjälp av rabattpriser för att endast anpassa priser för befintlig offentlig plan
ISV (originator) krävs för att tillhandahålla all grundläggande information om erbjudandet. Detta måste innehålla ett namn.
{
"$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"
}
]
}
Exempel på begärandetext med absolut prissättning för att endast anpassa priser för befintlig offentlig plan
Om du använder absoluta priser i stället för procentbaserad rabatt kan du skapa en ny resurs ovanför resursen för privata flerpartserbjudanden som definierar den absoluta prissättningen och sedan inkludera den nyligen skapade resursen som ett annat objekt i resurslistan för konfigurationsschemat.
Använd den här metoden för att hämta prisresursen för din befintliga offentliga plan, redigera priserna och sedan använda den redigerade resursen för ditt erbjudande.
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
Exempel på absolut prisresurs
{
"$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
}
}
}
}
}
Inkludera resursen som ett objekt i prismodulen
[
{
"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"
}
}
]
Exempel på begärandetext med absolut prissättning för att anpassa priser, mätarantal och användargränser för SaaS-erbjudandet
Använd följande metod för att skapa en absolut pris- och tillgänglighetsresurs för det privata erbjudandet.
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
Exempel på absolut prisresurs för ett SaaS-erbjudande med fast pris som anpassar pris- och mätarkvantiteter
{
"$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
}
]
}
}
}
}
}
Exempel på absolut prisresurs för ett SaaS-erbjudande per användare som anpassar pris- och användargränser
{
"$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
}
]
}
}
}
Inkludera resursen som ett objekt i prismodulen
{
"$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"
}
]
}
Exempel på begärandetext med absolut prissättning för att anpassa priser och specifika kvantiteter för erbjudanden om vm-programvarureservation
Använd följande metod för att skapa en absolut pris- och tillgänglighetsresurs för erbjudandet.
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
Exempel på absolut prisresurs för ett vm-erbjudande som anpassar pris och kvantiteter
{
"$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
}
}
}
}
Inkludera resursen som ett objekt i prismodulen
{
"$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"
}
]
}
Exempelbegäran från partnern för att slutföra skapandet av erbjudandet
Den säljande partnern bör använda det privata erbjudande-ID för flera parter som tillhandahålls av ISV:n för att konfigurera kundjusteringen % (pålägg), sälja anpassade partneravtal, förberedda av och sälja partnerkontakter.
Följande exempel baseras på svarstexten som returneras när du hämtar erbjudandeinformationen med hjälp av erbjudande-ID:t.
{
"$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\"",
}
]
}
Viktiga bildtexter i föregående exempel
- Säljande partner måste ange attributet preparedBy .
- Anpassade VILLKOR för ISV kan visas men kan inte redigeras av den säljande partnern. De registreras i resursens originatorTermsAndConditionsDocs.
- Säljande partner kan ladda upp sin egen anpassade term och villkor i termernaAndConditionsDocs-resursen.
- Säljande partner kan lägga till egna kontakter som ska meddelas om erbjudandet i notificationContacts-resursen.
- Mottagar- och partnerattribut kan visas men kan inte redigeras av den säljande partnern.
- Prisresursen visas som originatorPricing, markupPercentage krävs och måste tillhandahållas av den säljande partnern när du skickar, alla andra attribut i prisresursen är skrivskyddade.
Response
Svaret innehåller det jobId som du kan använda senare för att avsöka statusen:
{
"$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": []
}
Felkoder
HTTP-statuskod | beskrivning |
---|---|
401 | Autentiseringsfel: Kontrollera att du använder en giltig Microsoft Entra-åtkomsttoken. |
400 | Schemaverifiering. Kontrollera att begärandetexten följer rätt schema och innehåller alla obligatoriska fält. |