filter_options
O Objeto filter_options
retorna um array com filtros que dá a possibilidade de montar filtros laterais na loja.
Disponível para uso nas páginas: catalog | search
filtered_options
- é o objeto responsável por retornar todos os filtros que estiverem aplicados na busca atual. Portanto pode ser utilizado para definir inputs com "checked
".
filter_options
- este objeto retorna todos os filtros independente deles estarem aplicados ou não.
Atributos disponíveis
A tabela abaixo lista os atributos que podem ser utilizados para os objetos filter_options
ou filtered_options
.
{{ brands }}
Array que contem todas as marcas da listagem de produtos. Cada marca obtida é um outro Array com duas keys: key
| doc_count
{{ brands.key }}
Nome da Marca existente na listagem de produtos.
{{ doc_count }}
Quantidade de produtos com a marca.
{{ categories }}
Array com todas as categorias da listagem de produtos. Cada categoria obtida é um outro Array com duas keys: doc_count
| key
{{ categories[0].key }}
Nome da Categoria, de índice definido entre colchetes "[]", ou pode ser iterado dentro do array categories
cada elemento com o atributo key
para obter o nome de todas categorias da listagem de produtos.
{{ categories[0].doc_count }}
Quantidade de produtos da Categoria, de índice definido entre colchetes "[]", ou pode ser iterado dentro do array categories
cada elemento com o atributo doc_count
para obter a quantidade de produtos de todas categorias da listagem de produtos.
{{ availability }}
Array com todos tipos de disponibilidade possíveis para a listagem de produtos. De cada item desse array pode ser consultado: key
| doc_count
{{ availability.key }}
Tipo de disponibilidade existente na listagem.
{{ doc_count }}
Quantidade de produtos por disponibilidade existentes na listagem.
{{ prices }}
Array que contem duas listas de preços com informações e faixas de variação: stats
| buckets
{{ prices.stats }}
Array com informações de valores gerais dos preços. Quando iterado exibe os valores na mesma ordem das suas Keys: count
| min
| max
| avg
| sum
{{ prices.stats.count }}
A quantidade de preços de produtos existentes na listagem.
{{ prices.stats.min }}
O menor preço na listagem de produtos.
{{ prices.stats.max }}
O maior preço na listagem de produtos.
{{ prices.stats.avg }}
Calcula e exibe a média de preço da listagem de produtos.
{{ prices.stats.sum }}
Soma de todos os preços da listagem de produtos.
{{ prices.buckets }}
Array com todas faixas de preço calculadas pela listagem de produtos. Cada faixa obtida é um outro Array com duas keys: to
| from
{{ prices.buckets[0].from }}
Valor inicial da faixa de preço do índice definido entre colchetes "[]", ou pode ser iterado dentro do array buckets
cada elemento com o atributo from
para obter o valor inicial de todas faixas de preço da página atual.
{{ prices.buckets[0].to }}
Valor final da faixa de preço do índice definido entre colchetes "[]", ou pode ser iterado dentro do array buckets
cada elemento com o atributo to
para obter o valor final de todas faixas de preço da página atual.
{{ properties }}
Array com todas características dos produtos da listagem. É possível imprimir o nome de cada característica obtida com o atributo key
. E dentro de cada característica existe outro Array "values
" com detalhes.
{{ properties.values}}
Array com todos os detalhes das características. Cada detalhe possui dois atributos: key
| doc_count
{{ properties.values.doc_count }}
Quantidade de produtos para o detalhe da característica.
{{ properties.values.key }}
Nome do detalhe da característica.
{{ properties.values.entity }}
O tipo da Característica, se é uma "Variação" ou "Propriedade".
Outras chaves utilizadas para o filtro:
{{ store.id }}
id da loja
company
Plataforma de Origem da Loja
page
Página atual da listagem de produtos
q
Query String buscada através do formulário de busca
brand
Lista de Marcas adicionadas ao filtro
sort
Ordenação atual da página
size
Quantidade de produtos retornados na busca
category_id
Id da categoria atual
Exemplo da estrutura de retorno do objeto filter_options
no layout :
Array
(
[brands] => Array
(
[0] => Array
(
[key] => marca
[doc_count] => 2
)
[1] => Array
(
[key] => teste
[doc_count] => 1
)
)
[categories] => Array
(
[0] => Array
(
[doc_count] => 9
[key] => Blusas
)
[1] => Array
(
[doc_count] => 1
[key] => Categoria 6
)
[2] => Array
(
[doc_count] => 1
[key] => Categoria1
)
[3] => Array
(
[doc_count] => 1
[key] => Categoria2
)
[4] => Array
(
[doc_count] => 1
[key] => Categoria3
)
[5] => Array
(
[doc_count] => 1
[key] => Categoria4
)
[6] => Array
(
[doc_count] => 1
[key] => Categoria5
)
)
[availability] => Array
(
[0] => Array
(
[key] => Disponível em 1 dia útil
[doc_count] => 1
)
[1] => Array
(
[key] => Disponível em 9 dias úteis
[doc_count] => 1
)
)
[prices] => Array
(
[stats] => Array
(
[count] => 9
[min] => 49.99
[max] => 300
[avg] => 116.66555555556
[sum] => 1049.99
)
[buckets] => Array
(
[0] => Array
(
[from] => 49.99
[to] => 77.99
)
[1] => Array
(
[from] => 78
[to] => 105.99
)
[2] => Array
(
[from] => 106
[to] => 133.99
)
[3] => Array
(
[from] => 134
[to] => 161.99
)
[4] => Array
(
[from] => 162
[to] => 189.99
)
[5] => Array
(
[from] => 190
[to] => 217.99
)
[6] => Array
(
[from] => 218
[to] => 245.99
)
[7] => Array
(
[from] => 246
[to] => 273.99
)
[8] => Array
(
[from] => 274
[to] => 300
)
)
)
[properties] => Array
(
[doc_count] => 4
[values] => Array
(
[0] => Array
(
[doc_count] => 4
[key] => Cor
[values] => Array
(
[0] => Array
(
[doc_count] => 1
[key] => Água
[entity] => variants
)
[1] => Array
(
[doc_count] => 1
[key] => Amarelo
[entity] => variants
)
[2] => Array
(
[doc_count] => 1
[key] => Azul
[entity] => variants
)
[3] => Array
(
[doc_count] => 1
[key] => Azul aço
[entity] => variants
)
)
)
[1] => Array
(
[doc_count] => 1
[key] => Gênero
[values] => Array
(
[0] => Array
(
[doc_count] => 1
[key] => Femino
[entity] => properties
)
)
)
)
)
)
Como Usar
Para aplicação no layout é necessário se atentar a alguns pontos detalhados abaixo.
Inicialmente é necessário que o filtro seja montado dentro de um formulário de método get
, por exemplo:
<form class="filter__form" method="get"><!-- Insira o filtro aqui --></form>
No campo name
do input, deve ser adicionado o nome da opção a ser filtrada, seguida por []
, além disso, no campo value
, é necessário forçar o encode para que funcione corretamente, por exemplo:
<input type="checkbox" name="categories[]" value="{{ category.key|convert_encoding('UTF-8', 'ISO-8859-1') }}">
É através do objeto filtered_options
que deve ser verificado se um determinado filtro está aplicado, e então marcado como checked
, para isso é necessário realizar uma validação, exemplo:
{% set category_applied = category.key in filtered_options.categories ? true : false %}
<input type="checkbox" name="categories[]" value="{{ category.key|convert_encoding('UTF-8', 'ISO-8859-1') }}" {{ category_applied ? 'checked' }}>
Last updated
Was this helpful?