Integração e Status de Pedidos

O que são os status dos pedidos?

Os status dos pedidos representam os pontos pelos quais os pedidos passam, desde o momento da compra até a entrega ao cliente.

Quais os status dos pedidos cadastrados na Skyhub?

Code

Label

Type

Descrição

book_product

NEW - Pagamento Pendente (SkyHub)

NEW

NEW é o status que o pedido recebe quando gerado no marketplace.

payment_received

Aprovado (SkyHub)

APPROVED

Approved é o status que o pedido recebe quando o pagamento é aprovado (confirmado).

order_canceled

Cancelado (SkyHub)

CANCELED

Canceled é o status que o pedido recebe quando o mesmo foi cancelado, seja porque o cliente desistiu da compra ou o lojista não tem mais o estoque para atender ao pedido.

order_shipped

Pedido Enviado (SkyHub)

SHIPPED

Shipped é o Status que o pedido recebe quando o lojista envia os dados de NFe e Código de Rastreio.

complete

Completo (entregue) (SkyHub)

DELIVERED

Delivery é o status que o pedido recebe quando foi entregue ao cliente.

shipment_exception

Exceção de Entrega (SkyHub)

SHIPMENT_EXCEPTION

Shipment_exception é o status que o pedido recebe quando por algum motivo a entrega não foi realizada.

order_invoiced

Pagamento Faturado (SkyHub)

INVOICED

Status utilizado para o envio dos dados da NFe

Observação: Caso o cliente efetue o pagamento e o lojista não tiver mais o estoque, o lojista pode decidir se vai ou não atender aquele pedido, caso deseje atender o mesmo deve incluir estoque para o item do pedido.

É possível consultar os status via API?

Sim, para consultar os status é necessário fazer um GET /statuses. Para deixar mais claro segue exemplo de como fazer a request.

POST https://api.skyhub.com.br/statuses

O que constitui o status do pedido?

O status do pedido possui 3 campos na API:

Campo

Descrição

Code

É o código do status utilizado para a atualização do pedido.

Label

Nomenclatura do status Skyhub

Type

Status do seller que se adéqua com o status Skyhub

Dentro da Skyhub, menu: Skyhub > Status dos Pedidos

  • O Campo Code é a coluna #

  • O Campo Label é a coluna Status

  • O Campo Type é a coluna Tipo

Veja abaixo:

Atualização de pedido

No momento em que o pedido é realizado as primeiras atualizações de status de pedido são provindas do marketplace, esses status são:

  • Pagamento Pendente

  • Pagamento Aprovado

  • Cancelado

Observação: O cancelado virá do Marketplace caso o cliente desista da compra ou em casos similares.

Status que são de responsabilidade da loja enviar para o Marketplace.

  • Entregue à transportadora

  • Entregue ao cliente

  • Cancelado

Observação: O lojista poderá cancelar o pedido quando não conseguir fazer o atendimento do mesmo.

Os status podem ser verificados no portal da Skyhub seguindo o caminho no menu lateral:

Skyhub > Status dos Pedidos

A Skyhub realiza um De Para entre a coluna status com a coluna tipo.

Exemplo: Status: Pagamento Pendente (Skyhub) é do Tipo: Pagamento Pendente

Essa função existe porque é possível criar status de pedidos dentro da Skyhub, caso você crie os seus status de pedidos é importante você dizer para a Skyhub qual o significado de cada status que você criou.

Observação: A Skyhub já cria os status necessários para a sua integração de pedidos, porém caso haja necessidade você pode criar novos status.

Como alterar o status dos pedidos?

O endpoint utilizado para a atualização do status dos pedidos muda de acordo com o status que você deseja atualizar, veja os exemplos.

Atualizar status para faturado (INVOICED)

Após o Marketplace confirmar que o pedido teve o pagamento confirmado o lojista precisa emitir a nota fiscal eletrônica (NFE), abaixo segue exemplo da requisição:

POST https://api.skyhub.com.br/orders/{code}/invoice

Observação: O campo key precisa conter os 44 dígitos da NFE.

Como atualizar um pedido para enviado (Entregue a Transportadora)?

Para atualizar o pedido será sempre necessário utilizar o Endpoint:

POST https://api.skyhub.com.br/orders/{code}/shipments

body:

curl --request POST \
--url https://api.skyhub.com.br/orders/Marketplace-000000002/shipments \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-User-Email: seu@email.com' \
--header 'X-Api-Key: YOUR API KEY HERE' \
--header 'X-Accountmanager-Key: token_account' \
--data '{"status":"order_shipped","shipment":{"code":"Submarino-1493069158776","delivered_carrier_date": "2019-01-27T12:30:00-03:00","items":[{"sku":"1001","qty":1}],"track":{"code":"BR1321830198302DR","carrier":"Correios","method":"SEDEX","url":"www.correios.com.br"}}}'

Como alterar pedido para entregue?

Para alterar o pedido será sempre necessário utilizar o Endpoint:

POST http://api.skyhub.com.br/orders/{code}/delivery

Como cancelar um pedido

Para cancelar o pedido será sempre necessário utilizar o Endpoint:

POST https://api.skyhub.com.br/orders/{code}/cancel

Como atualizar o pedido para exceção de entrega

Para atualizar o pedido para exceção de entrega é necessário utilizar o Endpoint:

POST http://api.skyhub.com.br/orders/{order-id}/shipment_exception

Criando/aprovando pedidos teste

Para contas de desenvolvimento/homologação é possível criar e aprovar pedidos.

Essas operações não estão disponíveis em contas em produção.

1 - Criar pedido teste (status NEW)

curl --request POST \
--url https://api.skyhub.com.br/orders \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-User-Email: seu@email.com' \
--header 'X-Api-Key: YOUR API KEY HERE' \
--header 'X-Accountmanager-Key: token_account' \
--data '{
"order": {
"channel": "Submarino",
"items": [
{
"id": "skuteste",
"qty": 1,
"original_price": 339.0,
"special_price": 339.0
}
],
"customer": {
"name": "Bruno santos",
"email": "exemplo@skyhub.com.br",
"date_of_birth": "1998-01-25",
"gender": "male",
"vat_number": "78732371683",
"phones": [
"21 3722-3902"
]
},
"billing_address": {
"street": "Rua Fidencio Ramos",
"number": "302",
"detail": "",
"neighborhood": "Centro",
"city": "Rio de Janeiro",
"region": "RJ",
"country": "BR",
"postcode": "04551101"
},
"shipping_address": {
"street": "Rua Sacadura Cabral",
"number": "130",
"detail": "",
"neighborhood": "Centro",
"city": "Rio de Janeiro",
"region": "RJ",
"country": "BR",
"postcode": "20081262"
},
"payments": [
{
"method": "CREDIT_CARD",
"description": "Visa",
"parcels": 1,
"value": 199.9,
"discount": 0.00
}
],
"shipping_method": "Correios PAC",
"estimated_delivery": "2018-02-11",
"shipping_cost": 0.00,
"interest": 0.00
}
}'

2 - Aprovar pedido teste (status APPROVED)

curl --request POST \
--url https://api.skyhub.com.br/orders/Marketplace-000000001/approval \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-User-Email: seu@email.com' \
--header 'X-Api-Key: YOUR API KEY HERE' \
--header 'X-Accountmanager-Key: token_account' \
--data '{"status":"payment_received"}'

Para aprovação, atentar para o código gerado para o pedido criado e substituir na url do exemplo.

É obrigatório consumir todos os pedidos da fila de integração (Queues) com status NEW, pra que os produtos sejam empenhados em seus estoques.

Porque é obrigatório?

Para não ter divergência de estoque Disponível X estoque Empenhado

Se não consumir os pedidos o que pode acontecer? Podemos vender produtos sem estoque, uma vez que o empenho não existe na plataforma receberemos o estoque como Estoque Disponível, consequentemente disponibilizaremos o estoque errado para o Marketplace.

Vale Lembrar:

  • As plataformas que não se adequarem a essa regra de negócios podem arcar com prejuízo do seller.

  • Para a Skyhub, deve ser enviado apenas o estoque disponível.