Guia de uso
Orders RDT
IMPORTANTE
Agora a funcionalidade das APIs:
buyerInfo
eshippingAddress
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á:
- Autorização do parceiro de vendas para o qual você está fazendo chamadas.
Para mais informações de como Registrar desenvolvedor no SellerCentral.
1. Adicione uma nova requisição
No canto superior esquerdo, clique em "New" e adicione uma nova requisição HTTP
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
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
Passando os dados obtidos
4. Headers
Na aba "Headers" devemos incluir a chave "x-amz-access-token", que criamos em 3. Refresh Token.
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"
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).
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.
O pedido é verificado e validado se é ou não um presente, caso seja é necessário obter informações sobre quem será presenteado.
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.
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
Updated about 2 years ago