# 🌐 Site / Catálogo - Guia de Configuração

## 📋 Visão Geral

O módulo **Site / Catálogo** permite gerenciar quais produtos do seu estoque serão exibidos no catálogo online, com controle total sobre visibilidade, preços e configurações.

## 🚀 Instalação e Configuração

### 1. Executar Script SQL

Primeiro, execute o script SQL no Supabase para adicionar o campo de visibilidade:

```bash
# Acesse o SQL Editor do Supabase e execute:
sql/add-catalogo-visibility.sql
```

Este script adiciona:
- Campo `visivel_catalogo` na tabela produtos
- Índice para melhor performance
- Define todos os produtos existentes como visíveis por padrão

### 2. Acessar o Menu

Após executar o script, o novo menu estará disponível:

1. Faça login no sistema
2. Clique em **"Site / Catalogo"** no menu lateral
3. Configure as opções do catálogo

## ⚙️ Funcionalidades

### Configurações do Catálogo

**URL do Site**
- Defina a URL onde o catálogo será publicado
- Exemplo: `https://liberikids.com.br`

**Status do Catálogo**
- ✅ **Ativo**: Catálogo está disponível online
- ❌ **Inativo**: Catálogo está offline para manutenção

**Exibir Preços**
- ✅ Mostrar preços dos produtos no catálogo
- ❌ Ocultar preços (apenas mostrar produtos)

**Exibir Estoque**
- ✅ Mostrar quantidade em estoque
- ❌ Ocultar informações de estoque

### Gerenciamento de Produtos

#### Estatísticas

O sistema exibe três métricas principais:

📦 **Total de Produtos**: Todos os produtos cadastrados
👁️ **Produtos Visíveis**: Produtos mostrados no catálogo
🙈 **Produtos Ocultos**: Produtos não visíveis no catálogo

#### Controle de Visibilidade

Para cada produto, você pode:

**Tornar Visível** 👁️
- Clique no botão "Oculto" para tornar o produto visível
- Produto aparecerá destacado e disponível no catálogo

**Tornar Oculto** 🙈
- Clique no botão "Visível" para ocultar o produto
- Produto fica esmaecido e não aparece no catálogo online

## 📊 Estrutura de Dados

### Tabela: produtos

```sql
visivel_catalogo BOOLEAN DEFAULT true
```

- `true`: Produto visível no catálogo
- `false`: Produto oculto do catálogo

### Tabela: configuracoes

```sql
chave: 'catalogo_config'
valor: {
  catalogoAtivo: boolean,
  urlSite: string,
  exibirPrecos: boolean,
  exibirEstoque: boolean
}
```

## 🔌 API Endpoints

### GET /api/configuracoes/catalogo
Busca as configurações do catálogo

**Resposta:**
```json
{
  "catalogoAtivo": false,
  "urlSite": "",
  "exibirPrecos": true,
  "exibirEstoque": false
}
```

### POST /api/configuracoes/catalogo
Salva as configurações do catálogo

**Body:**
```json
{
  "catalogoAtivo": true,
  "urlSite": "https://liberikids.com.br",
  "exibirPrecos": true,
  "exibirEstoque": false
}
```

### PATCH /api/produtos/:id/visibilidade
Atualiza a visibilidade de um produto

**Body:**
```json
{
  "visivelCatalogo": true
}
```

**Resposta:**
```json
{
  "success": true,
  "message": "Produto visível no catálogo",
  "produto": { ... }
}
```

## 🎨 Layout do Catálogo

### Grid de Produtos

Cada produto exibe:

1. **Imagem do Produto**
   - Imagem principal ou ícone de placeholder
   - 200px de altura

2. **Informações**
   - Nome do produto
   - Descrição (máximo 2 linhas)
   - Preço de venda
   - Quantidade em estoque

3. **Botão de Visibilidade**
   - 🟢 Verde: Produto visível
   - ⚪ Cinza: Produto oculto

### Estados Visuais

**Produto Visível**
- Fundo branco
- Borda normal
- Botão verde "Visível"

**Produto Oculto**
- Opacidade reduzida (50%)
- Botão cinza "Oculto"

## 🔧 Troubleshooting

### Campo visivel_catalogo não existe

**Erro:**
```
column "visivel_catalogo" does not exist
```

**Solução:**
Execute o script SQL:
```bash
sql/add-catalogo-visibility.sql
```

### Produtos não aparecem

**Verificar:**
1. Campo `visivel_catalogo = true` no banco
2. Campo `ativo = true` no banco
3. Produto tem variações cadastradas

### API não responde

**Verificar:**
1. Servidor está rodando (porta 5000)
2. Supabase está configurado corretamente
3. Variáveis de ambiente estão corretas

## 📝 Fluxo de Uso

### Para Administradores

1. Acesse **Site / Catalogo**
2. Configure as opções gerais
3. Revise os produtos cadastrados
4. Oculte produtos sem estoque ou inativos
5. Salve as configurações
6. Ative o catálogo quando pronto

### Para o Catálogo Online

1. Sistema busca apenas produtos com `visivel_catalogo = true`
2. Respeita configurações de exibição (preços, estoque)
3. Mostra produtos ordenados por data de cadastro
4. Exibe imagens e descrições conforme cadastrado

## 🎯 Boas Práticas

### Visibilidade de Produtos

✅ **Manter Visível:**
- Produtos com estoque disponível
- Produtos com fotos de qualidade
- Produtos com descrições completas
- Produtos da estação atual

❌ **Manter Oculto:**
- Produtos sem estoque
- Produtos descontinuados
- Produtos sem foto
- Produtos em processo de cadastro

### Configurações

**Desenvolvimento:**
- Catálogo: Inativo
- Exibir Preços: Sim
- Exibir Estoque: Sim

**Produção:**
- Catálogo: Ativo
- Exibir Preços: Conforme estratégia
- Exibir Estoque: Não (para evitar frustração)

## 📱 Responsividade

O layout é totalmente responsivo:

**Desktop (> 768px)**
- Grid de 3-4 colunas
- Botões grandes e visíveis

**Mobile (< 768px)**
- Grid de 1 coluna
- Cards otimizados para toque
- Botões expandidos

## 🔐 Segurança

- Apenas administradores logados podem:
  - Acessar o painel de catálogo
  - Modificar configurações
  - Alterar visibilidade de produtos

- O catálogo público terá acesso somente leitura

## 🎨 Personalização

### Cores

As cores podem ser alteradas em:
```css
/client/src/styles/site-catalogo.css
```

Principais variáveis:
- `#667eea` - Cor primária (roxo)
- `#48bb78` - Sucesso (verde)
- `#ed8936` - Aviso (laranja)

### Textos

Textos podem ser alterados em:
```javascript
/client/src/pages/SiteCatalogo.js
```

## 📊 Métricas

O sistema exibe:
- Total de produtos cadastrados
- Produtos visíveis no catálogo
- Produtos ocultos do catálogo

Útil para:
- Acompanhar o crescimento do catálogo
- Identificar produtos que precisam de atenção
- Tomar decisões sobre quais produtos promover

## 🚀 Próximos Passos

Após configurar o Site / Catálogo, você pode:

1. Integrar com um site WordPress
2. Criar uma landing page personalizada
3. Exportar dados para redes sociais
4. Gerar QR Code para o catálogo
5. Criar materiais de marketing

---

**Desenvolvido para Liberi Kids - Moda Infantil** 👶✨
