Pular para o conteúdo
Categorias · Produtos

Busca de produtos

Atualizado em

A busca de produtos é realizada utilizando a extension nativa da plataforma flexy f2_store_variant_search f2_store_variant_search(query:String, filters: Objeto ): ObjetoResult Parâmetros: query - String: caracteres que serão levados para a busca exemplos: casa, cone. 125456-16, filters - Objeto: chaves e valores de configuração da busca exemplo:

{
    useSearchParameters: 'true',
    searchTerm: query,
    page: page ?: 1,
    sortOrder: order,
    itemsPerPage: itemsPerPage ?: 15,
    showOnlyAvailable: false,
    shoppingStoreReferenceCode: shoppingStore.referenceCode,
    filter: filterString,
    showFilters: 'true'
}

Retorno ObjetoResult.variants - Array : lista das variações retornadas pela busca ObjetoResult.totalResults - Inteiro : Quantidade de resultados da busca ObjetoResult.propertyFilter - Objeto que retorna dados dos filtros na busca ObjetoResult.propertyFilter.all - Objeto que retorna dados dos filtros existentes na busca

Funcionamento

  1. Se a string de busca for idêntica a um reference code, retorna a variação específica correspondente.

  2. Caso contrário, a string de busca é comparada com o escopo de produtos, onde é procurada em campos como nome do produto/variação, reference code do produto/variação, categoria, metatags e nomes de loja. É utilizada uma técnica chamada "fuzzy" que permite a alteração de caracteres para facilitar a busca por termos próximos. Por exemplo, "caza" encontraria "casa" e "coni" encontraria "cone".

  • useSearchParameters: Um atributo que define se filtros mais avançados serão utilizados. É recomendado definir esse atributo como true.

  • page: Define a página da listagem de produtos a ser exibida.

  • sortOrder: Determina a ordenação dos produtos na listagem. Os valores aceitos podem ser null (relevância), name-asc (nome em ordem ascendente), name-desc (nome em ordem descendente), price-asc (preço em ordem ascendente), price-desc (preço em ordem descendente), sales-desc (mais vendidos) ou createdAt-desc (lançamentos).

  • itemsPerPage: Define a quantidade de itens a serem exibidos por página.

  • showFilters: Retorna as propriedades marcadas como filtro que estão selecionadas nos produtos resultantes da busca.

Essas opções e filtros ajudam a refinar e personalizar a pesquisa e a lista de produtos exibidos.

Exemplo de uso No exemplo abaixo, utilizado no padrão,

{% set query = app.request.get('q', app.request.get('query', app.request.get('searchTerm'))) %}
{% set filters = {
useSearchParameters: 'true',
searchTerm: query,
page: page ?: 1,
sortOrder: order,
itemsPerPage: itemsPerPage ?: 15,
showOnlyAvailable: false,
shoppingStoreReferenceCode: shoppingStore.referenceCode,
filter: filterString,
showFilters: 'true'
} %}
{% set result = f2_store_variant_search(query, filters) %}

{% include 'FlexyFtwoStoreBundle:Include:variant-list.html.twig' with {
    path: path,
    variants : result.variants,
    totalResults : result.totalResults
} %}