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 }}:

AtributosFunçãoExemplo de aplicação
max_prizeRetorna 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_prizeRetorna 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
propertiesRetorna 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>
typesRetorna 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.