Atualizar um carrinho

Como atualizar um pedido para um cliente em um carrinho.

Pré-requisitos

  • Credenciais descritas na autenticação do Partner Center. Este cenário suporta a autenticação com as credenciais de App autónoma e App+User.

  • Uma ID do cliente (customer-tenant-id). Se não souber a identificação do cliente, pode procurar no painel do Centro de Parceiros. Selecione CSP no menu Partner Center, seguido por Clientes. Selecione o cliente da lista de clientes e, em seguida, selecione Conta. Na página conta do cliente, procure o ID da Microsoft na secção Informação da Conta do Cliente . O ID da Microsoft é o mesmo que o ID do cliente (customer-tenant-id).

  • Uma identificação do carrinho para um carrinho existente.

C#

Para atualizar uma encomenda para um cliente, obtenha o carrinho utilizando o método Get() passando os IDs do cliente e do carrinho utilizando a função ById (). Faça as alterações necessárias no carrinho. Agora ligue para o método Put utilizando iDs de cliente e carrinho utilizando o método ById ().

Por último, ligue para o método Put() ou PutAsync para criar a ordem.

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 o atestado e incluir revendedores adicionais, consulte a amostra seguinte.

Amostra API - Check out carrinho

{
    "orders": [
        {
            "id": "f76c6b7f449d",
            "alternateId": "f76c6b7f449d",
            "referenceCustomerId": "f81d98dd-c2f4-499e-a194-5619e260344e",
            "billingCycle": "monthly",
            "currencyCode": "USD",
            "currencySymbol": "$",
            "lineItems": [
                {
                    "lineItemNumber": 0,
                    "offerId": "CFQ7TTC0LH0Z:0001:CFQ7TTC0K18P",
                    "subscriptionId": "ebc0beef-7ffb-4044-c074-16f324432139",
                    "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": "261bac40-7d88-4327-dfa3-dacd09222d62",
                    "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"
    }
}

Pedido de DESCANSO

Solicitar sintaxe

Método URI do pedido
PUT {baseURL}/v1/clientes/{customer-id}/carts/{cart-id} HTTP/1.1

Parâmetros URI

Utilize os seguintes parâmetros de trajetória para identificar o cliente e especifique o carrinho a atualizar.

Nome Tipo Necessário Descrição
id cliente string Yes Um id de cliente formatado GUID que identifica o cliente.
cart-id string Yes Um carro-id formatado GUID que identifica o carrinho.

Cabeçalhos do pedido

Para obter mais informações, consulte os cabeçalhos Partner Center REST.

Corpo do pedido

Esta tabela descreve as propriedades do Carrinho no corpo de pedido.

Propriedade Tipo Necessário Descrição
ID string No Um identificador de carrinhos que é fornecido após a criação bem sucedida do carrinho.
criaçãoTimeStamp DateTime No A data em que o carrinho foi criado, em formato de data. Aplicado após a criação bem sucedida do carrinho.
últimampada hora de tempos DateTime No A data em que o carrinho foi atualizado pela última vez, em formato de data-hora. Aplicado após a criação bem sucedida do carrinho.
expiraçãoTimeStamp DateTime No A data em que o carrinho expirará, em formato de data. Aplicado após a criação bem sucedida do carrinho.
últimoModifiedUser cadeia (de carateres) No O utilizador que atualizou pela última vez o carrinho. Aplicado após a criação bem sucedida do carrinho.
lineitems Matriz de objetos Yes Uma matriz de recursos CartLineItem .

Esta tabela descreve as propriedades do CartLineItem no corpo de pedido.

Propriedade Tipo Necessário Descrição
ID string No Um identificador único para um item de linha de carrinho. Aplicado após a criação bem sucedida do carrinho.
catalogId string Yes O identificador de artigos de catálogo.
nome amigável cadeia (de carateres) No Opcional. O nome amigável para o item definido pelo parceiro para ajudar a desambiguar.
quantidade int Yes O número de licenças ou instâncias.
currencyCode cadeia (de carateres) No O código da moeda.
billingCycle Objeto Yes O tipo de ciclo de faturação definido para o período atual.
participantes Lista de pares de cordas de objeto No Uma coleção de participantes na compra.
provisionamentoContexto Dicionário<, corda> No Um contexto utilizado para o provisionamento da oferta.
orderGroup cadeia (de carateres) No Um grupo para indicar quais os itens que podem ser colocados juntos.
erro Objeto No Aplicado após o carrinho é criado em caso de erro.
PartnerIdsOnRecord adicional String No Quando um fornecedor indireto estoende uma encomenda em nome de um revendedor indireto, povoe este campo apenas com o ID MPN do revendedor indireto adicional ( nunca o ID do fornecedor indireto). Não são aplicáveis incentivos a estes revendedores adicionais. Só podem ser introduzidos um máximo de 5 Revendedores Indiretos. Estes são apenas os parceiros aplicáveis que transacionam dentro dos países da UE/EFTA.

Exemplo de pedido

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: 0e93c70c-977a-4a88-9580-7cf084c73286
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": "3D5ECED6-1151-44C7-AEE6-70A4BB725666",
                    "Scope": "shared",
                    "Duration": "1Year"
                }
            }
        ],
    }
}

Resposta do REST

Se for bem sucedido, este método devolve o recurso cart povoado no corpo de resposta.

Códigos de sucesso e erro de resposta

Cada resposta vem com um código de estado HTTP que indica sucesso ou falha e informações adicionais de depuragem. Utilize uma ferramenta de rastreio de rede para ler este código, tipo de erro e parâmetros adicionais. Para obter a lista completa, consulte Códigos de Erro.

Exemplo de resposta

HTTP/1.1 201 Created
Content-Length: 764
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 0e93c70c-977a-4a88-9580-7cf084c73286
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": "3D5ECED6-1151-44C7-AEE6-70A4BB725666",
                "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"
    }
}