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
} %}
Comentários
0 comentário
Por favor, entre para comentar.