Menu de Categorias com produto
Snippet para criar um menu de categorias, exibindo um produto junto com os demais níveis de categorias.
{#
# Listagem de produto junto com 3 níveis de categorias
# elements/snippets/menu_product.html
#}
<nav class="nav">
<ul class="list">
{% for category in categories %}
<li class="first-level">
<a href="{{ category.link }}" title="{{ category.name }}">
{{ category.name }}
</a>
{% if category.children %}
<div class="sub-line-category product-sub">
<ul class="sub-list second-level">
{% for level2 in category.children %}
<li>
<a href="{{ level2.link }}" title="{{ level2.name }}">
{{ level2.name }}
</a>
{% if level2.children %}
<ul class="sub-list third-level">
{% for level3 in level2.children %}
<li>
<a href="{{ level3.link }}" title="{{ level3.name }}">
{{ level3.name }}
</a>
</li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
{% element 'snippets/product_category' {"id": category.id } %}
</div>
{% endif %}
</li>
{% endfor %}
</ul>
</nav>
Como usar
Copie o código acima e crie um arquivo separado, ex: elements/snippets/menu_product.html
Faça a chamada desse arquivo onde desejar:
{% element('snippets/menu_product') %}
Criar o arquivo elements/snippets/product_category.html
conforme o código abaixo que faz as validações de qual produto exibir no menu.
No exemplo ira retornar um produto que esteja disponível. Caso deseje, alterar o filtro para retornar produto em destaque, lançamento, ...
{#
# Validações do produto
# elements/snippets/product_category.html
#}
{% set productCategory = Products({
'filter': ['available'],
'limit': 1,
'categories': [id]
}) %}
{% if productCategory %}
<div class="col-product">
{% for item in productCategory %}
{% element 'snippets/product' {
"product": item
} %}
{% endfor %}
</div>
{% endif %}
O arquivo snippets/product.html
deve ser o arquivo que monta os produtos da listagem. Caso o utilizado seja diferente, alterar essa chamada.
Last updated
Was this helpful?