Atualização de Pedidos
Nesta seção mostraremos a estrutura e exemplos de requisições para atualização de status de pedidos
POST - Notificando o andamento do pedido
Como citado na guia Criação e Aprovação de Pedido Teste, em ambiente de homologação a aprovação de um pedido deve ser realizada via API. Em ambiente de produção, a aprovação ocorre no marketplace e a atualização desse status é encaminhada para a API, para consumo da plataforma/ERP.
Em ambos os casos (tanto para o ambiente de teste quanto para o de produção), após ocorrer a aprovação do pagamento é necessário prosseguir com o ciclo de vida do pedido, onde serão informados os dados de faturamento (NFe), dados de rastreamento da entrega e a notificação da entrega ao cliente final.
Para todas as requisições apresentadas a seguir serão utilizados os headers padronizados na API e descritos abaixo:
Request headers:
X-User-Email
email_de_usuario
X-Api-Key
token_de_integracao de sua conta SkyHub
X-Accountmanager-Key
token_account único de cada Plataforma/ERP
Accept
application/json
Content-Type
application/json
Os status utilizados nesta página para exemplificar a atualização de um pedido são aqueles padronizados na API. Os mesmos podem ser consultados na seção Status de Pedidos.
Caso a conta tenha cadastrado outros status, é importante a utilização dos criados.
A utilização de um status que não existe na conta retornará erro 422.
Atualizar para faturado (INVOICED)
A forma padrão de faturar um pedido é através do envio da chave da nota fiscal, ou seja, envio dos 44 dígitos da NFe. O faturamento através do envio da chave da NFe deve ser utilizado para pedidos Correios ou logística própria e sua requisição consiste em um POST contendo os headers apresentados acima para o endpoint:
https://api.skyhub.com.br/orders/{code}/invoice
Pedidos gerados para o serviço Direct devem seguir as orientações do artigo Faturamento Pedido - Americanas Entrega Direct.
Request body:
{
"status": "order_invoiced",
"invoice": {
"key": "99999999999999999999999999999999999999999999",
"issue_date": "AAAA-MM-DDTHH:MM:SS-03:00"
}
}
Será gerado uma etiqueta para cada entrega.
Example request:
curl --location --request POST 'https://api.skyhub.com.br/orders/Lojas Americanas-1000000000000/invoice' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"status": "order_invoiced",
"invoice": {
"key": "99999999999999999999999999999999999999999999",
"issue_date": "2023-03-10T12:30:00-03:00"
}
}'
Response esperado:
204 [Success] - No content
Atualizar para enviado para a transportadora (SHIPPED)
Após o faturamento, o pedido que for entregue para a transportadora deverá ter o seu status atualizado via API. Na operação de atualização para o status SHIPPED são informados os dados de rastreamento da entrega, como tipo de envio, código de rastreio, URL para rastreamento, dentre outros.
A requisição para atualização do status SHIPPED consiste em um POST contendo os headers apresentados no início desta página para o endpoint:
https://api.skyhub.com.br/orders/{code}/shipments
Request body:
{
"status": "order_shipped",
"shipment": {
"code": "{code}",
"delivered_carrier_date": "AAAA-MM-DDTHH:MM:SS-03:00",
"items": [
{
"sku": "{sku}",
"qty": 1
}
],
"track": {
"code": "{Código de rastreio}",
"carrier": "Correios",
"method": "SEDEX",
"url": "www.correios.com.br"
}
}
}
Ao utilizar o endpoint POST /orders/{CODIGO}/shipments, o campo shipment.track.code, é obrigatório
Example request:
curl --location --request POST 'https://api.skyhub.com.br/orders/Lojas Americanas-1000000000000/shipments' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"status": "order_shipped",
"shipment": {
"code": "Lojas Americanas-1000000000000",
"delivered_carrier_date": "2023-03-10T17:00:00-03:00",
"items": [
{
"sku": "2023001",
"qty": 1
}
],
"track": {
"code": "BR1122334455",
"carrier": "Correios",
"method": "SEDEX",
"url": "www.correios.com.br"
}
}
}'
Response esperado:
204 [Success] - No content
Atualizar para entregue ao cliente (DELIVERED)
Quando o pedido chega ao seu destino, o status da entrega deve ser enviado via API para que o fluxo seja finalizado.
A atualização para o status DELIVERED consiste em um POST contendo os headers apresentados no início desta página para o endpoint:
https://api.skyhub.com.br/orders/{code}/delivery
Request body:
{
"status": "complete",
"delivered_date": "DD/MM/AAAA"
}
Importante encaminhar a data correta no campo delivered_date.
Uma vez que esta informação não for devidamente enviada, a entrega assumirá a data/hora em que a atualização do status for encaminhada da API para o marketplace.
Example request:
curl --location --request POST 'https://api.skyhub.com.br/orders/Lojas Americanas-1000000000000/delivery' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"status": "complete",
"delivered_date": "13/03/2023"
}'
Response esperado:
204 [Success] - No content
Outros status
O ciclo de vida comum para um pedido consiste em sua criação (NEW), aprovação (APPROVED), faturamento (INVOICED), envio para a transportadora (SHIPPED) e entrega ao cliente (DELIVERED), porém podem ocorrer eventualidades durante o fluxo, como o cancelamento (CANCEL) ou um atraso na entrega (SHIPMENT_EXCEPTION).
Cancelar pedido (CANCEL)
Em um ambiente de produção, o cancelamento de um pedido pode ser realizado pelo cliente responsável pela compra ou pelo seller (lojista).
Em ambiente de teste, é possível simular o cancelamento e para isto deve ser executado um POST contendo os headers apresentados no início desta página para o endpoint:
https://api.skyhub.com.br/orders/{code}/cancel
Request body:
{
"status": "order_canceled"
}
Example request:
curl --location --request POST 'https://api.skyhub.com.br/orders/Lojas Americanas-1200000000002/cancel' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"status": "order_canceled"
}'
Response esperado:
204 [Success] - No content
Exceção de entrega (SHIPMENT_EXCEPTION)
A exceção de entrega se refere a quando o transporte de uma mercadoria apresentou quaisquer problemas. A notificação deste problema via API é realizada através de um POST contendo os headers apresentados no início desta página para o endpoint:
https://api.skyhub.com.br/orders/{code}/shipment_exception
Request body:
{
"shipment_exception": {
"occurrence_date": "AAAA-MM-DDTHH:MM:SS+00:00",
"observation": "Temporary delay"
}
}
Example request:
curl --location --request POST 'https://api.skyhub.com.br/orders/Lojas Americanas-1300000000003/shipment_exception' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"shipment_exception": {
"occurrence_date": "2023-03-10T19:30:00+00:00",
"observation": "Problemas com a transportadora selecionada"
}
}'
Response esperado:
204 [Success] - No content
Last updated