Identidade visual e configuração

Personalize o painel administrativo e configure a integração com o MySQL Simdesk.

Pausa de sincronização (manutenção)

Interrompe o recebimento de dados das lojas na web (POST /api/v1/sync/push → HTTP 503). Use em manutenção temporária. Desmarque e salve ao terminar.

Não exige exportar o kit nem preencher o MySQL local — salve só esta opção. A pausa por empresa continua em Empresas.

Cores do painel

Escolha uma combinação ou defina as cores manualmente. A primária define sidebar e fundo dos cards; a secundária define destaques e ícones.

Logotipo do painel

PNG, JPG ou SVG. Fundo transparente recomendado.

Integração MySQL Simdesk

Credenciais para consulta ao Simdesk (importação de clientes). Host, porta e charset ficam no .env; banco, usuário e senha ficam aqui (senha cifrada no master).

Defina SIMDESK_SECRET_KEY no .env e a tabela config (database/schema/09_projeto_configuracao.sql).

Deixe em branco para manter a senha já salva.

Configurações Banco Web

Prefixo, usuário e senha MySQL na WEB usados ao cadastrar novas empresas (manual ou importação Simdesk), quando os campos de banco não forem informados no formulário.

A senha é cifrada no banco master (mesma chave SIMDESK_SECRET_KEY do .env). Execute database/schema/16_config_banco_web.sql e 19_config_web_db_name_prefix.sql se a tabela config ainda não tiver as colunas.

Nome do banco da empresa: {prefixo}{código Simdesk com 8 dígitos} (ex.: simsoftdsv_ecook_347).

Schema MySQL com a estrutura completa (tabelas, views, functions, triggers) usada para provisionar bancos vazios de novas empresas em Empresas → Banco de dados. O usuário MySQL da empresa precisa ter acesso de leitura a este schema.

Usuário do MySQL na WEB, para ser usado no cadastramento de novas empresas.

Deixe em branco para manter a senha já salva.

Kit de sincronização (loja → web)

Defina aqui a empresa, o MySQL local da loja, as tabelas e a URL da API. Salve o kit e exporte o ZIP — o config.json dentro do ZIP usa os dados salvos (exportar grava o formulário antes de gerar o arquivo).

Obrigatória para salvar e exportar. Deve ter Código Simsoft e token de sync cadastrados.

MySQL local da loja

Conexão com o banco de dados na máquina da loja (PDV). Esses dados vão para local_pdo no config.json exportado no ZIP.

Deixe em branco para manter a senha já salva (cifrada). No config.json exportado, a senha vai como password_encrypted.

Quantidade de registros a serem processados por vez. Recomendado: 5000 (limite máximo do MySQL).

Gravado em config.json (sync_interval_minutes). O ecook-tray.exe na bandeja da loja repete o envio a cada X minutos.

Tabelas sincronizadas

Todas as tabelas BASE TABLE do banco MySQL local configurado acima serão enviadas para a web. A chave primária é detectada automaticamente na loja (setup-sync-tabelas.exe / ecook-tray.exe). Tabelas sem PRIMARY KEY são ignoradas.

Salve o kit para atualizar a lista (requer MySQL local acessível a partir do servidor do painel). Na loja, a lista é sempre recalculada a partir do banco local.

Como configurar a sincronização na loja (cliente)

Na máquina da loja você precisa apenas de uma pasta com o conteúdo do ZIP exportado (sugestão: C:\eCookSync\desktop — os .exe usam automaticamente a pasta onde estão instalados) e um MySQL local com as tabelas de negócio. Não é necessário PHP na loja — o kit inclui executáveis Windows (.exe). O painel web fica no servidor; a loja apenas envia alterações para POST /api/v1/sync/push.

Antes de ir para a loja

No painel web, cadastre a empresa com Código Simsoft (emp_sim_codigo) e Token de sincronização (emp_sync_token) — mesmos valores em config.json na loja. As tabelas aceitas pela API são todas as BASE TABLE do MySQL local da loja (modo automático). Salve o kit para registrar a configuração no banco config.

  1. 1. Copiar os arquivos para o PC da loja

    No painel, use o card Kit de sincronização acima: salve os parâmetros e clique em Exportar ZIP para a loja (escolha a empresa). Extraia o ZIP em uma pasta da loja (ex.: C:\eCookSync\desktop). O pacote inclui config.json e os executáveis:

    • ecook-tray.exe — agente na bandeja (sync automática + menu)
    • setup-sync-tabelas.exe — cria colunas sinc_* e triggers no MySQL local
    • sync-retry-erros.exe — reprocessa registros com erro (sinc_status = 9)
    • iniciar_ecook_tray.bat — inicia o agente na bandeja
    • configurar_inicio_automatico.bat — atalho na pasta Inicializar do Windows

    Não é necessário PHP nem código do painel web na loja.

  2. 2. Preparar tabelas no MySQL local

    Execute uma vez após exportar o ZIP ou incluir tabela nova na grade:

    cd C:\eCookSync\desktop
    setup-sync-tabelas.exe

    Relatório em log/Log_Sync_Atualiza_Tabelas_*.txt.

  3. 3. Configuração gerada na exportação

    O ZIP traz config.json pronto (conexão, API, tabelas). Não edite manualmente salvo necessidade — reexporte pelo painel.

    Opcional: sync_origem — texto no histórico de sync; se vazio, o ecook-tray.exe monta automaticamente (hostname e SO).

  4. 4. Tabelas sincronizadas (automático)

    Todas as tabelas BASE TABLE do banco MySQL local são enviadas. O agente detecta a PRIMARY KEY automaticamente. Tabelas sem chave primária são ignoradas.

    Após criar tabela nova no MySQL local, execute setup-sync-tabelas.exe novamente para preparar colunas sinc_* e triggers.

  5. 5. Iniciar agente na bandeja

    Execute desbloquear_exes.bat (uma vez) e depois:

    cd C:\eCookSync\desktop
    iniciar_ecook_tray.bat

    O ícone aparece perto do relógio. Passe o mouse para ver a versão (vAA.MM.DD) e o countdown da próxima sync. Botão direito: Sincronizar agora, pausar, abrir log.

    Para iniciar ao logar no Windows: configurar_inicio_automatico.bat.

  6. 6. Produção

    Defina o intervalo em minutos no campo Intervalo de sincronização acima, salve o kit e reexporte o ZIP. O ecook-tray.exesync_interval_minutes do config.json.

    Use HTTPS em api.base_url em produção. Não compartilhe o config.json nem o token de sync.

Status sinc_status
  • 0 — pendente de envio
  • 1 — enviado com sucesso para a web
  • 9 — erro (ver sinc_erro_msg ou logs em log/)
  • Para reenviar erros: sync-retry-erros.exe (na pasta do kit) e depois Sincronizar agora no menu da bandeja
O que a API ignora

Colunas cujo nome começa com sinc_ são metadados só do MySQL local; a API remove-as antes de gravar na nuvem.

Checklist rápido
  • Empresa com código Simsoft e token no painel
  • Kit salvo no painel e ZIP exportado para a loja
  • setup-sync-tabelas.exe executado (colunas sinc_* e triggers)
  • ecook-tray.exe rodando na bandeja (ou início automático configurado)

Documentação completa no repositório: sync/README.md. Exemplos SQL de colunas e triggers: sync/sql/.