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