Lojistas com mais de uma operação (marcas distintas, filiais regionais, e-commerce + atacado) podem agrupar todas as lojas sob a mesma conta de usuário, com troca rápida pela sidebar.
Quem precisa de multi-loja
- Grupo com marcas separadas (cada uma com domínio, CNPJ ou identidade própria)
- Lojista com filiais regionais que querem dashboards independentes
- Operação B2C + B2B rodando em duas lojas Shopify/Woo distintas
- Agência ou revendedor que opera lojas de clientes
Se você tem uma operação só com várias categorias de produto, multi-loja não é o caminho — uma loja única com segmentação resolve melhor.
Como funciona
Cada loja é uma entidade independente dentro do ShopIA:
- Banco de dados isolado (RLS por store_id)
- Métricas, clientes, produtos, pedidos próprios
- Configurações de Memo e Otto próprias
- Equipe própria (mas o mesmo usuário pode estar em várias)
- Plano e cobrança próprios (ver mais abaixo)
A troca de loja no painel apenas muda o contexto — você não duplica login.
Adicionando uma nova loja
- Acesse Configurações > Plano e confirme que seu plano permite multi-loja.
- No seletor de lojas (canto superior da sidebar), clique em + Adicionar loja.
- Preencha o cadastro: nome, CNPJ, segmento.
- Conecte a plataforma (Woo, Shopify, Nuvemshop, VTEX).
- Configure DNA, agentes e canais como em uma loja nova.
Cada loja passa pelo onboarding independente. Detalhes do conector em Conectar WooCommerce ou Conectar Shopify.
Trocando de loja no painel
Pelo seletor
- Clique no nome da loja atual no topo da sidebar.
- Lista de lojas suas aparece.
- Clique na loja desejada.
- Painel recarrega com dados da nova loja.
Por atalho
Ctrl + L (Windows/Linux) ou Cmd + L (Mac) abre o seletor sem clicar.
Última loja ativa
O ShopIA salva qual foi a última loja que você acessou. Ao fazer login novamente, abre direto nela.
<!-- TODO: confirmar com Gabriel se persistência da última loja já está implementada (architecture-google-signin-flow.md menciona users.last_active_store_id) -->
Plano e cobrança
| Plano | Quantas lojas |
|---|---|
| Free / Starter | 1 |
| Pro | Até 3 |
| Enterprise | Ilimitado |
<!-- TODO: confirmar limites quando billing sair do stub -->
A cobrança é por loja, não por usuário. Cada loja tem ciclo próprio.
Atenção: lojas em Trial contam para o limite, mas não geram cobrança até virarem pagas.
Equipe multi-loja
Um mesmo usuário pode ser membro de várias lojas com papéis diferentes em cada:
- Owner na loja A
- Manager na loja B
- Viewer na loja C
A interface respeita o papel da loja ativa no momento.
Para gerenciar membros de cada loja, troque para a loja específica e acesse Configurações > Equipe.
Dados isolados entre lojas
Reforçando o que NÃO acontece entre lojas:
- Clientes não vazam (cliente da loja A não aparece na loja B, mesmo se for o mesmo email)
- Métricas não somam (cada dashboard mostra apenas a loja ativa)
- Memo tem memória própria por loja (mesmo dono cadastrado nas duas tem memória separada)
- DNA da marca é por loja
- Cota de email é por loja
- Sandbox é por loja
Essa isolação é garantida pelo RLS do PostgreSQL, não apenas pela UI.
Visão consolidada (roadmap)
A visão consolidada multi-loja (dashboard único somando KPIs de várias lojas) está em roadmap. Hoje, cada loja é vista individualmente.
<!-- TODO: confirmar com Gabriel se visão consolidada virá em roadmap pós-launch -->
Casos práticos
Caso 1: marca de roupa com loja física + e-commerce
Crie uma loja para o e-commerce e outra para o operacional físico (se houver integração separada). Mantém métricas claras de cada canal.
Caso 2: agência operando 5 clientes
Uma conta ShopIA com 5 lojas. Gabriel da agência é Owner em todas, Admin do cliente é convidado em cada loja específica.
Plano sugerido: Enterprise (multi-loja ilimitado).
Caso 3: marca-mãe com sub-marcas
Cada sub-marca vira uma loja separada. Permite DNA, calendário e Otto independentes — vital quando público-alvo difere.
Limitações conhecidas
- Não há vínculo automático entre clientes da loja A e B (mesmo se for o mesmo CPF). LGPD exige consentimento por loja.
- Memo não compartilha contexto entre lojas. Conversa com Gabriel da loja A não vira contexto na loja B.
- KB também é por loja.