O Objeto filter_options retorna um array com filtros que dá a possibilidade de montar filtros laterais na loja.

Disponível nas páginas: catalog | search
Esse objeto é disponibilizado apenas para lojas que possuem a nova busca ativa.

Chaves principais Descrição
brands Lista de marcas
brands.key Nome da Marca
brands.doc_count Quantidade de itens por marca
categories Lista de categorias
categories.key Nome da Categoria
categories.doc_count Quantidade de itens por categoria
availability Lista de disponibilidades
availability.key Descrição da disponibilidade
availability.doc_count Quantidade de itens por disponibilidade
prices Lista de preços
prices.stats Informações gerais de preço
prices.stats.count Quantidade de preços na listagem
prices.stats.min Menor preço na listagem
prices.stats.max Maior preço na listagem
prices.stats.avg Preço Medio da listagem
prices.stats.sum Soma do preço da Listagem
prices.buckets Listagem de faixa de preço
prices.buckets[].from Valor inicial da faixa de preço
prices.buckets[].to Valor final da faixa de preço
properties Lista de características
properties.values Lista com os detalhes das características
properties.values.doc_count  Quantidade de itens por característica
properties.values.key  Nome da Característica
properties.values.entity  Tipo de Característica (Variação ou Propriedade)

Exemplo de retorno do Objeto 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
                                        )

                                )

                        )

                )

        )

)

 Aplicação no Layout:

Para aplicação no layout é necessário se atentar a alguns pontos, exemplo: Inicialmente é necessário que o filtro seja montado dentro de um formulário do método get, por exemplo:
 <form class="filter__form" method="get"></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') }}"> 
filtered_options

O filtered_options é o objeto responsável por retornar todos os filtros aplicados na busca.

Chaves principais Descrição
store id da loja
company Plataforma de Origem da Loja 
page Página atual da listagem de produtos
q Query String buscada através do formulario 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

 

É através desse objeto que deve ser verificado se um determinado filtro está aplicado, e então marca-do 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' }}> 
Frontend - Agencia 
Tem mais dúvidas? Envie uma solicitação

Comentários

    Artigos nessa seção

    Powered by Zendesk