Erstellen eines direkten ISV zu kundenspezifischem privatem Angebot
Verwenden Sie diese Methode, um ein privates Angebot für einen Kunden direkt als ISV zu erstellen.
Anfordern
POST https://graph.microsoft.com/rp/product-ingestion/configure?$version=2022-07-01
Anforderungsheader
Header | Typ | Beschreibung |
---|---|---|
Autorisierung | String | Erforderlich. Das Microsoft Entra-Zugriffstoken im Formular Bearer <token> . |
Optional: clientID
Anforderungsparameter
$version – erforderlich. Dies ist die Version des Schemas, das in der Anforderung verwendet wird.
Anforderungstext
Geben Sie die Details des privaten Angebots mithilfe des ISV zum privaten Angebotsschema des Kunden an. Sie müssen hierbei einen Namen angeben.
Die folgenden Optionen spiegeln die Optionen im Partner Center beim Erstellen eines privaten Angebots für einen Kunden wieder. Optionen werden durch die hier aufgelisteten offerPricingType-Werte definiert:
offerPricingType-Wert | Partner Center private Angebotserstellungsoptionsäquivalent |
---|---|
editExistingOfferPricingOnly | Anpassen der Preise für vorhandene öffentliche Angebote und Pläne – Verwenden Sie diese Option, um ein privates Angebot für alle transaktionsfähigen Angebotstypen zu erstellen: SaaS, Azure Virtual Machines und Azure-App lizenzierungen. Sie können Ihre Partnerpreise über absolute Preise oder Prozentrabatte anpassen. |
saasNewCustomizedPlans | Anpassen von Preisen, Metermengen und Benutzerlimits für SaaS-Angebote – Verwenden Sie diese Option, um ein privates Angebot für einen SaaS-Plan zu erstellen, indem Sie Ihren absoluten Partnerpreis, die Maßmengen für die Messung und die Benutzerbeschränkungen anpassen. |
vmSoftwareReservations | Anpassen der Preise und spezifischen Mengen für VM-Softwarereservierungsangebote – Verwenden Sie diese Option, um ein privates Mehrparteienangebot zum Verkauf von VM-Softwarereservierungen (1-Jahr oder 3-Jahr) zu erstellen und den absoluten Partnerpreis, die vCPU-Größe, die Mengen, die Dauer und den Zahlungsplan anzupassen. |
Für die vorherigen drei Preistypoptionen können die anforderungen für planspezifische Ressourcen variieren. Ausführliche Informationen finden Sie in der folgenden Tabelle.
Ressourcenname | editExistingOfferPricingOnly | saasNewCustomizedPlans | vmSoftwareReservations |
---|---|---|---|
Auszeichnung. Plan | Legen Sie dies auf die Plan-ID des öffentlichen Plans fest, der im Anforderungstext konfiguriert werden soll. | Nicht zutreffend | Nicht zutreffend |
pricing.basePlan | Nicht zutreffend | Legen Sie dies auf die Plan-ID des öffentlichen Plans fest, der im Anforderungstext konfiguriert werden soll. | Legen Sie dies auf die Plan-ID des öffentlichen Plans fest, der im Anforderungstext konfiguriert werden soll. |
pricing.newPlanDetails.name | Nicht zutreffend | Legen Sie dies auf den Namen des neuen Plans fest, der dem Kunden im Anforderungstext angezeigt wird. | Gilt nicht für den Anforderungstext, wird das System generiert und steht in der Antwort des Auftrags nach Abschluss zur Verfügung. |
pricing.newPlanDetails.description | Nicht zutreffend | Legen Sie dies auf die Beschreibung fest, die dem Kunden für den neuen Plan im Anforderungstext angezeigt wird. | Gilt nicht für den Anforderungstext, wird das System generiert und in der Antwort des Auftrags verfügbar, wenn er abgeschlossen ist. |
customerContractRenewal-Wert | Beschreibung |
---|---|
true | Privates Angebot ist eine Verlängerung eines bestehenden Kundenvertrags. Eine 50% ermäßigte Agenturgebühr gilt für Ihr privates Angebot für Kundenverlängerungen |
false | Privates Angebot ist keine Verlängerung eines bestehenden Kundenvertrags. Ihre Standardagenturgebühr gilt. |
Anfordern von Textkörperbeispielen
Beispielanforderungstext mit Rabattpreisen zum Anpassen der Preise für vorhandene öffentliche Pläne
{
"$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": "customerPromotion",
"offerPricingType": "editExistingOfferPricingOnly",
"customerContractRenewal": false,
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"preparedBy": "amy@contoso.com",
"termsAndConditionsDocSasUrl": "https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4rFOA ",
"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/34771906-9711-4196-9f60-4af380fd5042", "plan":"plan/123456","discountType": "percentage", "discountPercentage": 5 }
]
}
]
}
Beispielanforderungstext mit absoluten Preisen zum Anpassen der Preise für vorhandene öffentliche Pläne
Wenn Sie absolute Preise anstelle von prozentbasierten Rabatten verwenden:
- Erstellen Sie eine neue Ressource oberhalb der privaten Angebotsressource, die die absolute Preisgestaltung definiert.
- Fügen Sie diese neu erstellte Ressource als ein weiteres Objekt in die Ressourcenliste des Konfigurationsschemas ein.
Verwenden Sie diese Methode, um die Preisressource für Ihren vorhandenen öffentlichen Plan zu erhalten, die Preise zu bearbeiten und dann die bearbeitete Ressource für Ihr privates Angebot zu verwenden.
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
Beispiel für absolute Preisressource
{
"$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",
"offerPricingType": "editExistingOfferPricingOnly",
"plan": "plan/987654",
"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
}
}
}
}
}
Diese Ressource als Objekt in das Preismodul einschließen
[
{
"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"
}
}
]
Beispielanforderungstext mit absoluten Preisen zum Anpassen von Preisen, Getakteungsmengen und Benutzergrenzwerten für SaaS-Angebote
Verwenden Sie die folgende Methode, um eine absolute Preis- und Verfügbarkeitsressource für das Angebot zu erstellen.
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
Beispiel für absolute Preisressourcen für ein SaaS-Angebot mit Pauschalpreisen, das Preis- und Metermengen angibt
{
"$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
}
]
}
}
}
}
}
Beispiel für absolute Preisressourcen für ein SaaS-Angebot pro Benutzer, das Preis- und Benutzerlimits angibt
{
"$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
}
]
}
}
}
Diese Ressource als Objekt in das Preismodul einschließen
{
"$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": "customerPromotion",
"offerPricingType": "saasNewCustomizedPlans",
"customerContractRenewal": false,
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"preparedBy": "amy@contoso.com",
"termsAndConditionsDocSasUrl": "https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4rFOA",
"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"
}
]
}
]
}
Beispielanforderungstext mit absoluten Preisen zum Anpassen der Preise und spezifischen Mengen für VM-Softwarereservierungsangebote
Verwenden Sie die folgende Methode, um eine absolute Preis- und Verfügbarkeitsressource für das Angebot zu erstellen.
GET https://graph.microsoft.com/rp/product-ingestion/price-and-availability-private-offer-plan/{productId}?plan={planId}&$version=2023-07-15
Beispiel für absolute Preisressourcen für ein VM-Angebot, das Preise und Mengen angibt
{
"$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
}
}
}
}
Diese Ressource als Objekt in das Preismodul einschließen
{
"$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": "customerPromotion",
"offerPricingType": "vmSoftwareReservations",
"customerContractRenewal": false,
"variableStartDate": true,
"end": "2022-01-31",
"acceptBy": "2022-02-28",
"preparedBy": "amy@contoso.com",
"termsAndConditionsDocSasUrl": "https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4rFOA",
"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"
]
}
]
}
Antwort
Die Antwort enthält die jobId, die Sie später verwenden können, um den Status abzufragen:
{
"$schema": "https://schema.mp.microsoft.com/schema/configure-status/2023-07-15",
"jobId": "c32dd7e8-8619-462d-a96b-0ac1974bace5",
"jobStatus": "notStarted",
"jobResult": "pending",
"jobStart": "2021-12-21T21:29:54.9702903Z",
"jobEnd": "0001-01-01",
"errors": []
}
Fehlercodes
HTTP-Statuscode | Beschreibung |
---|---|
401 | Authentifizierungsfehler: Stellen Sie sicher, dass Sie ein gültiges Microsoft Entra-Zugriffstoken verwenden. |
400 | Schemaüberprüfung. Stellen Sie sicher, dass der Anforderungstext dem richtigen Schema folgt und alle erforderlichen Felder enthält. |