I
Isis Control

O Isis é multi-loja nativo — uma empresa (tenant) pode ter 1 ou N filiais (Store), todas na mesma conta, sem cap. Cada loja tem:

  • CNPJ próprio.
  • Estoque independente (mesmo SKU, saldo diferente por filial).
  • Preço independente (mesmo SKU, preço pode variar).
  • Caixas independentes.
  • Usuários com papéis diferentes por loja (ex.: MANAGER na loja A, CASHIER na B).
  • Numeração fiscal própria (série NFC-e por loja).

Criar uma nova loja

Configurações → Lojas → Nova loja (OWNER ou ADMIN).

O criador vira MANAGER automático na loja nova — senão ele teria que se auto-convidar, o que não faz sentido.

Preencha dados fiscais completos antes de emitir NFC-e da filial nova. Veja Primeira venda em 30 minutos.

Seletor de loja

Com 2+ lojas, aparece um dropdown no topo da tela. Toda ação respeita a loja selecionada:

  • PDV vende na loja selecionada.
  • Caixa é da loja selecionada.
  • Estoque mostra o saldo daquela loja.
  • Relatórios filtram pela loja.

Com 1 loja só, o seletor fica oculto e tudo funciona direto.

Dashboard consolidado (multi-loja)

Relatórios → Desempenho por loja (OWNER/ADMIN only, sem exigir seleção de loja) mostra:

  • Faturamento por filial no período.
  • Ticket médio por filial.
  • Top produto de cada filial.

Útil pra comparar performance e identificar gargalos.

Transferências entre lojas

Movimenta estoque de uma loja pra outra com aprovação. Transferências → Solicitar:

  1. Loja de origem: a loja atual (você tá logado nela).
  2. Loja de destino: escolha no dropdown.
  3. Items + quantidades.
  4. Observações (opcional).

Status inicial: PENDING.

Aprovar ou rejeitar

O gerente da loja destino (ou OWNER/ADMIN) aprova:

  • Aprovar → estoque sai da origem, entra no destino, gera dois StockMovement (SAIDA + ENTRADA, ambos com motivo TRANSFERENCIA). Atômico e race-safe.
  • Rejeitar → obriga justificativa. Estoque não é tocado.

Quem solicitou também pode cancelar enquanto está PENDING.

Auto-criação de StoreProduct

Se o produto não existe na loja destino (só na origem), o sistema cria automaticamente um StoreProduct zerado na destino antes de incrementar. Assim o fluxo funciona mesmo pra produtos novos no catálogo central que ainda não foram distribuídos.

Isolamento de dados

Cada query no banco é automaticamente filtrada por tenant_id (via Prisma extension). Não tem como uma loja ver dados de outra empresa. Entre lojas do mesmo tenant, a filtragem é por store_id nos modelos onde faz sentido (Sale, StockMovement, CashierSession).

Alguns modelos são compartilhados no tenant (acessíveis por todas as lojas):

  • Catálogo de produtos.
  • Clientes.
  • Fornecedores.
  • Categorias financeiras.
  • Tabelas de preço B2B.

Isso facilita a vida de quem vende o mesmo catálogo em várias filiais.