Remessas
A API de remessas gerencia as remessas dos pedidos da sua loja: criar, atualizar e acompanhar.
A API de remessas permite gerenciar as remessas dos pedidos da sua loja. Uma remessa é o registro de que uma parte do pedido, ou o pedido inteiro, foi entregue a uma transportadora, em geral com um código de rastreamento. Você pode criar remessas, atualizar as existentes e acompanhar o status de cada uma.
Todas as chamadas usam as credenciais HTTP Basic de um administrador ($EMAIL:$API_KEY) e o endereço da sua loja ($BASE_URL).
Como funciona
Uma remessa começa em processamento, é entregue à transportadora e termina como entregue, ou como falha/devolvida.
Códigos de status da remessa
| Código | Descrição |
|---|---|
P | Em processamento (Processing) |
S | Enviada (Shipped) |
D | Entregue (Delivered) |
F | Falhou/Devolvida (Failed/Returned) |
Conceitos principais
Listar remessas
O GET /api/shipments/ retorna uma lista de todas as remessas. O endpoint aceita paginação e filtros, para ajudar você a encontrar remessas específicas.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | integer | Não | Número da página (padrão: 1) |
items_per_page | integer | Não | Quantidade de itens por página (padrão: 10) |
order_id | integer | Não | Filtra as remessas pelo id do pedido |
status | string | Não | Filtra as remessas pelo status |
A resposta de exemplo da listagem:
{
"shipments": [
{
"shipment_id": "12",
"order_id": "145",
"shipping_method": "Standard Shipping",
"tracking_number": "1Z999AA10123456784",
"status": "S",
"timestamp": "1649851200"
},
{
"shipment_id": "13",
"order_id": "146",
"shipping_method": "Express Shipping",
"tracking_number": "1Z999AA10123456785",
"status": "P",
"timestamp": "1649937600"
}
],
"params": {
"page": 1,
"items_per_page": 10,
"total_items": 2
}
}Consultar uma remessa
O GET /api/shipments/{shipment_id}/ retorna os detalhes de uma remessa específica, pelo id. Além dos dados da listagem, a resposta traz a transportadora, os itens e os comentários.
{
"shipment_id": "12",
"order_id": "145",
"shipping_method": "Standard Shipping",
"tracking_number": "1Z999AA10123456784",
"carrier": "UPS",
"status": "S",
"timestamp": "1649851200",
"items": [
{
"item_id": "458",
"product_id": "123",
"product_name": "Premium Widget",
"amount": "2"
},
{
"item_id": "459",
"product_id": "124",
"product_name": "Widget Accessories",
"amount": "1"
}
],
"comments": "Handle with care"
}Criar uma remessa
O POST /api/shipments/ cria uma remessa nova para um pedido. O corpo da requisição tem estes parâmetros.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
order_id | string | Sim | Id do pedido para o qual a remessa será criada |
shipping_method | string | Sim | Forma de envio a usar |
tracking_number | string | Não | Código de rastreamento da remessa |
carrier | string | Não | Transportadora |
items | array | Sim | Array com os itens do pedido que entram nesta remessa |
comments | string | Não | Comentários sobre a remessa |
Um exemplo de requisição:
{
"order_id": "145",
"shipping_method": "Standard Shipping",
"tracking_number": "1Z999AA10123456784",
"carrier": "UPS",
"items": [
{
"item_id": "458",
"amount": "2"
},
{
"item_id": "459",
"amount": "1"
}
],
"comments": "Handle with care"
}Atualizar uma remessa
O PUT /api/shipments/{shipment_id}/ atualiza uma remessa existente. Um exemplo de requisição que registra o novo código de rastreamento, marca a remessa como entregue e acrescenta um comentário:
{
"tracking_number": "1Z999AA10123456789",
"status": "D",
"comments": "Delivered to front door"
}Endpoints
| Método | Caminho | Finalidade | Autenticação |
|---|---|---|---|
| GET | /api/shipments | Listar todas as remessas, com paginação e filtros, veja Paginação | Administrador |
| POST | /api/shipments | Criar uma remessa, veja Endpoints | Administrador |
| GET | /api/shipments/{id} | Consultar uma remessa específica, veja Endpoints | Administrador |
| PUT | /api/shipments/{id} | Atualizar uma remessa, veja Endpoints | Administrador |
| DELETE | /api/shipments/{id} | Excluir uma remessa, veja Endpoints | Administrador |
Erros comuns
- Criar uma remessa com itens que não fazem parte do pedido. A página de campos diz que todos os produtos citados na remessa precisam fazer parte do pedido informado.
- Deixar o código de rastreamento de fora. Ele é opcional, mas a página de campos recomenda sempre informá-lo, para que você e seus clientes acompanhem a entrega.
- Tratar a exclusão como cancelamento. Ela só remove o registro da remessa, e a entrega em si precisa ser cancelada com a transportadora.
- Enviar um campo que não está na tabela de campos. Ele é ignorado.