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
Resposta
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
Resposta
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
Resposta
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
Resposta
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
Resposta
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"} |