Obtención de márgenes
Se aplica a: Centro de partners
Roles adecuados: Agente de administración
Como asociado en el programa CSP, puede llamar a la API getMargins para obtener una lista de los márgenes de oferta privados extendidos por los editores de ISV.
Requisitos previos
Credenciales tal como se describen en el artículo Autenticación del Centro de partners. Este escenario admite la autenticación con credenciales de aplicación independiente y app+usuario.
Solicitud REST
[GET] /v1/margin
Sintaxis de la solicitud
Método | URI de solicitud |
---|---|
GET | {baseURL}/v1/margin HTTP/1.1 |
Encabezados de solicitud
Para obtener más información, consulta Encabezados REST del Centro de partners.
Cuerpo de la solicitud
Ninguno
Ejemplo de solicitud
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
Respuesta REST
Si se ejecuta correctamente, esta solicitud devuelve una lista de márgenes de oferta privados. El publicador de ISV puede configurar el margen de oferta privado como un descuento por porcentaje fijo, que se aplica al precio original de la oferta, o como un precio personalizado que invalida el precio original de la oferta. Ambos tipos de margen se devuelven en la respuesta de la API GetMargins.
Cada elemento de línea de la respuesta contiene fechas de inicio y finalización. El margen de oferta privada solo se aplicará en las compras realizadas dentro de esas dos fechas. Las compras realizadas fuera de ese período de tiempo no obtendrán la ventaja del margen de oferta privada.
Códigos de error y de respuesta correctos
Cada respuesta incluye un código de estado HTTP que indica éxito o error y más información de depuración. Use una herramienta de seguimiento de red para leer este código, tipo de error y más parámetros. Para obtener la lista completa, consulte Códigos de error.
Ejemplos de respuesta
Margen de oferta privada basado en porcentajes
En este ejemplo, el publicador de ISV configuró el margen de oferta privada como un descuento porcentual fijo del precio original de la oferta. El descuento se muestra en la propiedad "percentageMargin". Dado que esta oferta privada se extiende para una SKU específica, se especifica información de SKU, como el nombre de la SKU y el identificador de SKU. Si el publicador de ISV decidió ampliar la oferta privada para todas las SKU, esta información no se especificaría.
Respuesta
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"
}
]
}
Margen de oferta privada de precios personalizados
En este ejemplo, el publicador de ISV configuró el margen de oferta privado como un precio personalizado que invalida el precio original de su solución SaaS con medidores personalizados. En lugar de una propiedad marginPercentage como en el ejemplo anterior, este elemento de línea contiene una propiedad priceConfiguration que contiene los detalles de los precios personalizados.
El modelo de precios de este ejemplo se muestra como un modelo de "tarifa plana", lo que significa que se paga una cantidad establecida por término. Si el ISV cobra una cantidad establecida por usuario, el pricingModel diría "por usuario".
La matriz de "compra" contiene los detalles de precios de cada duración del período. El ISV de este ejemplo solo ha configurado una duración de término "Mensual", pero la matriz de "compra" también podría contener una duración de término "Anual". Dentro de la configuración de compra para un término determinado, includedMeterQuantities indica los importes de cada medidor personalizado incluido en el precio. Dado que el publicador de ISV puede configurar diferentes puntos de precio para distintos mercados de clientes, la matriz marketSetPrices contiene el precio personalizado para cada mercado y moneda en el que está disponible la oferta privada. En este ejemplo, la tarifa plana de 448.75262 GPB para un cliente en el mercado de GB (Reino Unido) incluye 20 dispositivos y 30 000 correos electrónicos al mes.
La matriz "consumo" contiene la información de precios por encima del límite para cada medidor personalizado. Si el producto del ISV no tiene medidores personalizados, esta matriz estará vacía. Observará que la matriz de consumo contiene un elemento de línea para cada medidor personalizado que aparece en "includedMeterQuantities". En este ejemplo, si consume más de 20 dispositivos al mes, pagaría un adicional de 0,44729 GBP por 1 dispositivo adicional al mes. Si consume más de 30 000 correos electrónicos, pagaría 0,38765 GBP por 100 correos electrónicos adicionales al mes.
Respuesta
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"
}
]
}
El ejemplo anterior debería dar como resultado lo siguiente.