Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede comprar complementos a través de un carrito. Para obtener más información sobre lo que está disponible actualmente para vender, consulte Ofertas de socios en el programa Proveedor de soluciones en la nube.
Nota:
Las nuevas experiencias comerciales para los servicios basados en licencias incluyen muchas funcionalidades nuevas y están disponibles para todos los Proveedores de soluciones en la nube (CSP). Para obtener más información, consulte información general sobre las nuevas experiencias comerciales.
Los nuevos carros comerciales con complementos son diferentes de las ofertas tradicionales basadas en licencias. Los nuevos complementos comerciales se compran de la misma manera que las ofertas base, no usan la propiedad addonItems . En este tema se incluyen ejemplos de solicitud y respuesta específicamente para una nueva SKU de producto basada en el comercio con un SKU de producto complementario.
Nota:
Los carritos caducan a los 7 días de la creación inicial.
Prerrequisitos
Credenciales tal como se describe en Autenticación del Centro de asociados. Este escenario admite la autenticación con credenciales de aplicación independiente y app+usuario.
Un ID de cliente (
customer-tenant-id). Si no conoce el identificador del cliente, puede buscarlo en Partner Center seleccionando el área de trabajo Clientes, luego el cliente de la lista de clientes y, a continuación, Cuenta. En la página Cuenta del cliente, busca el Id. de Microsoft en la sección Información de la cuenta del cliente. El ID de Microsoft es el mismo que el ID de cliente (customer-tenant-id).
C#
Un carrito permite la compra de una oferta base y sus complementos correspondientes. Siga estos pasos para crear un carrito:
Cree una instancia de un objeto Cart .
Cree una lista de objetos CartLineItem que representen las ofertas base y asigne la lista a la propiedad LineItems del carrito.
En la línea de pedido del carro de cada oferta base, rellene la lista de AddOnItems con otros objetos CartLineItem , cada uno de los cuales representa un complemento que se comprará con esa oferta base.
Obtenga una interfaz para las operaciones de carro mediante IAggregatePartner para llamar al método ICustomerCollection.ById con el identificador de cliente para identificar al cliente y, a continuación, recuperar la interfaz de la propiedad Cart .
Por último, llame al método Create o CreateAsync para crear el carro.
Ejemplo de C#
// IAggregatePartner partnerOperations;
// string customerId;
var cart = new Cart()
{
LineItems = new List<CartLineItem>()
{
new CartLineItem()
{
Id = 0,
CatalogItemId = "A_base_offer_ID",
FriendlyName = "Myofferpurchase",
Quantity = 3,
BillingCycle = BillingCycleType.Monthly,
AddonItems = new List<CartLineItem>
{
new CartLineItem
{
Id = 1,
CatalogItemId = "An_addon_item_ID",
BillingCycle = BillingCycleType.Monthly,
Quantity = 2,
},
new CartLineItem
{
Id = 2,
CatalogItemId = "Another_addon_item_ID",
BillingCycle = BillingCycleType.Monthly,
Quantity = 3
}
}
}
}
};
var createdCart = partnerOperations.Customers.ById(customerId).Carts.Create(cart);
Siga estos pasos para crear un carro que permita la compra de complementos con respecto a las suscripciones básicas existentes:
Cree un carro con un nuevo CartLineItem que contenga el identificador de suscripción en la propiedad ProvisioningContext con la clave "ParentSubscriptionId".
Llame al método Create o CreateAsync .
// IAggregatePartner partnerOperations;
// string selectedCustomerId;
var cart = new Cart()
{
LineItems = new List<CartLineItem>()
{
new CartLineItem()
{
Id = 0,
CatalogItemId = "An_addon_item_ID",
ProvisioningContext = new Dictionary<string, string>
{
{
"ParentSubscriptionId", "An_existing_subscription_Id"
}
},
Quantity = 1,
BillingCycle = BillingCycleType.Annual,
}
}
};
var createdCart = partnerOperations.Customers.ById(selectedCustomerId).Carts.Create(cart);
Solicitud REST
Sintaxis de la solicitud
| Método | Solicitud de URI |
|---|---|
| EXPONER | {baseURL}/v1/customers/{customer-id}/carts HTTP/1.1 |
Parámetro de URI
Use el siguiente parámetro de ruta de acceso para identificar al cliente.
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| customer-id | cuerda / cadena | Sí | Identificador de cliente con formato GUID que identifica al cliente. |
Cabeceras de solicitud
Para más información, consulte Encabezados REST del Centro de partners.
Cuerpo de la solicitud
En esta tabla se describen las propiedades de Cart en el cuerpo de la solicitud.
| Propiedad | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| identificación | cuerda / cadena | No | Un identificador de carrito que se proporciona tras la creación correcta del carrito. |
| creationTimeStamp | Fecha y hora | No | La fecha en que se creó el carrito, en formato de fecha y hora. Se aplica tras la creación exitosa del carrito. |
| lastModifiedTimeStamp | Fecha y hora | No | La fecha en que se actualizó por última vez el carrito, en formato de fecha y hora. Se aplica tras la creación exitosa del carrito. |
| expirationTimeStamp | Fecha y hora | No | La fecha en que caduca el carrito, en formato de fecha y hora. Se aplica tras la creación exitosa del carrito. |
| lastModifiedUser | cuerda / cadena | No | El usuario que actualizó el carrito por última vez. Se aplica tras la creación exitosa del carrito. |
| lineItems | Matriz de objetos | Sí | Matriz de recursos CartLineItem . |
En esta tabla se describen las propiedades de CartLineItem en el cuerpo de la solicitud.
| Propiedad | Tipo | Descripción |
|---|---|---|
| identificación | cuerda / cadena | Un identificador único para una línea de pedido del carrito. Se aplica tras la creación exitosa del carrito. |
| catalogId | cuerda / cadena | El identificador de elemento del catálogo. |
| nombre amistoso | cuerda / cadena | Opcional. Nombre descriptivo del elemento definido por el asociado para ayudar a desambiguar. |
| cantidad | Int | Número de licencias o instancias. |
| código de moneda | cuerda / cadena | El código de moneda. |
| BillingCycle | Objeto | Tipo de ciclo de facturación establecido para el período actual. |
| Participantes | Lista de pares de cadenas de objetos | Una colección de PartnerId en el registro (PartnerID) en la compra. |
| provisioningContext | Cadena de diccionario<, cadena> | Contexto utilizado para el aprovisionamiento de la oferta. |
| orderGroup | cuerda / cadena | Un grupo para indicar qué elementos se pueden colocar juntos. |
| addonItems | Lista de objetos CartLineItem | Una colección de líneas de pedido del carro para complementos que se comprarán para la suscripción básica que resulta de la compra de la línea de pedido del carro principal. Esta propiedad es solo para carros tradicionales basados en licencias, los nuevos carros comerciales basados en licencias incluyen complementos como ofertas basadas. Los artículos de nuevo comercio no usan esta propiedad addonItems . |
| error | Objeto | Se aplica después de crear el carrito si hay un error. |
Ejemplo de solicitud (nueva suscripción base) para la versión tradicional basada en licencias
En el siguiente ejemplo de REST se muestra cómo crear un carro con elementos complementarios para una nueva suscripción básica.
POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
{
"LineItems": [
{
"Id":0,
"CatalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
"FriendlyName":"Myofferpurchase",
"Quantity":3,
"BillingCycle":"monthly",
"AddonItems": [
{
"Id":1,
"CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"Quantity":2,
"BillingCycle":"monthly"
},
{
"Id":2,
"CatalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
"Quantity":3,
"BillingCycle":"monthly"
}
]
}
]
}
Ejemplo de solicitud (nueva suscripción base) para un nuevo carro comercial para una oferta base con un complemento
{
"LineItems": [
{
"Id": 0,
"CatalogItemId":"CFQ7TTC0LFLX:0001:CFQ7TTC0LB30", - Base
"Quantity": 20,
"BillingCycle": "Monthly",
"TermDuration": "P1M"
},
{
"Id": 1,
"CatalogItemId":"CFQ7TTC0HDJX:0001:CFQ7TTC0K806", - Add on
"Quantity": 20,
"BillingCycle": "Monthly",
"TermDuration": "P1M"
}
]
}
Ejemplo de solicitud (suscripción base existente) para licencias tradicionales
En el siguiente ejemplo de REST se muestra cómo anexar complementos a una suscripción base existente. Este ejemplo solo es relevante para el comercio tradicional basado en licencias, no para el nuevo.
POST https://api.partnercenter.microsoft.com/v1/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
{
"LineItems": [
{
"Id":0,
"CatalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"Quantity":1,
"BillingCycle":"annual",
"ProvisioningContext":{"ParentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"}
}
]
}
Respuesta REST
Si se realiza correctamente, este método devuelve el recurso Cart rellenado en el cuerpo de la respuesta.
Códigos de éxito y de error de la respuesta
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.
Ejemplo de respuesta (nueva suscripción base) para licencias tradicionales
HTTP/1.1 201 Created
Content-Length: 958
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: f931348a-6312-47d0-a8dd-31a386dedb8f
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:29:05 GMT
{
"id":"dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
"creationTimestamp":"2018-11-01T22:29:03.6900182Z",
"lastModifiedTimestamp":"2018-11-01T22:29:03.6900182Z",
"expirationTimestamp":"2018-11-01T22:44:05.0025799Z",
"lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
"status":"Active",
"lineItems": [
{
"id":0,
"catalogItemId":"91FD106F-4B2C-4938-95AC-F54F74E9A239",
"friendlyName":"Myofferpurchase",
"quantity":3,
"currencyCode":"USD",
"billingCycle":"monthly",
"orderGroup":"OMS-0",
"addonItems": [
{
"id":1,
"catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"quantity":2,
"currencyCode":"USD",
"billingCycle":"monthly",
"orderGroup":"OMS-0"
},
{
"id":2,
"catalogItemId":"43FCE491-76D1-4BCC-B709-8A288786DBAE",
"quantity":3,
"currencyCode":"USD",
"billingCycle":"monthly",
"orderGroup":"OMS-0"
}
]
}
],
"links": {
"self": {
"uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/dbe2f8d4-f21d-43e2-9356-cff6387c4ba1",
"method":"GET",
"headers":[
]
}
},
"attributes": {
"objectType":"Cart"
}
}
Ejemplo de respuesta (suscripción base existente) para la suscripción tradicional basada en licencias
HTTP/1.1 201 Created
Content-Length: 707
Content-Type: application/json
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
MS-RequestId: 512a777a-5427-452d-9637-18421387e435
X-Locale: en-US,en-US
Date: Thu, 01 Nov 2018 22:46:18 GMT
{
"id":"4d927e27-93d1-448b-abe5-819b66ecca22",
"creationTimestamp":"2018-11-01T22:46:16.2996364Z",
"lastModifiedTimestamp":"2018-11-01T22:46:16.2996364Z",
"expirationTimestamp":"2018-11-01T23:01:18.7543264Z",
"lastModifiedUser":"1824b7fc-2fac-4478-b177-66823c40ab75",
"status":"Active",
"lineItems": [
{
"id":0,
"catalogItemId":"C94271D8-B431-4A25-A3C5-A57737A1C909",
"quantity":1,
"currencyCode":"USD",
"billingCycle":"annual",
"provisioningContext": {
"parentSubscriptionId":"97555B61-7461-477A-A98C-9C76148783E4"
},
"orderGroup":"OMS-0"
}
],
"links": {
"self": {
"uri":"/customers/18ac2950-8ea9-4dfc-92a4-ff4d4cd57796/carts/4d927e27-93d1-448b-abe5-819b66ecca22",
"method":"GET",
"headers":[
]
}
},
"attributes": {
"objectType":"Cart"
}
}
Ejemplo de respuesta para una nueva oferta base y complemento basados en licencias comerciales
{
"id": "ea37ea81-efaf-4113-9785-e1c266aea2ed",
"creationTimestamp": "2022-02-10T16:04:22.4908435Z",
"lastModifiedTimestamp": "2022-02-10T16:04:22.4908444Z",
"expirationTimestamp": "2022-02-17T16:04:26.3085755Z",
"lastModifiedUser": "a7155e79-65e3-42b0-a62a-a41297979782",
"status": "Active",
"lineItems": [
{
"id": 0,
"catalogItemId": "CFQ7TTC0LFLX:0001:CFQ7TTC0LB30", - Base
"quantity": 20,
"currencyCode": "USD",
"billingCycle": "monthly",
"termDuration": "P1M",
"promotionId": "39NFJQT1PHSN:0008:39NFJQT1Q5J0",
"provisioningContext": {},
"orderGroup": "0"
},
{
"id": 1,
"catalogItemId": "CFQ7TTC0HDJX:0001:CFQ7TTC0K806", - Add on
"quantity": 20,
"currencyCode": "USD",
"billingCycle": "monthly",
"termDuration": "P1M",
"provisioningContext": {},
"orderGroup": "0"
}
],
"links": {
"self": {
"uri": "/customers/3a15e1df-b095-41d4-9029-27a5974c2458/carts/ea37ea81-efaf-4113-9785-e1c266aea2ed",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}