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
Se a string de busca for idêntica a um reference code, retorna a variação específica correspondente.
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
} %}