Janela de entrega
A promessa de data de entrega da loja: dias de preparo, horário de corte, dias úteis, feriados e como a data é mostrada.
A janela de entrega (delivery window) responde à pergunta do cliente: "se eu comprar agora, quando chega?". Ela transforma o prazo do transporte (dias) numa data de calendário, levando em conta o tempo que a loja leva para separar o pedido, o horário depois do qual um pedido só começa a ser preparado no dia útil seguinte, os dias em que a loja trabalha e os feriados. O resultado aparece na página do produto, no carrinho e no checkout.
Não confunda com a entrega agendada, em que o cliente escolhe dia e horário. Aqui a loja promete uma data, calculada.
Como funciona
- Escolhe o ponto de partida
Se a hora atual (no fuso da loja) passou de
cutoff_time, a contagem começa no dia seguinte. Se o ponto de partida não é dia útil, avança até o próximo. - Soma o preparo
Avança
processing_daysdias úteis. Se o produto temprocessing_dayspróprio maior que zero, ele vale no lugar do padrão da loja. - Soma o transporte
Avança os dias úteis do método de envio: o mínimo dá a data mais cedo; a diferença até o máximo dá a mais tarde. Quando a cotação já traz os dias (por exemplo, uma transportadora), esses dias são a janela inteira e o preparo da loja não é somado de novo.
- Formata
display_formatdecide o texto: a data (date_range), os dias úteis (business_days) ou nada de data (hidden).
Conceitos-chave
Dias úteis
business_days é a lista dos dias em que a loja trabalha, com as siglas mon, tue, wed, thu, fri, sat, sun. Um dia fora da lista, ou que esteja em feriados, não conta.
Horário de corte
cutoff_time (HH:MM, no fuso timezone) é a hora limite do dia. Pedido feito até ela começa a ser preparado hoje; depois dela, no próximo dia útil.
Formato de exibição
display_format | O cliente vê |
|---|---|
date_range | Uma data ou faixa de datas. |
business_days | "X-Y dias úteis". |
hidden | Nenhuma data de calendário; só o prazo do transporte. |
Endpoints
| Método e caminho | Para quê | Página |
|---|---|---|
GET /api/v1/admin/delivery-window/settings | Lê a configuração | Configuração |
PUT /api/v1/admin/delivery-window/settings | Altera a configuração | Configuração |
GET /api/v1/admin/delivery-window/holidays | Lista feriados | Feriados |
POST /api/v1/admin/delivery-window/holidays | Cadastra um feriado | Feriados |
DELETE /api/v1/admin/delivery-window/holidays/{id} | Remove um feriado | Feriados |
POST /api/v1/admin/delivery-window/holidays/seed | Carrega os feriados nacionais | Feriados |
POST /api/v1/admin/delivery-window/preview | Simula a data de um produto | Simular a data |
Erros comuns
- Esquecer de cadastrar os feriados. Sem eles, a promessa conta feriados como dias úteis.
- Enviar
business_days: []esperando zerar a lista. Lista vazia é ignorada; para mudar, envie a lista completa desejada. - Esperar que
processing_daysdo produto valha com zero. Só valores maiores que zero sobrescrevem o padrão. - Somar preparo duas vezes. Quando a cotação do método já traz os dias, o preparo da loja não entra de novo.
- Cadastrar a data em outro formato. O feriado exige
AAAA-MM-DD. - Confiar no número
inserteddo atalho de feriados. Ele conta as tentativas, não só as novas.