Guia de uso

Orders RDT

❗️

IMPORTANTE

Agora a funcionalidade das APIs:buyerInfo e shippingAddress pode ser obtida através da chamada getOrders com um único RDT Token.

Tutorial

Para obter informações sensíveis de pedidos como, endereço, CEP, número, informações do comprador, deve ser passado na chamada de orders o RDT Token.

Os valores de dataElements que você especifica com a operação createRestrictedDataToken determinam o tipo de dados que o RDT autoriza seu aplicativo a acessar.

Pré-requisitos

Para concluir este tutorial, você precisará:

1. Adicione uma nova requisição

No canto superior esquerdo, clique em "New" e adicione uma nova requisição HTTP

333

2. Requisição POST

A requisição deve ser do tipo POST para a seguinte URL:

https://sellingpartnerapi-na.amazon.com/tokens/2021-03-01/restrictedDataToken
130

3. Authorization

Na aba "Authorization" devemos incluir os dados do Session Token, que criamos em 2. Session Token (STS), passe esses dados em "AccessKey", "SecretKey" e "Session Token".

Exemplo de Session Token

266

Passando os dados obtidos

752

4. Headers

Na aba "Headers" devemos incluir a chave "x-amz-access-token", que criamos em 3. Refresh Token.

416

5. Body

No corpo da requisição é necessário o envio do seguinte JSON:

{
  "restrictedResources": [
    {
      "method": "GET",
      "path": "/orders/v0/orders",
      "dataElements": ["buyerInfo", "shippingAddress"]
    }
  ]
}

6. Send

Faça a criação do Feed clicando no botão "Send"

116

7. Sucesso na criação

Se você obteve êxito na criação você deve receber um restrictedDataToken e expiresIn, como no exemplo, esse Token deve ser passado nas chamadas de Order na chave x-amz-access-token do Headers.

{
    "expiresIn": 3600,
    "restrictedDataToken": "Atz.sprdt|AYABeCv+cTIjsYiLjsOOwPz8kikAAAABAAdhd3Mta21=="
}

Salve o valor do restrictedDataToken (RDT) para usar em 2. Incluir RDT na chamada da getOrders.

2. Incluir RDT na chamada da getOrders

Faça a chamada em getOrders da API de pedidos, especificando os parâmetros apropriados para filtrar os pedidos que você deseja.

Certifique-se de incluir o RDT (que você salvou na Etapa 1. Obtenha um token RDT no cabeçalho x-amz-access-token de sua chamada para getOrders.

Como você especificou buyerInfo e shippingAddress , sua chamada para getOrders retorna as informações do comprador e do endereço de entrega para cada pedido.

Se você tivesse especificado apenas buyerInfo retornaria apenas informações do comprador para cada pedido.

Se você tivesse especificado apenas shippingAddress retornaria apenas informações de endereço de entrega para cada pedido.

Reserva de Estoque

O conceito de reserva de estoque é comum em alguns marketplaces e, agora na Amazon, podemos utilizá-lo para melhorar a experiência do comprador.

O que é?

A reserva de estoque consiste em evitar que um pedido não possa ser entregue ao comprador por falta de itens no inventário do vendedor.

Por que é necessário?

As vezes, a aprovação financeira de um pedido pode demorar alguns dias para acontecer (como é o caso de um pagamento por boleto). Durante este período, é necessário ‘reservar’ o item que o comprador pediu (enquanto se espera o processamento) para evitar que todo o estoque do produto seja vendido e quando o processamento finalmente é aprovado, não há mais reserva de inventário. Nesta seção, explicamos o fluxo para reservar um estoque e as APIs necessárias.

O fluxo da reserva de estoque

Basicamente, o fluxo consiste em o desenvolvedor buscar os pedidos com status Pending (pedidos que ainda não tiveram o pagamento aprovado). Com essa lista, subtrair todos os itens com status Pending do estoque do vendedor (via Feed de Inventário). Depois, checar se estes itens tiveram seus status alterados para Unshipped. Se isso aconteceu, quer dizer que o pedido foi aprovado e pode-se seguir para o fluxo de Orders. Caso o pedido tenha sido cancelado, restaurar ao estoque, os intem que estavam com status Pending (via Feed de Estoque).

1059

Buscar pedidos com status Pending

Abaixo um exemplo GET de busca de status Pending:

GET https://sellingpartnerapi-na.amazon.com/orders/v0/orders?CreatedAfter=2021-01-01T12-12-12Z&MarketplaceIds=ATVPDKIKX0DER&OrderStatuses=Pending

Exemplo de Request para Feed de Order (atualizando o estoque de 2001 para 2000 unidades).

<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"
  >
	<Header>
		<DocumentVersion>1.01</DocumentVersion>
		<MerchantIdentifier>A1AAAAA891121N</MerchantIdentifier>
	</Header>
	<MessageType>Inventory</MessageType>
	<Message>
		<MessageID>1</MessageID>
		<OperationType>Update</OperationType>
		<Inventory>
			<SKU>teste</SKU>
			<Quantity>2000</Quantity>
		</Inventory>
	</Message>
</AmazonEnvelope>

Fluxo de Orders

Fluxo de Orders (Pedido)

Para buscar uma lista de Orders e os dados dos pedidos, para um determinado range de datas, o desenvolvedor deverá chamar a API de getOrders. Para cada OrderID da lista obtida, executar 3 APIs (getOrderBuyerInfo, getOrderAddress, getOrderItems), para obter todas as informações referentes aos pedidos. Somente executar getOrderItemsBuyerInfo se algum OrderItemID encontrado na API getOrderItems retornou IsGift = true. Quando isso ocorre, quer dizer que algum item do pedido é para embrulho de presente e as informações de custo deste embrulho estão na API de getOrderItemsBuyerInfo.

Reserva de estoque

1184

O pedido é verificado e validado se é ou não um presente, caso seja é necessário obter informações sobre quem será presenteado.

1749

Realiza o processamento da Order com as informações obtidas.
Caso não tenha todas as informações ele retorna para o primeiro fluxo para buscar informações do comprador.

995

🚧

Cuidado com o NextToken

Para as APIs de getOrders, getOrderItems e getOrderItemsBuerInfo, o desenvolvedor precisa checar se a resposta apresentou NextToken diferente de vazio. Caso isso aconteça, chamar a API novamente e inserir o valor do NextToken que veio na resposta anterior como parâmetro da nova chamada e acumular os OrderIDs novos. Ficar no loop até que a resposta da API venha com NextToken vazio

🚧

Implementar a gestão do throttling

Todas as APIs de Orders possuem um Rate e Burst limits inicial e o integrador deve desenvolver uma lógica para controlar a frequência com a qual ele vai chamar as APIs, respeitando os limites de Rate e Burst

🚧

Dynamic Throttling

Os limites de Rate e Burst não são fixos para as APIs de Orders. Ele irá mudar ao longo do tempo, conforme o uso do integrador (pode aumentar ou diminuir). Para ter os valores atualizados, deve-se ler o header de Rate Limit (x-amzn-RateLimit-Limit) em todas as APIs de Orders e aplicar substituir esses novos valores nas variáveis de Rate e Burst.

Processamento de Orders

🚧

Feeds de Processamento

Para mais informações sobre os feeds de processamento de pedidos, clique aqui

Após importar os pedidos para a plataforma, o vendedor irá processá-los.

Há algumas coisas que ele pode querer fazer com um pedido depois que seu sistema o receber e consumir, como: cancelar o pedido; enviar uma notificação de envio para o comprador (ou de devolução para a Amazon); aceitar/rejeitar um pedido de devolução. Para notificar a Amazon sobre o resultado de qualquer uma das ações acima é necessário enviar algo para a Amazon. Felizmente, a Amazon oferece uma API de feeds, que permite que os vendedores construam e enviem mensagens de feed de maneira programática para a Amazon. Observe que quando mencionamos “mensagens de feed”, estamos nos referindo a mensagens XML que a Amazon eventualmente consumirá. Abaixo segue:

👍

Feeds Passo a Passo

Consulte o Passo a Passo para o envio de Feeds