Rastreio de pedidos
Um e-mail a cada etapa da entrega. Uma vez só.
1 aviso por etapamesmo com a sincronização rodando de novo e de novo
A história
O sistema de rastreio da Kallifon já mostrava cada etapa da entrega para a equipe. O cliente não via nada. Minha parte é fazer o cliente saber também.
O difícil é o “real” e o “um”. A sincronização se repete o dia todo, e ver a mesma etapa de novo não pode virar outro e-mail. E se o servidor de e-mail cair, o rastreio não pode travar junto.
Cada mudança de etapa vira uma linha numa fila, no máximo uma por pedido e etapa, e é o próprio banco que garante isso. Um processo separado envia a cada 5 minutos e registra cada tentativa.
O rastreio nunca espera o e-mail: a mensagem vai para uma fila, e a fila cuida do resto.
Um pedido fictício. Avance as etapas, sincronize de novo, derrube o servidor de e-mail e observe a fila.
- Vinculado
- Em preparação
- Em trânsito
- Em separação
- Saiu para entrega
- Entregue
Fila de e-mails · pedido DEMO-4821
| Etapa | Situação | Tentativas |
|---|
Diário
Por dentrorestrições, passos e detalhes
O que não podia acontecer
- A sincronização, que se repete, gerar um segundo e-mail para a mesma etapa.
- O servidor de e-mail fora do ar derrubar ou atrasar o rastreio.
- Pedidos que já estavam no meio da entrega receberem uma avalanche de e-mails atrasados.
Como a fila funciona
- Sincronizar: o rastreio segue o próprio ritmo.
- Mudou de etapa? Só mudança real conta.
- Enfileirar: uma linha por pedido e etapa.
- Processar: a cada 5 minutos, em lotes.
- Enviar: com o e-mail vindo do TOTVS.
- Registrar: enviado ou falhou, com as tentativas.
O destinatário vem do cadastro no TOTVS, pela API: o endereço marcado como padrão ou, sem ele, o primeiro preenchido. Para os pedidos antigos, um comando prepara o destinatário sem criar e-mails retroativos. Cada mensagem tenta até 5 vezes; depois disso, só com uma nova rodada liberada pelo admin. E o envio nasce desligado, até o servidor de e-mail ser validado.