Esta wiki documenta o painel do Katalogix — a área administrativa onde você gerencia sua loja. Para cada tela mostramos o endereço (URL), o que aparece, todos os campos disponíveis com suas regras, e o passo a passo dos fluxos mais comuns.
/app (ex.: /app/products). Ao lado de alguns recursos você verá:
Starter+ (planos pagos),
Premium (apenas Premium),
Em breve.
1. Antes de começar
Cadastro — /app/register
Crie sua conta e a primeira loja em uma única tela.
- name · Nome do dono — obrigatório, até 100 caracteres.
- email · E-mail de login — obrigatório, formato válido.
- password · Senha — obrigatória, mínimo 8 caracteres.
- storeName · Nome da loja — obrigatório. Vira o título da loja pública e gera o slug automaticamente.
Após o submit, criamos a conta, a loja e enviamos o e-mail de verificação. Se o slug que sairia do nome já estiver em uso, escolhemos uma variação automaticamente — você verá um aviso no painel mostrando qual ficou.
Login — /app/login
- Login por e-mail e senha. Senhas guardadas com hash forte (Argon2id).
- Após 5 tentativas erradas seguidas, o login fica bloqueado por 15 minutos para o IP/usuário.
- A sessão é guardada em cookie
httpOnlye pode ser revogada a qualquer momento por você ou pelo time.
Recuperar senha — /app/reset
Informe o e-mail e enviamos um link com validade de 1 hora. Por segurança a tela mostra sempre a mesma mensagem de sucesso, exista ou não o e-mail no banco.
Verificação de e-mail — /app/verify-email
Logo após o cadastro pedimos para confirmar o e-mail. Enquanto não estiver verificado, o painel só permite ações ligadas à própria verificação. Use o botão Reenviar caso o e-mail não chegue.
2. Dashboard — /app
Tela inicial após o login. Mostra um resumo da loja e atalhos para as ações mais comuns.
Cards de resumo
- Produtos ativos — quantos produtos visíveis você tem na loja, com barra de progresso até o limite do plano (ex.:
5 / 20). - Total de leads — todos os leads recebidos (independente do status).
- Plano atual — Starter ou Premium, com link para a tela de cobrança. Lojas sem plano aparecem como "Sem plano" e ficam bloqueadas no storefront até assinarem.
Ações rápidas
- Novo anúncio — vai direto para o editor de produto novo. Fica desabilitado se o limite do plano foi atingido.
- Ver estoque — abre a lista pública de produtos da loja.
- Configurações — atalho para identidade, tema e blocos da home.
Últimos leads
Lista com os 5 leads mais recentes: nome, contato, produto interessado, status e quando chegaram. Clique para abrir a lista completa.
3. Produtos
3.1 Lista de produtos
O que aparece
- Cabeçalho com contador
{ativos} de {limite}e barra de progresso. - Botão Novo anúncio (desabilita e vira "Fazer upgrade" se você atingiu o limite).
- Abas por status: Ativos, Rascunhos, Vendidos, Ocultos, com contagem em cada.
- Grade de cards: foto principal, nome, preço, badge de status e badge "Destaque" quando aplicável. Cada card tem botão Editar.
A foto vem da imagem marcada como principal — se não houver, mostramos um placeholder.
3.2 Editor de produto
Ao clicar em Novo anúncio, criamos um produto em rascunho com identificador estável de 6 caracteres (ex.: a3f9k2) e abrimos o editor.
Rascunhos não publicados expiram em 24 horas — depois disso uma rotina de limpeza pode removê-los automaticamente.
Barra fixa do topo
- Breadcrumb com nome do produto.
- Badge do status atual.
- Status — dropdown com Rascunho, Ativo, Vendido, Oculto. A mudança salva imediatamente (sem recarregar).
- Publicar — atalho que move o produto direto para Ativo (só aparece em rascunhos).
- Excluir — pede confirmação, remove o produto e todas as imagens (não tem lixeira).
Informações básicas
- name · Nome — obrigatório, até 200 caracteres.
- URL · O identificador de 6 caracteres é fixo (não muda quando você renomeia, para não quebrar links já compartilhados). A parte legível é gerada do nome, mas pode ser editada manualmente.
- shortDescription · Descrição curta — até 160 caracteres. Aparece em cards e meta description.
- fullDescription · Descrição completa — até 5000 caracteres. Aceita destaques tipo
*negrito*,_itálico_,~tachado~e`código`, além de quebras de linha.
Preço e categoria
- priceCents · Preço em reais — formatado com pontos e vírgulas (ex.:
1.299,00). Deixe em branco para exibir "Consultar". - categoryName · Categoria — texto livre até 100 caracteres, com sugestões automáticas das categorias que você já usou.
- condition · Condição — opções: NOVO, SEMINOVO, USADO ou em branco.
- conservationState · Estado de conservação — texto livre até 200 caracteres (ex.: "Excelente, sem detalhes").
- year · Ano — dropdown de 1950 ao próximo ano (em branco se não se aplica).
Detalhes adicionais
- brand · Marca — até 100 caracteres.
- modelName · Modelo — até 100 caracteres.
- mileage · Quilometragem — texto livre até 50 caracteres (ex.:
45.000 km). - color · Cor — até 50 caracteres.
- location · Localização — até 200 caracteres (ex.: cidade ou ponto de retirada).
- isFeatured · Destaque — checkbox. Quando marcado, o produto entra automaticamente no bloco "Destaques" da home.
Especificações técnicas
Adicione pares de chave / valor para detalhes técnicos (ex.: "Câmbio: Automático", "Memória: 256 GB").
- Botão Adicionar cria uma nova linha; o ✕ remove.
- Limite de 20 especificações por produto.
- Cada chave tem até 100 caracteres; cada valor, até 500.
Botões finais
- Salvar — grava as alterações sem trocar o status.
- Publicar — grava e muda o status para Ativo (verifica antes se você não estourou o limite do plano).
3.3 Galeria de imagens
Como funciona
- Arraste arquivos para a área de upload ou clique para escolher.
- Cada arquivo pode ter até 8 MB. Aceitamos JPEG, PNG e WebP.
- A primeira imagem enviada vira automaticamente a principal (a capa).
- Em qualquer outra imagem você pode clicar em Tornar principal para promovê-la.
- O botão de remover apaga a imagem do produto e do armazenamento.
- Se a principal for removida, o sistema escolhe a próxima da lista.
Limite por produto
- Starter: 6 imagens por produto.
- Premium: 12 imagens por produto.
Atingiu o limite? O upload mostra um aviso e bloqueia novos envios até você liberar espaço ou fazer upgrade.
4. Editor de Home
A home da sua loja é montada por blocos. Você adiciona, remove e arrasta para reordenar — até 15 blocos no total. O editor fica integrado à tela de Configurações.
O que cada bloco tem em comum
- enabled · Liga/desliga o bloco sem precisar removê-lo.
- spacing · Espaçamento —
sm,mdoulg. - Botão ↑ / ↓ ou drag handle para reordenar.
- Botão Remover apaga o bloco (não apaga produtos nem imagens reaproveitadas).
4.1 Tipos de bloco
Hero / Banner principal — type: "hero"
- background ·
banner,gradientouminimal. - align ·
leftoucenter. - title · Título — até 200 caracteres.
- subtitle · Subtítulo — até 500 caracteres.
- image_url · Imagem de fundo — sobrescreve o banner padrão da loja. Até 500 caracteres na URL.
- show_cta · Mostra ou esconde o bloco de CTAs.
- cta_label / cta_url · Botão principal.
- cta_secondary_label / cta_secondary_url · Botão secundário (opcional).
Destaques — type: "featured"
Mostra automaticamente os produtos com a flag Destaque.
- title · Título — até 200 caracteres.
- limit · 1 a 20 produtos (padrão 6).
- columns · 2, 3 ou 4 colunas.
Recém adicionados — type: "latest"
- title · Título.
- limit · 1 a 20 (padrão 6).
- columns · 2, 3 ou 4.
- sort ·
newestouoldest.
Produtos por categoria — type: "category"
- title · Título.
- category · Nome exato da categoria — até 120 caracteres.
- limit · 1 a 20.
- columns · 2, 3 ou 4.
- sort ·
newest,oldest,price_ascouprice_desc.
Lista de categorias — type: "categories"
- title · Título.
- columns · 4 ou 6.
Lista todas as categorias com a contagem de produtos em cada uma.
Texto livre — type: "text"
- title · Título.
- body · Conteúdo — até 2000 caracteres.
- align ·
leftoucenter.
Banner com imagem — type: "banner"
- image_url · Imagem de fundo.
- title, subtitle.
- cta_label / cta_url · Botão.
- align ·
leftoucenter. - overlay · Escurecimento da imagem — 0 a 100.
Vídeo (YouTube) — type: "video"
- title, subtitle.
- video_url · URL do YouTube — formatos
watch,shortouembed.
Chamada para ação (CTA) — type: "cta"
- title, subtitle.
- cta_label / cta_url.
- background ·
brand,accent,gradientoudark.
Espaçador / divisor — type: "divider"
- size ·
sm,mdoulg. - show_line · Mostra ou não a linha divisória.
Mapa / localização — type: "map"
- title, subtitle.
- address · Endereço — até 500 caracteres. Usado também para o iframe quando não há coordenadas.
- lat / lng · Coordenadas (opcionais).
- zoom · 1 a 20 (padrão 16).
- hours · Horário de funcionamento — texto multilinha até 1000 caracteres.
- cta_label · Texto do botão (ex.: "Como chegar").
- height ·
sm,mdoulg.
5. Identidade e tema — /app/settings
Tudo que define a aparência e os contatos da sua loja. As alterações são salvas com o botão Salvar no fim da página.
Informações da loja
- name · Nome da loja — até 100 caracteres.
- tagline · Slogan curto — até 200 caracteres.
- description · Descrição completa — até 2000 caracteres.
- contactEmail · E-mail de contato público.
- whatsappE164 · WhatsApp no formato internacional (ex.:
+5511987654321).
Logo e banner
- logoUrl · Logo enviado por upload (JPEG/PNG/WebP, até 8 MB).
- logoStyle ·
IMAGEusa o arquivo enviado;INITIALmostra um quadrado com gradiente e a primeira letra do nome. - bannerUrl · Banner padrão usado nos blocos hero quando o bloco não tem imagem própria.
Redes sociais e links
- instagramUrl, facebookUrl, youtubeUrl, tiktokUrl · URLs completas, até 500 caracteres cada.
- externalLink1Url + externalLink1Label · Link extra com rótulo personalizado.
- externalLink2Url + externalLink2Label · Segundo link extra.
Tema pronto
Escolha entre 14 presets: Clássico, Floresta, Pôr do sol, Oceano, Real, Monocromático, Ouro, Rosa, Corporativo, Vibrante, Neon, Terra, Meia-noite e Carbono. Disponível em todos os planos.
Cada preset define automaticamente cores, fontes, navbar e footer. Se o seu plano permitir, você pode sobrescrever campos específicos abaixo.
Layout Todos os planos
- heroStyle ·
MINIMAL,BANNERouSPLIT. - productLayout ·
GRIDouLIST. - cornerRadius ·
NONE,SM,MD,LGouFULL. - showPrice · liga/desliga a exibição global de preços (quando desligado, todos os produtos mostram "Consultar").
- showFloatingWhatsapp · botão flutuante de WhatsApp na loja.
- navbarShowLogo, navbarShowName, navbarShowWhatsapp · controlam o que aparece no menu superior.
- footerShowSocial · ícones sociais no rodapé.
Cores e tipografia Premium
- themeColor · cor principal da marca (hex
#RRGGBB). - accentColor · cor de destaque.
- bodyBg, bodyText, surfaceColor, borderColor · cores de fundo, texto, cards e bordas.
- fontHeading · fonte dos títulos. Opções: Inter, Manrope, Poppins, Plus Jakarta Sans, Playfair Display, DM Serif Display, Space Grotesk.
- fontBody · fonte do corpo do texto (mesmas opções).
Navbar Premium
- navbarStyle ·
SOLID,TRANSPARENT,MINIMAL,BORDEREDouGRADIENT. - navbarSticky · navbar fixa ao rolar.
- navbarColor · cor de fundo personalizada.
- navbarTextColor · cor do texto.
Footer Premium
- footerStyle ·
MINIMAL,COMPACTouFULL. - footerColor / footerTextColor.
- footerCustomText · texto livre no rodapé — até 300 caracteres.
- hideKatalogixBrand · remove o selo "Powered by Katalogix".
6. Domínio — /app/domain
Endereço na plataforma
Toda loja recebe um link no formato katalogix.com.br/s/{slug}. Para mudar:
- Digite o novo slug. Conforme você digita, verificamos disponibilidade em tempo real (com debounce de 300 ms) e mostramos uma destas mensagens:
- ✓ Disponível
- Já em uso ou Reservado
- Esse já é o seu endereço atual
- Clique em Salvar. Atualizamos o link público — quem ainda usar o slug antigo passa a receber 404.
Regras do slug
- Apenas letras minúsculas, números e hífens.
- De 3 a 50 caracteres.
- Não pode começar ou terminar com hífen.
- Palavras reservadas (não disponíveis):
app,admin,api,public,uploads,s,login,register,termos,privacidade.
Domínio próprio Em breve
Estamos finalizando o suporte a domínios próprios (ex.: catalogo.sualoja.com.br) com validação automática de DNS e HTTPS via Cloudflare.
O recurso será liberado para o plano Premium. Quem assinar agora terá acesso assim que ficar disponível, sem custo extra.
7. SEO — /app/seo
Diagnóstico
O topo da página mostra um score de 0 a 100% com checklist:
- Título customizado preenchido.
- Descrição preenchida.
- Imagem de compartilhamento configurada.
- Endereço ou coordenadas informados.
- Indexação ativada (loja visível ao Google).
Meta tags
- seoTitle · Título — até 120 caracteres. Contador ao lado destaca a faixa ideal de 50–60.
- seoDescription · Descrição — até 300 caracteres. Faixa ideal de 120–160.
- seoImageUrl · Imagem para WhatsApp/Facebook/Twitter. Tamanho ideal 1200×630, até 8 MB. Você pode enviar arquivo ou colar URL.
- seoKeywords · Palavras-chave — até 300 caracteres. Marcamos esse campo como legado (Google não usa desde 2009).
A página tem prévias ao vivo: simulação do Google e do card do WhatsApp/Facebook.
Negócio local (Schema.org)
Esses campos viram JSON-LD e ajudam você a aparecer melhor no Google Maps e em buscas locais.
- seoBusinessType · Tipo do negócio. Opções: OnlineStore, LocalBusiness, Store, ClothingStore, ElectronicsStore, AutoDealer, AutoPartsStore, BookStore, HomeGoodsStore, JewelryStore, ToyStore, FurnitureStore, BikeStore, GardenStore, HardwareStore, PetStore, SportingGoodsStore, Restaurant, Bakery.
- seoStreetAddress · Rua e número (até 200).
- seoCity, seoState, seoPostalCode, seoCountry · cidade, UF, CEP, país (BR padrão).
- seoLatitude, seoLongitude · coordenadas decimais. Pegue clicando com o botão direito no Google Maps → "O que há aqui?".
- seoOpeningHours · horário de funcionamento. O painel tem widget visual com toggle por dia da semana e atalhos (Seg–Sex 9h–18h, Seg–Sáb com parcial, Todos os dias, Limpar).
Indexação e bots
- seoRobotsIndex · liga/desliga indexação. Quando desligado, geramos
noindex, nofollowe orobots.txtproíbe tudo. - seoAllowAiBots · permite ou bloqueia GPTBot, ClaudeBot, Google-Extended, PerplexityBot, ChatGPT-User, OAI-SearchBot, anthropic-ai e CCBot.
O sitemap.xml e o robots.txt são gerados automaticamente — não precisa editar.
8. Leads — /app/leads
De onde vêm
- PRODUCT_PAGE — clique de interesse na página do produto.
- CONTACT_FORM — formulário da página de contato.
- WHATSAPP_CLICK — clique no botão de WhatsApp em qualquer ponto da loja.
Filtros e busca
- Campo de busca por nome, e-mail ou telefone.
- Abas por status: Todos, Novos, Em andamento, Fechados, Perdidos — cada uma com a contagem.
Linha do lead
- Avatar (primeira letra do nome), nome, contato, link do produto interessado e prévia da mensagem.
- Bolinha azul pulsante para leads NEW.
- Dropdown de status (atualiza na hora, sem recarregar). Status disponíveis: NEW, IN_PROGRESS, CLOSED, LOST.
- Data em formato relativo (ex.: "há 2 horas").
- Menu (⋮) com:
- Abrir WhatsApp (se houver telefone).
- Enviar e-mail (se houver e-mail).
- Ligar (se houver telefone).
- Excluir lead.
- Clique na área do nome para abrir um painel expandido com mensagem completa, fonte e data exata.
Ações em massa
Marque o checkbox dos leads desejados — aparece a barra com a contagem e o botão Excluir selecionados. A operação pede confirmação.
9. Cobrança — /app/billing
Banner do cupom de fundador
Se houver vagas de fundador disponíveis, aparece um banner no topo com a contagem de vagas restantes e o cupom LANCAMENTO aplicado automaticamente — −60% vitalício nas primeiras 17 assinaturas.
Forma de pagamento
- Recorrente — cartão de crédito com renovação automática (preapproval Mercado Pago).
- Avulso — Pix, boleto ou cartão pelo ciclo escolhido (sem renovação automática). Você renova manualmente no fim do período.
Não armazenamos dados de cartão — quem cuida do checkout é o Mercado Pago.
Ciclo de cobrança
| Ciclo | Duração | Desconto sobre o mensal |
|---|---|---|
| Mensal | 1 mês | — |
| Trimestral | 3 meses | 5% |
| Semestral | 6 meses | 10% |
| Anual | 12 meses | 15% |
| Bianual | 24 meses | 25% |
O painel mostra os preços de cada ciclo lado a lado e o equivalente por mês.
Cupom
- Cole o código no campo Cupom e clique em Aplicar.
- Se válido, mostramos o percentual e atualizamos os preços dos planos com o desconto e o preço original riscado.
- O código fica anexado ao checkout — quando você assinar, o desconto é aplicado.
Assinatura ativa
Quando há um plano pago ativo, aparece um card com:
- Status: TRIALING, ACTIVE, PAST_DUE, INCOMPLETE ou CANCELED.
- Ciclo, data de renovação e desconto aplicado (se houver).
- Renovar — só aparece em assinaturas avulsas, abre novo checkout.
- Cancelar — pede confirmação. No modo recorrente, agendamos o cancelamento para o fim do período (você continua usando até lá).
Assinaturas Cortesia (concedidas pela equipe) não têm botão de cancelamento.
Cards de plano
Duas colunas: Starter e Premium. Cada uma mostra preço (atualizado pelo ciclo selecionado), recursos incluídos e botão de assinar. O plano atual fica destacado e botões de downgrade aparecem desabilitados. Lojas sem plano (recém-criadas ou com assinatura cancelada) ficam bloqueadas — o storefront não fica acessível até escolher um plano.
O que acontece em downgrade
Se o novo plano não comporta sua quantidade atual de produtos, os excedentes ficam bloqueados (não somem). Eles deixam de aparecer na loja pública, mas permanecem visíveis no painel. Quando você voltar para um plano maior, eles são desbloqueados na ordem em que foram cadastrados.
10. Suporte — /app/support
Lista de tickets
- Cada linha mostra assunto, status, prioridade e data da última atividade.
- Bolinha pulsante quando há resposta nova da equipe que você ainda não viu.
- Estado vazio convida a abrir o primeiro ticket.
Abrir um ticket
- subject · Assunto — obrigatório, até 200 caracteres.
- priority · Prioridade — LOW (dúvida ou sugestão), NORMAL (algo está incomodando) ou HIGH (loja parada, não consigo trabalhar).
- body · Mensagem — obrigatória, até 10 000 caracteres.
Ao enviar, o ticket entra com status OPEN e a equipe é notificada.
Detalhe e thread
- Cabeçalho com assunto, status, prioridade, data de abertura.
- Thread cronológica: suas mensagens à esquerda (fundo branco), respostas da equipe à direita (fundo índigo, avatar "K").
- Enquanto o ticket não está fechado, há campo de resposta (até 10 000 caracteres) e botão Fechar ticket.
- Se já estiver fechado, vemos um aviso "Este ticket está {status}. Abra um novo se precisar".
Status possíveis
- OPEN — recém-aberto.
- AWAITING_USER — equipe respondeu, aguardando você.
- AWAITING_STAFF — você respondeu, aguardando equipe.
- RESOLVED — equipe marcou como resolvido.
- CLOSED — você fechou (final).
Toda resposta sua atualiza a data da última atividade e move o ticket para AWAITING_STAFF.
Planos pagos têm fila prioritária. Não garantimos SLA, mas a fila premium anda mais rápido.
11. Limites por plano
| Recurso | Starter | Premium |
|---|---|---|
| Produtos ativos | 100 | Ilimitado |
| Imagens por produto | 6 | 12 |
| Blocos na home | até 15 | até 15 |
| Tema pronto (14 presets) | ✓ | ✓ |
| Toggles de layout (grade/lista, raio, hero, preço, etc.) | ✓ | ✓ |
| Botão de WhatsApp em produtos (venda física) | ✓ | ✓ |
| Venda de software/keys com checkout direto | ✓ | ✓ |
| Entrega instantânea por email (digital) | ✓ | ✓ |
| Captura de leads no painel | ✓ | ✓ |
| Notificação de leads por e-mail | ✓ | ✓ |
| Suporte prioritário | ✓ | ✓ |
| Cores customizadas (marca, accent, fundo, bordas) | — | ✓ |
| Tipografia personalizada | — | ✓ |
| Estilo e cores de Navbar e Footer | — | ✓ |
| Remover selo "Powered by Katalogix" | — | ✓ |
| Domínio próprio | — | Em breve |
Link da plataforma /s/sua-loja |
✓ | ✓ |
12. Referência rápida
Status do produto
- DRAFT · rascunho, expira em 24h se não publicado.
- ACTIVE · publicado e visível na loja.
- SOLD · vendido — exibe selo na loja.
- HIDDEN · oculto, fica salvo mas não aparece publicamente.
Condição
NOVO · SEMINOVO · USADO · em branco (não informado).
Status do lead
NEW · IN_PROGRESS · CLOSED · LOST
Origem do lead
PRODUCT_PAGE · CONTACT_FORM · WHATSAPP_CLICK
Status do ticket
OPEN · AWAITING_USER · AWAITING_STAFF · RESOLVED · CLOSED
Prioridade do ticket
LOW · NORMAL · HIGH
Status da assinatura
TRIALING · ACTIVE · PAST_DUE · INCOMPLETE · CANCELED
Modo de pagamento
RECURRING (cartão recorrente) · MANUAL (Pix/boleto/cartão por ciclo) · GIFT (cortesia da equipe)
Ciclo de cobrança
MONTHLY · QUARTERLY · SEMI_ANNUAL · YEARLY · BIENNIAL
Tipos de bloco da home
hero · featured · latest · category · categories · text · banner · video · cta · divider · map
Sentiu falta de algum detalhe? Manda um e-mail ou abra um ticket pelo painel — atualizamos a wiki sempre que liberamos um recurso novo.