🔔 Preferências do Cliente
📋 Visão Geral
O módulo de Preferências do Cliente permite que o cliente autenticado gerencie suas preferências de comunicação com a loja.
As preferências são organizadas em dois eixos:
Canal de comunicação — o cliente pode optar por receber notificações via e-mail ou via SMS, de forma independente para cada tipo de conteúdo.
Tipo de conteúdo — as preferências distinguem dois tipos de mensagens:
- Comunicações promocionais — e-mails e SMS de marketing, campanhas, ofertas e promoções da loja.
- Notificações de pedido — atualizações transacionais sobre o status dos pedidos realizados pelo cliente.
sendPromotionalEmail— define se o cliente aceita receber comunicações promocionais por e-mail. Padrão:false.sendPromotionalSms— define se o cliente aceita receber comunicações promocionais por SMS. Padrão:false.sendOrderEmail— define se o cliente aceita receber atualizações de pedidos por e-mail. Padrão:true.sendOrderSms— define se o cliente aceita receber atualizações de pedidos por SMS. Padrão:false.- Todos os quatro campos são obrigatórios na requisição de atualização — não é possível atualizar apenas um subconjunto das preferências.
- Efeito na newsletter — ao habilitar qualquer flag promocional (
sendPromotionalEmailousendPromotionalSms), o cliente é inscrito automaticamente na newsletter da loja. Ao desativar ambas as flags promocionais, a inscrição na newsletter é removida.
🔄 Entidades Envolvidas
As preferências do cliente são representadas por quatro campos booleanos independentes:
Preferências promocionais
Controlam o recebimento de comunicações de marketing da loja, como campanhas, ofertas e promoções.
Preferências de pedido
Controlam o recebimento de notificações transacionais sobre os pedidos do cliente.
📌 Notas e Considerações
✏️ Atualizar Preferências do Cliente
/customer/flag
Atualiza as preferências de comunicação do cliente autenticado
📋 Descrição
Endpoint responsável por atualizar as preferências de comunicação do cliente autenticado junto à loja.
As preferências controlam quais tipos de mensagens o cliente deseja receber e por qual canal:
- E-mail promocional — campanhas, ofertas e comunicações de marketing
- SMS promocional — campanhas e ofertas enviadas via mensagem de texto
- E-mail de pedido — atualizações transacionais sobre o status dos pedidos
- SMS de pedido — atualizações sobre pedidos enviadas via mensagem de texto
CustomerAuth— autenticação do cliente via token JWT
Ao habilitar qualquer preferência promocional (sendPromotionalEmail ou sendPromotionalSms), o cliente é inscrito automaticamente na newsletter da loja. Ao desativar ambas as flags promocionais, a inscrição na newsletter é removida.
🔐 Permissão
📝 Parâmetros
🏷️ Headers Obrigatórios
| Header | Valor | Descrição |
|---|---|---|
Authorization | Bearer {token} | Token de autenticação do cliente |
Content-Type | application/json | Tipo de conteúdo |
📦 Parâmetros do Corpo
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
sendPromotionalEmail | boolean | ✅ Sim | Aceita receber comunicações de marketing por e-mail |
sendPromotionalSms | boolean | ✅ Sim | Aceita receber comunicações de marketing por SMS |
sendOrderEmail | boolean | ✅ Sim | Aceita receber atualizações de pedidos por e-mail |
sendOrderSms | boolean | ✅ Sim | Aceita receber atualizações de pedidos por SMS |
💡 Exemplo de Requisição
1curl --request PUT \2 --url '{{MAIN_URL}}/customer/flag' \3 --header 'Authorization: Bearer SEU_TOKEN_AQUI' \4 --header 'Content-Type: application/json' \5 --data '{6 "sendPromotionalEmail": true,7 "sendPromotionalSms": false,8 "sendOrderEmail": true,9 "sendOrderSms": false10 }'✅ Resposta de Sucesso
HTTP Status: 200 OK
1{2 "status": true,3 "data": {4 "sendPromotionalEmail": true,5 "sendPromotionalSms": false,6 "sendOrderEmail": true,7 "sendOrderSms": false8 }9}⚠️ Possíveis Erros
> Os cenários abaixo representam os principais erros que podem ocorrer neste endpoint, servindo como referência para entendimento e tratamento das falhas.
| Código do Erro | HTTP | Descrição |
|---|---|---|
INVALID_AUTH_TOKEN | 401 | Token de autenticação inválido ou ausente |
UAPPI_STORE_CUSTOMER_NOT_FOUND | 404 | Cliente autenticado não encontrado |
UAPPI_STORE_INVALID_CUSTOMER_FLAG | 404 | Registro de preferências do cliente não encontrado |