Skip to content

Comandos Artisan (CLI)

O ecossistema do projeto conta com comandos customizados do Laravel Artisan para facilitar a orquestração do motor de busca e a sincronização de dados via terminal.

Configuração do Motor de Busca

Comando: php artisan app:configure-meilisearch

Este é o comando mais crítico para a inteligência da busca. Ele não indexa os produtos em si, mas "ensina" ao Meilisearch como ler, interpretar e priorizar os dados do índice wake_products. O script executa 6 etapas sequenciais:

  1. Definição de Filtros Base: Registra atributos fixos que sempre existirão para filtragem, como brand, product_type, categorias, availability, is_televendas, sku, ean, price, exibirSite, valido e envio em até 24h.
  2. Descoberta Dinâmica: Faz uma varredura no banco de dados (coluna raw_data->'atributos') para encontrar especificações técnicas variáveis (ex: voltagem, cor) e as injeta automaticamente como novos filtros no Meilisearch.
  3. Ordenação (Sortable): Libera atributos matemáticos e booleanos para ordenação nos resultados: price, id, estoque_total, title, percentual_desconto e availability.
  4. Pesos de Relevância (Searchable): Define a prioridade do "Match" de texto. A ordem importa:
  5. A categoria principal (product_type) e a árvore de navegação (categorias) possuem um peso maior do que o próprio nome do produto (title).
  6. Dados em massa como informacoes_tecnicas_full ficam no final da fila de prioridade para evitar falsos positivos.
  7. Agrupamento (Distinct): Configura o campo produto_id para agrupar as variantes (ex: P, M, G ou 110V/220V) sob o mesmo item "pai" na listagem de resultados.
  8. Configurações Avançadas de Linguagem e IA:
  9. Busca Híbrida/Vetorial: Ativa o embedder default com suporte a 1024 dimensões, fornecidos pela IA local (userProvided).
  10. Ranking Rules: Estabelece a hierarquia de desempate, priorizando o "Match" exato ou por proximidade antes de aplicar tolerância a erros.
  11. Stop Words: Ignora preposições e artigos da língua portuguesa para otimizar o processamento (ex: "de", "para", "com").
  12. Sinônimos: Carrega um dicionário denso com jargões regionais e técnicos do setor de ferramentas. Exemplo: quem busca por "makitinha" encontrará "serra marmore", e quem busca "110v" também verá resultados para "127v".
  13. Proteção contra Typos: A tolerância a erros de digitação é estritamente desativada para números e para os atributos sku e ean, garantindo que uma busca por um código exato não traga produtos parecidos por aproximação.

Importação em Massa (Wake)

Comando: php artisan wake:import

Este comando serve como um gatilho manual para iniciar ou forçar uma varredura completa na base da Fbits/Wake.

  • Ação: Ele instancia a classe WakeImportService e executa o método syncProducts().
  • Uso: Ideal para o setup inicial do sistema ou para recuperação de dados caso o serviço de Webhooks fique fora do ar por um longo período. Durante a rotina normal, o projeto se mantém atualizado pelos eventos passivos, sem a necessidade de rodar este comando constantemente.