Este tópico é dedicado a um cenário que ocorre apenas em lojas em VTEX IO que utilizam o Intelligent Search.
Algumas lojas VTEX, ao realizarem a migração ou implementarem sua loja em VTEX IO, percebem um problema com o comportamento da busca, no qual produtos que tem uma categoria e/ou marca em seu nome não aparecem na busca daquela marca/categoria.
Isso ocorre devido a um comportamento padrão da Intelligent Search em que, quando uma busca bate exatamente com o nome de uma marca ou categoria ativa na loja, a Intelligent Search mostrará a página de marca/categoria em questão, ao invés de realizar uma busca. Se algum produto do Catálogo tem a marca/categoria em seu nome mas faz parte de outra marca/categoria, ele não será exibido. Com um exemplo:
Produto A: Salgadinho Ruffles
Marca: Elma Chips
Produto B: Kit Salgadinhos Elma Chips
Marca: Kit Salgadinhos
Se buscarmos “Elma Chips” na loja, o produto A aparecerá (porque tem uma marca com nome igual ao da busca) e o produto B não (apesar de ter o nome da marca em seu nome).
Existem duas soluções para este comportamento, dependendo do status da marca/categoria em questão.
Marca/categoria ativa
Se a marca/categoria está ativa e visível no site, a solução é utilizar a ferramenta de Regra de Merchandising para que os resultados de busca por termo sejam incluídos nos resultados de busca por marca/categoria, conforme o exemplo abaixo:
Isso fará com que a página da marca/categoria inclua todos os produtos que a tenham em seu nome mas fazem parte de outra marca/categoria.
Marca/categoria inativa
Por outro lado, em alguns cenários a loja tem produtos de uma dada marca/categoria em seu site, mas a marca/categoria em si está inativa. Isso pode acontecer, por exemplo, se houve uma reorganização do catálogo que centralizou produtos em outras marcas/categorias.
Neste caso, a solução é um pouco mais complexa e envolve o uso do IDE de GraphQL que pode ser acessado no admin. O objetivo é deletar a rota desta marca/categoria inativa, para que ela não seja mais levada em conta pela busca.
Para fazer isso, vá até o GraphQL IDE no admin e selecione o app vtex.rewriter
. Na sessão à esquerda, delete todos os valores que estiverem lá e coloque o seguinte (trocando “categoria” pelo nome da marca/categoria em questão):
mutation{
internal{
delete(path: "/categoria"){
id
}
}
}
Esta deve ser a aparência final:
Ao rodar esta query (com o botão de Play ao lado de “GraphiQL”) a resposta do lado direito deve ter esta aparência:
Isso significa que a rota da marca/categoria inativa foi deletada e, portanto a busca agora pode mostrar todos os resultados conforme esperado. É importante ressaltar que o processo acima, usando GraphQL, deve ser utilizado apenas em marcas/categorias inativas.
Eduardo Luciano
Field Software Engineer | VTEX