Ottenere i margini
Si applica a: Centro per i partner
Ruoli appropriati: agente di amministrazione
In qualità di partner nel programma CSP, è possibile chiamare l'API GetMargins per ottenere un elenco dei margini dell'offerta privata estesi agli editori ISV.
Credenziali descritte in Autenticazione del Centro per i partner. Questo scenario supporta l'autenticazione con le credenziali app autonome e App+Utente.
[GET] /v1/margin
metodo | URI della richiesta |
---|---|
GET | {baseURL}/v1/margin HTTP/1.1 |
Per altre informazioni, vedi Intestazioni REST del Centro per i partner.
None
GET https://api.partnercenter.microsoft.com/v1/margins HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
In caso di esito positivo, questa richiesta restituisce un elenco di margini dell'offerta privata. L'editore ISV può configurare il margine dell'offerta privata come sconto percentuale fisso, applicato al prezzo originale dell'offerta o come prezzo personalizzato che sostituisce il prezzo originale dell'offerta. Entrambi i tipi di margine vengono restituiti nella risposta dell'API GetMargins.
Ogni voce nella risposta contiene date di inizio e di fine. Il margine dell'offerta privata verrà applicato solo agli acquisti effettuati entro tali due date. Gli acquisti effettuati al di fuori di tale intervallo di tempo non otterranno il vantaggio del margine dell'offerta privata.
Ogni risposta viene fornita con un codice di stato HTTP che indica l'esito positivo o negativo e altre informazioni di debug. Usare uno strumento di traccia di rete per leggere questo codice, il tipo di errore e altri parametri. Per l'elenco completo, vedi Codici di errore.
In questo esempio, l'autore ISV ha configurato il margine dell'offerta privata come sconto percentuale fisso rispetto al prezzo originale dell'offerta. Lo sconto viene visualizzato nella proprietà "percentageMargin". Poiché questa offerta privata viene estesa per uno SKU specifico, vengono specificate informazioni sullo SKU, ad esempio il nome dello SKU e l'ID SKU. Se l'autore ISV ha scelto di estendere l'offerta privata per tutti gli SKU, queste informazioni non verranno specificate.
HTTP/1.1 200 OK
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
{
"pageSize": 1,
"totalSize": 1,
"results": [
{
"id": "1aa125798b04_01a14813-f6d1-494a-ace1-b84525cf3db4",
"type": "Percentage",
"productId": "DZH318Z0HJ49",
"publisherName": "Test Publisher Name",
"productTitle": "Test Offer Beta",
"skuTitle": "Test Offer Beta SKU 1",
"skuId": "0001",
"productType": "SaaS",
"marginPercentage": 10.0,
"startDate": "2022-02-24T18:38:02.8104364Z",
"endDate": "2022-04-30T23:59:59Z",
"status": "live",
"statusDate": "2022-02-24T18:38:02.8104364Z"
}
]
}
In questo esempio, l'autore ISV ha configurato il margine dell'offerta privata come prezzo personalizzato che sostituisce il prezzo originale della soluzione SaaS con contatori personalizzati. Anziché una proprietà marginPercentage come nell'esempio precedente, questa voce contiene una proprietà priceConfiguration che contiene i dettagli dei prezzi personalizzati.
Il pricingModel in questo esempio è elencato come modello "flat rate", ovvero si paga un importo impostato per periodo. Se l'ISV sta caricando un importo impostato per utente, pricingModel direbbe "per utente".
La matrice "purchase" contiene i dettagli dei prezzi per ogni durata del periodo. L'ISV in questo esempio ha configurato solo una durata del termine "Mensile", ma la matrice "purchase" può contenere anche una durata del termine "Annuale". All'interno della configurazione di acquisto per un determinato termine, includedMeterQuantities indica gli importi per ogni contatore personalizzato incluso nel prezzo. Poiché l'autore ISV può configurare punti di prezzo diversi per diversi mercati dei clienti, la matrice marketSetPrices contiene il prezzo personalizzato per ogni mercato e valuta in cui è disponibile l'offerta privata. In questo esempio, la tariffa fissa di 448,75262 GPB per un cliente nel mercato GB (Regno Unito) include 20 dispositivi e 30.000 messaggi di posta elettronica al mese.
La matrice "consumo" contiene le informazioni sui prezzi di eccedenza per ogni contatore personalizzato. Se il prodotto isv non ha contatori personalizzati, questa matrice sarà vuota. Si noterà che la matrice di consumo contiene una voce per ogni contatore personalizzato elencato in "includedMeterQuantities". In questo esempio, se si utilizzano più di 20 dispositivi al mese, si paga un ulteriore 0,44729 GBP per 1 dispositivo aggiuntivo al mese. Se si utilizzano più di 30.000 messaggi di posta elettronica, si paga 0,38765 GBP per 100 messaggi di posta elettronica aggiuntivi al mese.
HTTP/1.1 200 OK
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
{
"pageSize": 1,
"totalSize": 1,
"results": [
{
"id": "15680381dbad_fe3f0bc2-6372-48af-bbec-2df83918dbf2",
"type": "CustomPrice",
"productId": "DZH318Z0BDGN",
"publisherName": "Test Publisher Name",
"productTitle": "Test Offer Gamma",
"skuTitle": "Test Offer Gamma SKU 1",
"skuId": "0001",
"productType": "SaaS",
"priceConfiguration": {
"pricingModel": "Flat rate",
"purchase": [
{
"termDuration": "Monthly",
"includedMeterQuantities": [
"20 device",
"30000 email"
],
"startDate": "2022-01-31T17:49:25.1346812Z",
"endDate": "2028-08-31T23:59:59Z",
"marketSetPrices": [
{
"markets": [
"GB"
],
"currency": "GBP",
"customPrice": 447.29387
},
{
"markets": [
"BG",
"FI",
"IT",
"RO"
],
"currency": "GBP",
"customPrice": 448.75262
}
]
}
],
"consumption": [
{
"meterType": "device",
"unitofMeasure": "per 1 device",
"startDate": "2022-01-01T00:00:00Z",
"endDate": "2028-08-31T23:59:59Z",
"marketSetPrices": [
{
"markets": [
"GB"
],
"currency": "GBP",
"customPrice": 0.44729
},
{
"markets": [
"BG",
"FI",
"IT",
"RO"
],
"currency": "GBP",
"customPrice": 0.44875
}
]
},
{
"meterType": "email",
"unitofMeasure": "per 100 emails",
"startDate": "2022-01-01T00:00:00Z",
"endDate": "2028-08-31T23:59:59Z",
"marketSetPrices": [
{
"markets": [
"GB"
],
"currency": "GBP",
"customPrice": 0.38765
},
{
"markets": [
"BG",
"FI",
"IT",
"RO"
],
"currency": "GBP",
"customPrice": 0.38892
}
]
}
]
},
"startDate": "2022-01-31T17:49:25.1346812Z",
"endDate": "2028-08-31T23:59:59Z",
"status": "live",
"statusDate": "2022-01-31T17:49:25.1346812Z"
}
]
}
L'esempio precedente dovrebbe comportare quanto segue.