aggregations

Como utilizar o objeto aggregations

O objeto {{ aggregations }} contém informações sobre como uma listagem de produtos pode ser filtrada, como o menor preço de produto em uma tag ou uma lista de tags, separadas por tipo, dos produtos exibidos na lista.

O {{ aggregations }} pode ser usado para criar filtros de listagem de produto nos templates tag.liquid e search.liquid.

Veja na tabela a seguir os atributos de {{ aggregations }}:

Atributos

Função

Exemplo de aplicação

max_prize

Retorna o menor e o maior preço dentre os produtos da listagem atual.

Considere uma tag que possua três camisetas:

  • Camiseta A custa R$ 39,90
  • Camiseta B custa R$ 59,90
  • Camiseta C custa R$ 40,00

Para selecionar o maior preço:
Input:
Maior preço: {{ aggregations.max_prize }}

Output:
Maior preço: R$ 59,90

min_prize

Retorna o menor e o maior preço dentre os produtos da listagem atual.

Considere uma tag que possua três camisetas:

  • Camiseta A custa R$ 39,90
  • Camiseta B custa R$ 59,90
  • Camiseta C custa R$ 40,00

Para selecionar o menor preço:
Input:
Menor preço: {{ aggregations.min_prize }}

Output:
Menor preço: R$ 39,90

properties

Retorna um array com os atributos existentes nos produtos da lista atual.

Considere que o primeiro atributo de um produto é usado para variação de tamanhos e o segundo para cor, e que a lista atual possua:

  • uma camisa com tamanhos P e M e cor amarelo
  • uma outra camisa com tamanhos P e G e as cores amarelo e vermelho:
property1 = [ "P", "M", "G" ]
property2 = [ "amarelo", "vermelho" ]

{{ aggregations.properties }}

O {{ aggregations.properties }} combina valores iguais para ser possível criar filtros que selecionem todos os produtos com determinado tamanho:

<form method="get">
{% for tamanho in aggregations.properties.property1 %}
<input id="tamanho_{{ forloop.index }}" name="property1_values[]" value="{{ tamanho.value }}" />
<label for="tamanho_{{ forloop.index }}">{{ tamanho.value }}</label>
{% endfor %}
</form>

types

Retorna arrays de tags organizadas por tipos.

Considere que:

  • o produto "Camisa P e M" possui uma tags algodao e viscose com o tipo material
  • o produto "Camisa P e G" possui a tag viscose com o tipo material, a tag e verao com o tipo colecao:
``` material = [ "algodao", "viscose ] colecao = [ "verao" ] ```

{{ aggregations.types }}

Assim, é possível criar um filtro de materiais.

<form method="get">
{% for material in aggregations.types.material %}
<input id="material_{{ forloop.index }}" name="type_tags[material][]" value="{{ material.name }}" />
<label for="material_{{ forloop.index }}">{{ material.title }}</label>
{% endfor %}
</form>

📘

Esse objeto é utilizado na tag load_products.


Did this page help you?