Ecommerce - Minha Conta
Explicar como a área do cliente entra no storefront, como o acesso foi separado do admin e quais tabelas e fluxos sustentam essa nova camada.
Leitura pensada para explicar responsabilidades, ordem de execução e trechos reais do código com foco no fluxo da implementação.
Objetivo deste guia
Explicar como a área do cliente entra no storefront, como o acesso foi separado do admin e quais tabelas e fluxos sustentam essa nova camada.
Papel do módulo
A seção Minha conta passa a ser a camada de relacionamento do cliente com a loja depois do checkout.
Nesta fase, ela já permite:
- login principal por e-mail/CPF e senha;
- login por código enviado por e-mail;
- cadastro completo de pessoa física ou jurídica;
- validação do cadastro por código enviado por e-mail antes de ativar a conta;
- consulta de pedidos vinculados à conta;
- manutenção de dados cadastrais;
- caderno de endereços com múltiplos destinos;
- exportação dos dados da conta;
- solicitação de exclusão com fila interna de tratamento;
- separação estrutural entre conta do cliente e acesso do admin.
Política de senha da conta
O cadastro do cliente agora segue a mesma linha forte do painel:
- mínimo de
12caracteres; - ao menos uma letra maiúscula;
- ao menos uma letra minúscula;
- ao menos um número;
- ao menos um símbolo.
O formulário mostra esses critérios em tempo real para reduzir erro operacional e evitar senhas fracas já na entrada.
Rotas e pontos de entrada
Storefront
/e-commerce/login/e-commerce/minha-conta
Pontos do código
src/app/e-commerce/minha-conta/page.tsxsrc/features/ecommerce/components/account/AccountView.tsxsrc/features/ecommerce/server/customerAccountStore.tssrc/features/ecommerce/server/customerAuth.tssrc/app/api/ecommerce/account/register/route.tssrc/app/api/ecommerce/account/register/verify/route.tssrc/app/api/ecommerce/account/login-token/request/route.tssrc/app/api/ecommerce/account/login-token/verify/route.tssrc/app/api/ecommerce/account/profile/route.tssrc/app/api/ecommerce/account/addresses/route.tssrc/app/api/ecommerce/account/lgpd/export/route.tssrc/app/api/ecommerce/account/lgpd/request-erasure/route.tssrc/features/ecommerce/types/account.tssrc/features/ecommerce/components/checkout/CheckoutView.tsx
Como funciona agora
O fluxo agora já usa backend e banco dedicado para o domínio do cliente.
Leitura prática:
- o cliente entra em
/e-commerce/loginou emMinha conta; - o cadastro pode ficar pendente por alguns minutos até o e-mail ser confirmado;
- o login principal usa e-mail ou CPF/CNPJ com senha;
- o acesso por código continua disponível como alternativa, mas somente para contas já verificadas;
- o código de 6 dígitos é emitido em tabela própria de cliente;
- ao validar a autenticação, o storefront abre uma sessão dedicada de cliente;
- perfil, pedidos e endereços passam a ser lidos do banco.
Validação do cadastro
O fluxo de cadastro agora tem duas fases quando a política estiver ativa no painel:
- o formulário grava um cadastro pendente;
- um código é enviado para o e-mail informado;
- a conta só é ativada depois da validação;
- o cliente já entra autenticado após confirmar o código.
Tabela dedicada:
customer_pending_registrations
Essa camada existe para:
- reduzir cadastros descartáveis;
- evitar ativação imediata de e-mails inválidos;
- permitir expurgo automático de tentativas não concluídas.
Relação com o painel
O painel agora também consegue operar a mesma base de clientes sem depender da jornada do storefront.
Isso significa que o time interno pode:
- criar cliente novo direto no admin;
- completar dados PF ou PJ;
- cadastrar vários endereços;
- ajustar consentimentos e status da conta;
- preparar um cadastro antes mesmo de o cliente acessar
Minha conta.
Ou seja: Minha conta e EcommPanel > Clientes não competem. Ambos operam a mesma base com finalidades diferentes.
Tabelas dedicadas do cliente
O domínio novo não reaproveita panel_users nem panel_sessions.
Tabelas centrais:
customer_accountscustomer_addressescustomer_orderscustomer_login_tokenscustomer_sessionscustomer_audit_events
Além disso, o checkout agora também conversa com:
commerce_order_draftscommerce_orderscommerce_order_events
Isso garante isolamento entre:
- operação administrativa;
- navegação do cliente;
- dados pessoais e comerciais do consumidor.
Como o checkout alimenta a conta
Quando o checkout conclui um pedido:
- o pedido é finalizado;
- os dados do cliente são normalizados no servidor;
- a conta do cliente é localizada ou criada de forma mínima;
- a projeção da conta é gravada em
customer_orders; - o pedido operacional é consolidado em
commerce_orders; - a timeline operacional entra em
commerce_order_events; - o endereço usado pode ser reaproveitado em
customer_addresses.
Isso faz com que a jornada já fique coerente:
- o cliente compra;
- a compra passa a existir em
Minha conta; - os dados do checkout deixam de ficar soltos;
- a área do cliente já nasce compatível com a futura API transacional.
O que o cliente já pode fazer
Visão geral
- ver quantidade de pedidos;
- ver quantidade de endereços;
- localizar o último pedido registrado;
- navegar com links rápidos para checkout, endereços e cadastro.
Pedidos
- listar pedidos já vinculados à conta no banco;
- ver ID, data, pagamento, valor e itens do pedido.
Dados
- atualizar dados pessoais ou empresariais;
- revisar CPF/CNPJ, RG ou inscrição estadual;
- ajustar consentimentos e contatos.
Endereços
- cadastrar múltiplos endereços;
- editar endereço;
- excluir endereço;
- definir padrão de entrega e cobrança.
Privacidade
- gerar pacote com os dados da conta;
- registrar solicitação de exclusão;
- entrar em fila interna de revisão antes da execução final;
- entender o que pode ser removido imediatamente e o que continua retido por obrigação operacional ou legal.
O que esta fase ainda não faz
Ainda não cobre:
- recuperação de acesso independente do login por código;
- favoritos, lista de desejos ou preferências persistidas por servidor.
Por que essa etapa é pertinente
Mesmo antes do backend dedicado completo, essa frente já resolve três problemas importantes:
- define a UX da área do cliente;
- separa o domínio do cliente do domínio administrativo;
- conecta checkout, conta e recompra sem refazer o storefront depois.
Ou seja: não é mais só protótipo local. Já é uma base real de conta do cliente.
Próxima evolução prevista
Fase 1
- abrir recuperação de acesso;
- adicionar favoritos e preferências;
- permitir histórico consolidado em qualquer dispositivo.
Fase 2
- expor o mesmo contrato para o futuro app mobile;
- reutilizar conta, pedidos, endereços e preferências na experiência mobile.
Fase 3
- abrir retenção parametrizável por categoria de dado;
- evoluir aprovação interna e governança do tratamento LGPD.
Resumo técnico
Estado atual:
- sessão real de cliente por cookie dedicado;
- conta, endereço e pedido persistidos no banco;
- login por código de e-mail;
- integração direta com o checkout.
Direção planejada:
- mesma UI;
- mesma ideia de contrato;
- expansão do domínio para favoritos, LGPD e app mobile.