Janelas de entrega
Cria, lista, lê, altera e apaga as janelas semanais de horário de um método de envio, com capacidade por data.
Uma janela diz: neste método de envio, às segundas, entre 08:00 e 12:00, aceitamos até 10 pedidos por data. Cadastre uma janela por dia e faixa de horário. O cliente só vê as que estão ativas e ainda têm vaga na data escolhida.
Listar janelas
/api/v1/admin/delivery/slotsAdminLista as janelas de entrega
Exige o privilégio manage_shipping (também para ler) e o módulo delivery-scheduling ligado.
Parâmetros de consulta
shipping_method_iduuidstatusstringADactivedisabledA/active ou D/disabled. Outro valor é ignorado.searchstringExemplo de requisição
curl "$BASE_URL/api/v1/admin/delivery/slots?shipping_method_id=50000000-0000-0000-0000-000000000001&status=A" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"slots": [
{
"id": "17b60b02-d01b-419d-8faa-d09ff8a00940",
"shipping_method_id": "50000000-0000-0000-0000-000000000001",
"day_of_week": 1,
"start_time": "08:00",
"end_time": "12:00",
"max_orders": 10,
"status": "A",
"created_at": "2026-07-12T17:24:22.086908Z",
"updated_at": "2026-07-12T17:24:22.086908Z"
}
],
"total": 1
}Campos da resposta
slotsarraytotalintegerslots[].iduuidslots[].shipping_method_iduuidslots[].day_of_weekinteger01234560 domingo, 1 segunda ... 6 sábado.slots[].start_timestringHH:MM.slots[].end_timestringHH:MM.slots[].max_ordersintegerslots[].statusstringADA ativa ou D desativada.slots[].created_atstringslots[].updated_atstringConsultar uma janela
/api/v1/admin/delivery/slots/{id}AdminLê uma janela de entrega
Exige o privilégio manage_shipping (também para ler) e o módulo delivery-scheduling ligado.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl "$BASE_URL/api/v1/admin/delivery/slots/$SLOT_ID" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"id": "17b60b02-d01b-419d-8faa-d09ff8a00940",
"shipping_method_id": "50000000-0000-0000-0000-000000000001",
"day_of_week": 1,
"start_time": "08:00",
"end_time": "12:00",
"max_orders": 10,
"status": "A",
"created_at": "2026-07-12T17:24:22.086908Z",
"updated_at": "2026-07-12T17:24:22.086908Z"
}Criar uma janela
/api/v1/admin/delivery/slotsAdminCria uma janela de entrega
Exige o privilégio manage_shipping (também para ler) e o módulo delivery-scheduling ligado.
Corpo da requisição
shipping_method_iduuidobrigatórioday_of_weekintegerobrigatório01234560 domingo a 6 sábado.start_timestringobrigatórioHH:MM.end_timestringobrigatórioHH:MM.max_ordersintegerpadrão: 5050.statusstringpadrão: AA/active ou D/disabled. Um valor não reconhecido vira ativo.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/delivery/slots" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"shipping_method_id": "50000000-0000-0000-0000-000000000001",
"day_of_week": 3,
"start_time": "14:00",
"end_time": "18:00",
"max_orders": 4
}'Resposta
{
"id": "6bd3bc21-fc3b-4f6f-ac7c-10df0c5fd512",
"shipping_method_id": "50000000-0000-0000-0000-000000000001",
"day_of_week": 3,
"start_time": "14:00",
"end_time": "18:00",
"max_orders": 4,
"status": "A",
"created_at": "2026-07-12T17:24:22.086908Z",
"updated_at": "2026-07-12T17:24:22.086908Z"
}Alterar uma janela
Alteração parcial. Não há campo para trocar o método: para isso, crie outra janela. Um corpo sem nenhum campo conhecido é recusado.
/api/v1/admin/delivery/slots/{id}AdminAltera uma janela de entrega
Exige o privilégio manage_shipping (também para ler) e o módulo delivery-scheduling ligado.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
day_of_weekinteger01234560 a 6.start_timestringHH:MM.end_timestringHH:MM.max_ordersinteger0 é gravado como está e a janela passa a não ter vaga.statusstringADactivedisabledA/active ou D/disabled.Exemplo de requisição
curl -X PUT "$BASE_URL/api/v1/admin/delivery/slots/$SLOT_ID" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"max_orders": 8,
"status": "active"
}'Resposta
{
"id": "17b60b02-d01b-419d-8faa-d09ff8a00940",
"shipping_method_id": "50000000-0000-0000-0000-000000000001",
"day_of_week": 1,
"start_time": "08:00",
"end_time": "12:00",
"max_orders": 8,
"status": "A",
"created_at": "2026-07-12T17:24:22.086908Z",
"updated_at": "2026-07-12T17:24:22.086908Z"
}Apagar uma janela
Exclusão definitiva. É recusada enquanto houver entregas futuras agendadas na janela; cancele-as antes em Agendamentos. Para parar de oferecer a janela sem perder o histórico, desative-a.
/api/v1/admin/delivery/slots/{id}AdminApaga uma janela de entrega
Exige o privilégio manage_shipping (também para ler) e o módulo delivery-scheduling ligado.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl -X DELETE "$BASE_URL/api/v1/admin/delivery/slots/$SLOT_ID" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"message": "delivery slot deleted"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado | {"error":"invalid or expired token"} |
| 403 | Sem o privilégio manage_shipping | {"error":"insufficient privileges","privilege_required_any":["manage_shipping"]} |
| 403 | Módulo delivery-scheduling desligado | {"error":"module_disabled","module":"delivery-scheduling"} |
| 400 | Corpo que não é JSON | {"error":"invalid request body","detail":"..."} |
| 404 | Só na leitura de uma janela: o id não existe | {"error":"delivery slot not found"} |
| 500 | shipping_method_id vazio ou inexistente; day_of_week fora de 0 a 6; horários vazios; status desconhecido (só na alteração); janela inexistente (alterar e apagar); apagar com entregas futuras | {"error":"failed to create delivery slot","detail":"day_of_week must be 0-6 (Sunday-Saturday)"} / {"error":"failed to delete delivery slot","detail":"cannot delete slot with 3 future scheduled deliveries"} |