Notificações e newsletter
Como o cliente recebe avisos da loja dentro da vitrine, escolhe por onde quer ser avisado e assina a newsletter.
A loja avisa o cliente por vários caminhos: um sino de avisos dentro da conta, e-mails de pedido e, se ele quiser, uma newsletter de novidades. Esta seção reúne as rotas que o front-end da conta usa para ler esses avisos, escolher os canais e assinar ou cancelar a newsletter.
Quem gera os avisos não é o cliente: são eventos da plataforma (uma resposta do seller, uma mudança de status, uma campanha). Aqui o cliente só consulta e marca como lido.
Como funciona
- A plataforma gera o avisoUm evento (por exemplo, uma mensagem nova de um seller, ou uma campanha de incentivo) grava uma linha na caixa de entrada do cliente e, quando for o caso, envia também o e-mail.
- O front-end lê o sinoConsulta o contador de não lidas a cada 30 segundos e carrega a lista quando o cliente abre o sino.
- O cliente interageClica no aviso (o
linkleva à tela certa) e o front-end marca como lido. "Marcar tudo" zera o contador. - O cliente ajusta os canaisEm Preferências liga ou desliga e-mail, SMS, push e WhatsApp por tipo de evento.
Conceitos principais
Caixa de entrada x histórico de e-mails
| Caixa de entrada | Histórico de e-mails | |
|---|---|---|
| Rotas | /notifications/inbox... | /notifications e /notifications/{id}/read |
| Origem | Eventos da plataforma (mensagens, campanhas, pedidos) | Cada e-mail que a plataforma enviou à conta |
| Lido | read_at (data ou ausente) | is_read (verdadeiro ou falso) |
| Use para | O sino e a tela de avisos | Mostrar o que foi enviado por e-mail |
Canais e tipos de evento
Uma preferência liga ou desliga um par canal e tipo de evento. Os canais são email, sms, push e whatsapp. Os tipos de evento são order_status, promotions, newsletter, vendor_updates e security_alerts.
Newsletter e confirmação dupla
A newsletter é por loja. Se a loja liga a confirmação dupla (double opt-in), quem se inscreve fica P (pendente) até clicar no link do e-mail; só A (ativo) recebe campanhas.
Endpoints
| Método | Rota | Para quê | Autenticação |
|---|---|---|---|
| GET | /api/v1/storefront/notifications/inbox | Lista os avisos do sino. | Cliente |
| GET | /api/v1/storefront/notifications/inbox/unread-count | Conta os avisos não lidos. | Cliente |
| POST | /api/v1/storefront/notifications/inbox/{id}/read | Marca um aviso como lido. | Cliente |
| POST | /api/v1/storefront/notifications/inbox/read-all | Marca todos como lidos. | Cliente |
| GET | /api/v1/storefront/notifications | Lista o histórico de e-mails. | Cliente |
| PUT | /api/v1/storefront/notifications/{id}/read | Marca um item do histórico como lido. | Cliente |
| GET | /api/v1/storefront/notifications/preferences | Lê as preferências. | Cliente |
| PUT | /api/v1/storefront/notifications/preferences | Grava várias preferências. | Cliente |
| PUT | /api/v1/storefront/notifications/preferences/{channel} | Grava uma preferência. | Cliente |
| POST | /api/v1/storefront/newsletter/subscribe | Inscreve um e-mail. | Pública |
| GET | /api/v1/storefront/newsletter/confirm | Confirma a inscrição pelo link. | Pública |
| POST | /api/v1/storefront/newsletter/unsubscribe | Cancela pelo e-mail. | Pública |
| GET | /api/v1/storefront/newsletter/unsubscribe | Cancela pelo link do e-mail. | Pública |
Erros comuns
- Usar
/notificationspara o sino. Ele devolve o histórico de e-mails. O sino é/notifications/inbox. - Marcar como lido com o método errado. Na caixa de entrada é
POST .../inbox/{id}/read; no histórico éPUT .../{id}/read. - Mandar o canal só no caminho. Em
PUT /notifications/preferences/{channel}o canal é lido do corpo, não do caminho (veja Preferências). - Achar que
read-alldevolve o total. Ele só responde{"ok": true}; consulte o contador depois. - Pedir
unread_onlycom outro valor. Só o texto exatotruefiltra; qualquer outro valor lista tudo. - Esperar
404ao cancelar a newsletter de um e-mail desconhecido. O cancelamento responde sempre200, por privacidade.