Actualizar un carro
Cómo actualizar un pedido para un cliente en un carro.
Tenga en cuenta que los carros expiran siete días a partir de la creación inicial.
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.
Un id. de cliente (
customer-tenant-id
). Si no conoce el identificador del cliente, puede buscarlo en el Centro de partners 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 de cliente (customer-tenant-id
).Un identificador de carro para un carro existente.
C#
Para actualizar un pedido de un cliente, obtenga el carro mediante el método Get() pasando los identificadores de cliente y carro mediante la función ById(). Realice los cambios necesarios en el carro. Ahora llame al método Put mediante identificadores de cliente y carro mediante el método ById().
Por último, llame al método Put() o PutAsync() para crear el pedido.
IAggregatePartner partnerOperations;
string customerId;
string cartId;
var cart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Get();
cart.LineItems.ToArray()[0].Quantity++;
var updatedCart = partnerOperations.Customers.ById(customerId).Cart.ById(cartId).Put(cart);
Para completar la atestación e incluir otros revendedores, consulte el ejemplo siguiente.
Ejemplo de API: des check out cart
{
"orders": [
{
"id": "f76c6b7f449d",
"alternateId": "f76c6b7f449d",
"referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
"billingCycle": "monthly",
"currencyCode": "USD",
"currencySymbol": "$",
"lineItems": [
{
"lineItemNumber": 0,
"offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"termDuration": "P1M",
"transactionType": "New",
"friendlyName": "AI Builder Capacity add-on",
"quantity": 1,
"links": {
"product": {
"uri": "/products/CFQ7TTC0LH0Z?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LH0Z/skus/0001/availabilities/CFQ7TTC0K18P?country=US",
"method": "GET",
"headers": []
}
}
},
{
"lineItemNumber": 1,
"offerId": "CFQ7TTC0LFLS:0002:CFQ7TTC0KDLJ",
"subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"termDuration": "P1Y",
"transactionType": "New",
"friendlyName": "Azure Active Directory Premium P1",
"quantity": 2,
"partnerIdOnRecord": "517285",
"additionalPartnerIdsOnRecord":
"5357564",
"5357563"
],
"links": {
"product": {
"uri": "/products/CFQ7TTC0LFLS?country=US",
"method": "GET",
"headers": []
},
"sku": {
"uri": "/products/CFQ7TTC0LFLS/skus/0002?country=US",
"method": "GET",
"headers": []
},
"availability": {
"uri": "/products/CFQ7TTC0LFLS/skus/0002/availabilities/CFQ7TTC0KDLJ?country=US",
"method": "GET",
"headers": []
}
}
}
],
"creationDate": "2021-08-18T07:52:23.1921872Z",
"status": "pending",
"transactionType": "UserPurchase",
"links": {
"self": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d",
"method": "GET",
"headers": []
},
"provisioningStatus": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d/provisioningstatus",
"method": "GET",
"headers": []
},
"patchOperation": {
"uri": "/customers/f81d98dd-c2f4-499e-a194-5619e260344e/orders/f76c6b7f449d",
"method": "PATCH",
"headers": []
}
},
"client": {},
"attributes": {
"objectType": "Order"
}
}
],
"attributes": {
"objectType": "CartCheckoutResult"
}
}
Solicitud REST
Sintaxis de la solicitud
Método | URI de la solicitud |
---|---|
PUT | {baseURL}/v1/customers/{customer-id}/carts/{cart-id} HTTP/1.1 |
Parámetros de URI
Use los siguientes parámetros de ruta de acceso para identificar al cliente y especifique el carro que se va a actualizar.
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
customer-id | string | Sí | Identificador de cliente con formato GUID que identifica al cliente. |
cart-id | string | Sí | Identificador de carro con formato GUID que identifica el carro. |
Encabezados de solicitud
Para obtener más información, consulta Encabezados REST del Centro de partners.
Cuerpo de la solicitud
En esta tabla se describen las propiedades cart en el cuerpo de la solicitud.
Propiedad | Type | Obligatorio | Descripción |
---|---|---|---|
id | string | No | Identificador de carro que se suministra tras la creación correcta del carro. |
creationTimeStamp | DateTime | No | Fecha en que se creó el carro, en formato de fecha y hora. Aplicado tras la creación correcta del carro. |
lastModifiedTimeStamp | DateTime | No | Fecha en que el carro se actualizó por última vez, en formato de fecha y hora. Aplicado tras la creación correcta del carro. |
expirationTimeStamp | DateTime | No | La fecha en que expirará el carro, en formato de fecha y hora. Aplicado tras la creación correcta del carro. |
lastModifiedUser | string | No | Usuario que actualizó por última vez el carro. Aplicado tras la creación correcta del carro. |
lineItems | Matriz de objetos | Sí | Matriz de recursos CartLineItem . |
En esta tabla se describen las propiedades CartLineItem en el cuerpo de la solicitud.
Propiedad | Type | Obligatorio | Descripción |
---|---|---|---|
id | string | No | Identificador único de un elemento de línea de carro. Aplicado tras la creación correcta del carro. |
catalogId | string | Sí | Identificador del elemento de catálogo. |
friendlyName | string | No | Opcional. Nombre descriptivo del elemento definido por el asociado para ayudar a desambiguar. |
promotionId | string | No | Opcional. La mayoría de las promociones de NCE se aplicarán automáticamente, pero para que las promociones opcionales (como Bridge to the Cloud 2) se apliquen a un elemento de línea de carro, los partners deben incluir el identificador de promoción en la solicitud de agregar al carro. |
cantidad | int | Sí | Número de licencias o instancias. |
currencyCode | string | No | El código de divisa. |
billingCycle | Object | Sí | Tipo de ciclo de facturación establecido para el período actual. |
participants | Lista de pares de cadenas de objeto | No | Colección de participantes en la compra. |
provisioningContext | Cadena de diccionario<, cadena> | No | Contexto que se usa para el aprovisionamiento de la oferta. |
orderGroup | string | No | Un grupo para indicar qué elementos se pueden colocar juntos. |
error | Object | No | Aplicado después de crear el carro en un error. |
AdditionalPartnerIdsOnRecord | Cadena | No | Cuando un proveedor indirecto realiza un pedido en nombre de un revendedor indirecto, rellene este campo con el PartnerID del revendedor indirecto adicional ( nunca el identificador del proveedor indirecto). Los incentivos no son aplicables a estos otros revendedores. Solo se puede especificar un máximo de cinco revendedores indirectos. Solo se trata de asociados aplicables que realizan transacciones en países o regiones de la UE/AELC. |
Ejemplo de solicitud
PUT /v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/65faf57b-0205-47ee-92b3-08dcf233ea73/ HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
MS-PartnerCenter-Client: Partner Center .NET SDK
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 496
Expect: 100-continue
{
{
"Id":"b4c8fdea-cbe4-4d17-9576-13fcacbf9605",
"CreationTimestamp":"2018-03-15T17:15:02.3840528Z",
"LastModifiedTimestamp":"2018-03-15T17:15:02.3840528Z",
"ExpirationTimestamp":"0001-01-01T00:00:00",
"LastModifiedUser":"2713ccd7-ea3b-470a-9cfb-451d5d0482cc",
"LineItems":[
{
"Id":0,
"CatalogItemId":"DG7GMGF0DWTL:0001:DG7GMGF0DSJB",
"FriendlyName":"A_sample_Azure_RI",
"Quantity":2,
"BillingCycle":"one_time",
"ProvisioningContext": {
"SubscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"Scope": "shared",
"Duration": "1Year"
}
}
],
}
}
Importante
A partir de junio de 2023, la versión 3.4.0 más reciente del SDK de .NET del Centro de partners ahora está archivada. Puede descargar esta versión del SDK de GitHub, junto con un archivo Léame que contiene información útil.
Se recomienda a los partners seguir usando las API REST del Centro de partners.
Respuesta REST
Si se ejecuta correctamente, este método devuelve el recurso Cart rellenado en el cuerpo de la respuesta.
Códigos de error y de respuesta correctos
Cada respuesta incluye un código de estado HTTP que indica si la operación se ha realizado correctamente o con errores y proporciona información de depuración adicional. 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
HTTP/1.1 201 Created
Content-Length: 764
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 4fa6dad6-a89f-4875-8247-8294a10ae1cf
X-Locale: en-US,en-US
MS-CV: sF/wRa2ih0CzbABc.0
MS-ServerId: 000001
Date: Thu, 15 Mar 2018 17:15:01 GMT
{
"id": "b4c8fdea-cbe4-4d17-9576-13fcacbf9605",
"creationTimestamp": "2018-03-15T17:15:02.3840528Z",
"lastModifiedTimestamp": "2018-03-15T17:15:02.3840528Z",
"lastModifiedUser": "2713ccd7-ea3b-470a-9cfb-451d5d0482cc",
"lineItems": [
{
"id": 0,
"catalogItemId": "DG7GMGF0DWTL:0001:DG7GMGF0DSJB",
"friendlyName": "A_sample_Azure_RI",
"quantity": 2,
"currencyCode": "USD",
"billingCycle": "one_time",
"ProvisioningContext": {
"subscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"scope": "shared",
"duration": "1Year"
}
"orderGroup": "0"
}
],
"links": {
"self": {
"uri": "/v1/customers/d6bf25b7-e0a8-4f2d-a31b-97b55cfc774d/carts/b4c8fdea-cbe4-4d17-9576-13fcacbf9605/",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Cart"
}
}