Dela via


Översikt över API för inlämning av privata erbjudanden

Med privata erbjudanden kan utgivare och kunder utföra en eller flera produkter på Azure Marketplace genom att skapa tidsbundna priser med anpassade villkor. API:erna för överföring av privata erbjudanden gör det möjligt för utgivare att programmatiskt skapa och hantera privata erbjudanden för kunder och/eller CSP-partner. Det här API:et använder Microsoft Entra-ID för att autentisera anropen från din app eller tjänst.

Det finns tre huvudsakliga typer av privata erbjudanden som är tillgängliga i Partnercenter och som stöds av API:et för överföring av privata erbjudanden:

  • Privat erbjudande från ISV till kund – kallas även kundens privata erbjudande i Partnercenter. Det här är ett anpassat avtal mellan en ISV och en specifik kund med anpassade villkor och priser för en specifik produkt på Azure Marketplace. Läs mer om privat erbjudande från ISV till kund.
  • Privat erbjudande från ISV till CSP-partner – kallas även privat csp-partnererbjudande i Partnercenter. Med den här typen av privat erbjudande kan ISV ange tidsbunden marginal för att skapa ett grossistpris för sin CSP-partner. Läs mer om privat erbjudande för ISV till CSP-partner.
  • MPO (Multiparty Private Offer) – ett anpassat avtal som har konfigurerats av en ISV och en prioriterad kanalpartner för en specifik kund med anpassade villkor och priser för specifika produkter på Azure Marketplace. ISV definierar det rabatterade grossistpriset som görs tillgängligt för partnern, kanalpartnern kan sedan lägga till pålägg ovanpå grossistpriset för att komma fram till det slutliga kundpriset och presenterar erbjudandet för kunden för godkännande och köp. Godkännande och köp av MPO följer samma flöde som ISV till kundens privata erbjudanden. Läs mer om privata erbjudanden för flera delar.

Terminologi

  • MPO-ursprung – MPO är ett samarbete mellan ISV och kanalpartner på samma anpassade avtal för en specifik kund. Den part som först skapar MPO utses till "upphovsman" för erbjudandet, vanligtvis ISV för de produkter som ingår i MPO. Det kan bara finnas en upphovsman för en viss MPO.
  • MPO-säljare – Den kanalpartner som förbereder erbjudandet med det slutliga kundpriset och presenterar erbjudandet för kunden är säljaren av MPO. Det kan bara finnas en säljare för en viss MPO.
  • Product – en enda enhet som representerar ett erbjudande på Azure Marketplace. Det finns en produkt per listsida.
  • Plan – en enskild version av en viss produkt. Det kan finnas flera planer för en viss produkt som representerar olika prisnivåer eller villkor.
  • Jobb – En uppgift som skapas när du gör en begäran i det här API:et. När du använder det här API:et för att hantera privata erbjudanden och privata erbjudanden för flera delar skapas ett jobb för att slutföra begäran. När jobbet har slutförts kan du få mer information om det relevanta privata erbjudandet (flera delar).

Stödda scenarier

Gör dig redo att använda det här API:et

Innan du skriver kod för att anropa API:et för privata erbjudanden kontrollerar du att du har slutfört följande krav. Samma krav gäller för alla publiceringspartners.

Steg 1: Slutför kraven för att använda Microsofts API för produktinmatning (en gång)

Du eller din organisation måste ha en Microsoft Entra-katalog och global administratörsbehörighet. Om du redan använder Microsoft 365 eller andra företagstjänster från Microsoft har du redan Microsoft Entra-katalog. Annars kan du skapa ett nytt Microsoft Entra-ID i Partnercenter utan kostnad.

Du måste associera ett Microsoft Entra-ID-program med ditt Partnercenter-konto och hämta ditt klient-ID, klient-ID och nyckel. Du behöver dessa värden för att hämta den Microsoft Entra-åtkomsttoken som du använder i anrop till API:et för privata erbjudanden.

Steg 2: Skaffa en Microsoft Entra-åtkomsttoken (varje gång)

Innan du anropar någon av metoderna i Microsoft Store-api:et för överföring behöver du en Microsoft Entra-åtkomsttoken för att skicka till auktoriseringshuvudet för varje metod i API:et. Du har 60 minuter på dig att använda en token innan den upphör att gälla. Efter förfallodatumet kan du uppdatera en token så att du kan fortsätta att använda den i ytterligare anrop till API:et.

Information om hur du hämtar åtkomsttoken finns i Service to Service Calls Using Client Credentials to send an HTTP POST to the https://login.microsoftonline.com/<tenant_id/oauth2/token endpoint (Tjänst till tjänst-anrop med klientautentiseringsuppgifter) för att skicka en HTTP POST till slutpunkten tenant_id>/oauth2/token. Här är en exempelbegäran:

POST https://login.microsoftonline.com/<tenant_id>/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
grant_type=client_credentials
&client_id=<your_client_id>
&client_secret=<your_client_secret>
&resource=https://graph.microsoft.com/

För det tenant_id värdet i POST-URI:n och parametrarna client_id och client_secret anger du klient-ID, klient-ID och nyckel för ditt program som du hämtade från Partnercenter i föregående avsnitt. För resursparametern måste du ange https://graph.microsoft.com/.

Hitta produkt-, plan- och privata erbjudande-ID:t

ID Var du hittar dem
client_id Se Associera ett Microsoft Entra-program med ditt Partnercenter-konto.
tenant_id Se Associera ett Microsoft Entra-program med ditt Partnercenter-konto.
client_secret Se Associera ett Microsoft Entra-program med ditt Partnercenter-konto.
productId Se Hämta produkter i den här artikeln.
planId Se Hämta planer för en specifik produkt i den här artikeln.
privateofferId Se Hämta privata erbjudanden i den här artikeln.

Hämta produkter

Ett privat erbjudande baseras på en befintlig produkt i ditt Partnercenter-konto. Om du vill se en lista över produkter som är associerade med ditt Partnercenter-konto använder du det här API-anropet:

GET https://graph.microsoft.com/rp/product-ingestion/product?$version=2022-07-01

Svaret visas i följande exempelformat:

{
  "value": [
    {
      "$schema": "https://schema.mp.microsoft.com/schema/product/2022-07-01",
      "id": "string",
      "identity": {
        "externalId": "string"
      },
      "type": "enum",
      "alias": "string"
    }
  ],
  "@nextLink": "opaque_uri"
}

Hämta planer för en specifik produkt

För produkter som innehåller mer än en plan kanske du vill skapa ett privat erbjudande baserat på en specifik plan. I så fall behöver du planens ID. Hämta en lista över planerna (till exempel varianter eller SKU:er) för produkten med hjälp av följande API-anrop:

GET https://graph.microsoft.com/rp/product-ingestion/plan?product=<product-id>&$version=2022-07-01

Svaret visas i följande exempelformat:

{
  "value": [
    {
      "$schema": "https://schema.mp.microsoft.com/schema/plan/2022-07-01",
      "product": "string",
      "id": "string",
      "identity": {
        "externalId": "string"
      },
      "alias": "string"
    }
  ]
}

Hämta privata erbjudanden

Om du vill se en lista över alla privata erbjudanden, inklusive privata erbjudanden för flera delar, som är associerade med ditt konto, använder du följande API-anrop:

GET https://graph.microsoft.com/rp/product-ingestion/private-offer/query?$version=2023-07-15

Så här använder du API:et

Med API:et för privata erbjudanden kan du skapa och hantera privata erbjudanden som är associerade med produkter och planer i ditt Partnercenter-konto. Här är en sammanfattning av det typiska anropsmönstret när du använder det här API:et.

Flödesschema som visar steg för privata erbjudanden för flera delar.

Steg 1: Gör begäran

När du gör ett API-anrop för att skapa, ta bort, ta bort eller uppgradera ett privat erbjudande skapas ett nytt jobb för att slutföra den begärda aktiviteten. API-svaret innehåller ett jobId som är associerat med jobbet.

Steg 2: Sök efter jobbstatus

Använd jobId från det första API-svaret och sök för att hämta jobbstatusen. Jobbets status är antingen Körs eller Slutförd. När jobbet har slutförts blir resultatet antingen Lyckades eller Misslyckades. Undvik prestandaproblem genom att inte avsöka ett jobb mer än en gång per minut.

jobStatus beskrivning
NotStarted Jobbet har ännu inte startat. detta är en del av svaret på den första begäran.
Körs Jobbet körs fortfarande.
Slutförd Jobbet har slutförts. Mer information finns i jobResult .
jobResult Beskrivning
Väntande Jobbet har ännu inte slutförts.
Lyckades Jobbet har slutförts. Det här jobbet returnerar också en resourceURI som refererar till det privata erbjudandet som är relaterat till jobbet. Använd den här resurs-URI:n för att hämta fullständig information om ett privat erbjudande.
Misslyckad Jobbet misslyckades. Detta returnerar även eventuella relevanta fel som hjälper dig att fastställa orsaken till felet.

Mer information finns i Fråga efter status för ett befintligt jobb.

Steg 3: Hämta information från slutförda jobb

Ett lyckat jobb returnerar en resourceUri som refererar till det relevanta privata erbjudandet. Använd den här resurs-URI:n för att få mer information om det privata erbjudandet i framtiden, till exempel privateofferId.

Ett misslyckat jobb innehåller fel som ger information om varför jobbet misslyckades och hur du löser problemet.

Mer information finns i Hämta information om ett befintligt privat erbjudande.

Så här ska ISV och kanalpartner samarbeta med API:et för privata erbjudanden för flera delar

Både ISV och kanalpartner kan använda samma API:er för att skapa och hantera ett visst MPO. Resurser i ett MPO som kan påverka API:et beror dock på om anroparen för API:et är ISV (originator) eller kanalpartnern (säljaren) för MPO. Samma ISV/channel-partnerpubliceringsflöde och affärsregler som styr Partnercenter speglas i API:et. Här är en översikt:

API-åtgärd ISV (Originator) Kanalpartner (säljare)
Skapa
  • Den avsedda målgruppen är den säljande partnern (säljaren) när API-anropet publiceras. Slutkund ser inte det privata erbjudandet förrän kanalpartnern skickar in
Redigerbara resurser:
  • Giltighetsdatum
  • Avsedd mottagare (kund)
  • Kanalpartner för att samarbeta om erbjudandet, begränsat till 1 per privat erbjudande
  • Ytterligare ISV-kontakter som ska meddelas om statusen för det privata erbjudandet
  • Anpassade villkor för ISV
  • Produkter/planer som ingår i det privata erbjudandet
  • Kontraktsvaraktighet för varje produkt/plan
  • Inkluderade kvantiteter för varje produkt (om tillämpligt)
  • Attribut för icke-matrisplan (om tillämpligt)
  • Rabatterat grossistpris tillgängligt för kanalpartnern på de inkluderade produkterna/planen
  • ISV-försäljningsanteckningar
  • Avsedd målgrupp är slutkund när API-anropet publiceras
Redigerbara resurser:
  • Anpassade villkor för kanalpartner
  • Förberedd av
  • Kundjustering (påläggsprocent) utöver ISV-grossistpriset för varje produkt/plan som ingår i det privata erbjudandet, avgör detta slutkundspriset
  • Ytterligare kanalpartnerkontakter som ska meddelas om statusen för det privata erbjudandet
  • Försäljningsanteckningar för kanalpartner
Delete
  • Stöds för privata erbjudanden i utkasttillstånd
  • Stöds inte
Återta
  • Stöds för privata erbjudanden som publicerats av ISV men ännu inte publicerats av kanalpartnern eller om den dras tillbaka av kanalpartnern
  • Stöds för privata erbjudanden som publicerats och är tillgängliga för slutkunder men inte godkänt ännu