Registro de termos de busca em redirecionamentos

Na Wake Storefront, para que os termos pesquisados fiquem corretamente registrados nos relatórios de busca — principalmente nos casos em que há redirecionamento automático para uma página de destino — é necessário que as lojas implementem um ajuste no template. Esse ajuste garante que o termo digitado pelo cliente seja capturado na URL (através do parâmetro termoBusca) e enviado para o backend, permitindo que a busca seja contabilizada de forma precisa.

Assim sendo, siga o passo a passo abaixo no template da loja para verificar se existe busca (quando a página é de resultados) ou termoBusca (quando veio de redirecionamento).

Passo 1 - Components/utils/search_record_data.html

Um util de template que roda no browser e cria a variável global search_record_data com os dados necessários para registrar a busca via GraphQL.

<script>
  const urlParams = new URLSearchParams(window.location.search);
    const searchTerm = urlParams.get("busca") ?? urlParams.get("termoBusca");
    let search_record_data = null;
    if (searchTerm) {
        search_record_data = {
            input: {
                query: searchTerm, 
                pageUrl: window.location.href, 
                page: {{ current_page ?? 1 }}, 
                pageSize: {{ search_data.page_size }},
                totalResults: {{ products.total_count }}
            }
        };
    }
</script>

➜ Essa é a chave para capturar termos quando a loja redireciona e troca a chave do parâmetro

Passo 2 - Assets/JS/search.js

Esse é o código responsável por enviar a mutation GraphQL que registra o termo da busca.

async function registerSearchRecord() {
 if (search_record_data !== null)
    {
        await client.query(
            `mutation SearchRecord($input: SearchRecordInput!) {
                createSearchTermRecord(input: $input){
                    isSuccess
                    date
                    query
                }
            }`, search_record_data);
    }
}

Passo 3 - aplicação na página destino (ex: Pages/hotsite.html)

É aqui que:

  • o util acima é injetado para montar o search_record_data, e
  • o bundle JS de search é carregado para enviar o registro.
{{ search_record_data search_data: data.hotsite current_page: current_page }}
...
{{ asset type: "js" paths: ["sort", "filter", "pagination", "products_per_page", "navbar", "mini_cart", "cart_from_spot", "user_login", "product", "glider", "wishList", "event_manager", "search"] }}

Como funciona na prática

  • O cliente busca por um termo.
  • Se houver redirecionamento, a URL de destino terá ?termoBusca=<termo>.
  • O template da loja captura o parâmetro (busca ou termoBusca).
  • O termo fica disponível no objeto search_record_data e é registrado pela plataforma.

Resultado esperado

  • Todas as buscas passam a ser registradas, incluindo aquelas que redirecionam diretamente para páginas de categoria, fabricante ou conteúdo.
  • O lojista terá relatórios consistentes e completos, sem perda de dados por causa de redirecionamentos.
  • As agências garantem que as estratégias de marketing baseadas em relatórios de busca serão muito mais confiáveis.