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,00Para 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,00Para 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.
Updated about 1 year ago