Atualizar um carrinhoUpdate a cart

Aplica-se aApplies To

  • Partner CenterPartner Center

Como atualizar um pedido para um cliente em um carrinho.How to update an order for a customer in a cart.

Pré-requisitosPrerequisites

  • Credenciais, conforme descrito em Autenticação do Partner Center.Credentials as described in Partner Center authentication. Esse cenário dá suporte à autenticação com aplicativos autônomos e aplicativos + credenciais de usuário.This scenario supports authentication with both standalone App and App+User credentials.

  • Uma ID do cliente (customer-tenant-id).A customer ID (customer-tenant-id). Se você não souber a ID do cliente, poderá procurar no painel do Partner Center.If you don't know the customer's ID, you can look it up in the Partner Center dashboard. Selecione CSP no menu do Partner Center e, em seguida, Clientes.Select CSP from the Partner Center menu, followed by Customers. Selecione o cliente na lista de clientes e selecione Conta.Select the customer from the customer list, then select Account. Na página Conta do cliente, procure a ID da Microsoft na seção Informações da Conta do Cliente.On the customer’s Account page, look for the Microsoft ID in the Customer Account Info section. A ID da Microsoft é igual à ID do cliente (customer-tenant-id).The Microsoft ID is the same as the customer ID (customer-tenant-id).

  • Uma ID de carrinho para um carrinho existente.A Cart ID for an existing cart.

C#C#

Para atualizar uma ordem para um cliente, obtenha o carrinho usando o método Get () passando o ID do cliente e do carrinho usando a função ById () .To update an order for a customer, get the cart using the Get() method by passing the customer and cart ID's using the ById() function. Faça as alterações necessárias no carrinho.Make the necessary changes to the cart. Agora, chame o método Put usando a ID do cliente e do carrinho usando o método ById () .Now call the Put method by using customer and cart ID's using the ById() method.

Por fim, chame o método put () ou PutAsync () para criar o pedido.Finally, call the Put() or PutAsync() method to create the order.

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);

Solicitação RESTREST request

Sintaxe da solicitaçãoRequest syntax

MétodoMethod URI da solicitaçãoRequest URI
PosicionePUT {baseURL}/v1/Customers/{Customer-ID}/carts/{cart-ID} http/1.1{baseURL}/v1/customers/{customer-id}/carts/{cart-id} HTTP/1.1

Parâmetros do URIURI parameters

Use os seguintes parâmetros de caminho para identificar o cliente e especifique o carrinho a ser atualizado.Use the following path parameters to identify the customer, and specify the cart to be updated.

NomeName TypeType ObrigatórioRequired DescriçãoDescription
ID do clientecustomer-id stringstring SimYes Uma ID de cliente formatada pelo GUID que identifica o cliente.A GUID formatted customer-id that identifies the customer.
ID do carrinhocart-id stringstring SimYes Uma ID de carrinho formatada pelo GUID que identifica o carrinho.A GUID formatted cart-id that identifies the cart.

Cabeçalhos de solicitaçãoRequest headers

Para obter mais informações, confira Cabeçalhos REST do Partner Center.For more information, see Partner Center REST headers.

Corpo da solicitaçãoRequest body

Esta tabela descreve as propriedades do carrinho no corpo da solicitação.This table describes the Cart properties in the request body.

PropriedadeProperty TipoType ObrigatórioRequired DescriçãoDescription
idid stringstring NoNo Um identificador de carrinho que é fornecido após a criação bem-sucedida do carrinho.A cart identifier that is supplied upon successful creation of the cart.
creationTimeStampcreationTimeStamp DatetimeDateTime NãoNo A data em que o carrinho foi criado, no formato de data e hora.The date the cart was created, in date-time format. Aplicado após a criação bem-sucedida do carrinho.Applied upon successful creation of the cart.
lastModifiedTimeStamplastModifiedTimeStamp DatetimeDateTime NãoNo A data em que o carrinho foi atualizado pela última vez, no formato de data e hora.The date the cart was last updated, in date-time format. Aplicado após a criação bem-sucedida do carrinho.Applied upon successful creation of the cart.
expirationTimeStampexpirationTimeStamp DatetimeDateTime NãoNo A data em que o carrinho irá expirar, em formato de data e hora.The date the cart will expire, in date-time format. Aplicado após a criação bem-sucedida do carrinho.Applied upon successful creation of cart.
lastModifiedUserlastModifiedUser Cadeia de caracteresstring NoNo O usuário que atualizou o carrinho pela última vez.The user who last updated the cart. Aplicado após a criação bem-sucedida do carrinho.Applied upon successful creation of cart.
itens de linhalineItems Matriz de objetosArray of objects SimYes Uma matriz de recursos de CartLineItem .An Array of CartLineItem resources.

Esta tabela descreve as propriedades CartLineItem no corpo da solicitação.This table describes the CartLineItem properties in the request body.

PropriedadeProperty TipoType ObrigatórioRequired DescriçãoDescription
idid stringstring NoNo Um identificador exclusivo para um item de linha do carrinho.A Unique identifier for a cart line item. Aplicado após a criação bem-sucedida do carrinho.Applied upon successful creation of cart.
catálogoidcatalogId stringstring SimYes O identificador do item de catálogo.The catalog item identifier.
friendlyNamefriendlyName Cadeia de caracteresstring NoNo Opcional.Optional. O nome amigável para o item definido pelo parceiro para ajudar a ambiguidade.The friendly name for the item defined by the partner to help disambiguate.
quantidadequantity INTint SimYes O número de licenças ou instâncias.The number of licenses or instances.
currencyCodecurrencyCode Cadeia de caracteresstring NoNo O código de moeda.The currency code.
billingCyclebillingCycle ObjetoObject SimYes O tipo de ciclo de cobrança definido para o período atual.The type of billing cycle set for the current period.
participantsparticipants Lista de pares de cadeias de caracteres de objetoList of Object String pairs NãoNo Uma coleção de participantes na compra.A collection of participants on the purchase.
provisioningContextprovisioningContext <de cadeia de caracteres de dicionário, Cadeia de caracteres>Dictionary<string, string> NãoNo Um contexto usado para provisionamento de oferta.A context used for provisioning of offer.
OrderGrouporderGroup Cadeia de caracteresstring NoNo Um grupo para indicar quais itens podem ser colocados juntos.A group to indicate which items can be placed together.
erroerror ObjetoObject NãoNo Aplicado após o carrinho ser criado em caso de erro.Applied after cart is created in case of an error.

Exemplo de solicitaçãoRequest example

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 RESTREST response

Se for bem-sucedido, esse método retornará o recurso de carrinho preenchido no corpo da resposta.If successful, this method returns the populated Cart resource in the response body.

Códigos de êxito e de erro de respostaResponse success and error codes

Cada resposta vem com um código de status HTTP que indica êxito ou falha e informações de depuração adicionais.Each response comes with an HTTP status code that indicates success or failure and additional debugging information. Use uma ferramenta de rastreamento de rede para ler esse código, o tipo de erro e os parâmetros adicionais.Use a network trace tool to read this code, error type, and additional parameters. Para obter a lista completa, confira Códigos de Erro.For the full list, see Error Codes.

Exemplo de respostaResponse example

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"
    }
}