Dela via


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.

  1. ISV skapar erbjudandet och skickar in för att sälja partnersynlighet
  2. ISV meddelar den säljande partnern (via e-post eller andra metoder) att erbjudandet nu är tillgängligt för att sälja partnerredigeringar
  3. 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.