LogoLogo
Documentação de Temas
Documentação de Temas
  • 🚀COMECE POR AQUI
    • Temas Tray
    • Entenda o Tema
    • Meu primeiro tema
  • 💻Tray CLI
    • Instalação
    • Comandos
      • Erros Retornados
    • API para integrações Tray CLI
  • 🧱Construindo seu Template
    • Twig
      • O que é o Twig
      • Como ele é utilizado nos temas
      • Possibilidades de uso
      • Documentação para consulta
    • Visão Geral
      • Estrutura do Tema
      • Arquivo de configuração
      • Extensões de arquivos
      • Codificação de Arquivos
      • Avisos e Recomendações
      • Flags
    • Editor do Tema
      • Antigo
        • Como criar um Editor
        • Settings.html
      • Novo
        • Estrutura
          • Seções
          • Ícones
          • Componentes
            • Text
            • Textarea
            • Email
            • Number
            • Color
            • Checkbox
            • Radio
            • Select
            • Toggle
            • Upload
            • Tab
            • Alert
          • Exemplo de utilização
        • Thumb preview do tema
        • Imagens padrões
        • Como desabilitar e reabilitar?
      • Settings.json
    • Desenvolver
      • Atributo Google Analytics 4
      • Como adicionar o botão comprar na listagem dos produtos
      • Como criar um carrossel de produtos
      • Como inserir um vídeo na home da loja
      • Como manipular as variações de produtos
      • Como saber se o usuário está logado
      • Descontinuação do carrinho.php
      • Exibindo as formas de pagamento de um produto
      • Informação de preço com tempo de cache menor
      • Order Bump - Produtos Relacionados
      • Páginas Institucionais
      • Página de recuperação de senha
      • Página Live Shop
      • Recursos extras
      • Personalização das paginas de carrinho e checkout
    • Core Web Vitals
      • Desempenho
        • Lazyload
        • Primeira dobra
        • Fontes
        • Definição largura e altura
        • Sprite formas de pagamentos
      • Boas Práticas
        • Origem cruzada
      • Acessibilidade
        • Atributo Lang
        • Nome discernível
        • Atributo ALT
        • Contraste
        • IDs únicos
        • ARIA Labelled By
        • Tabindex
    • Otimizar e Medir
      • Carregamento na home
      • Layout AMP
      • Utilizando PWA na loja
    • Referências
      • Objetos
        • banner
        • breadcrumb
        • category
        • categories
        • filters
        • filter_options
        • links
        • pages
        • paginate
        • paymentMethods
        • product
        • productTabs
        • products
        • productFeatured
        • seals
        • search
        • settings
        • store
        • tags
        • tray
        • themePath
        • utils
      • Funções
        • asset()
        • Brands()
        • Categories()
        • Image()
        • Products()
        • Translation()
      • Data Attributes
        • Banners
        • Cart
        • Compare
        • Filter
        • Logged User
        • Search (Suggestion)
      • Componentes
        • Adicionar ao carrinho sem sair da página
        • Banner Desconto Progressivo
        • Banner extra com contagem de cliques
        • Banner Régua
        • Banner Rotativo
        • Botão "Voltar para o topo"
        • Botões Quantidade
        • Carrinho Lateral
        • Exibir a segunda imagem ao passar o mouse
        • Filtro Inteligente
        • Link flutuante para Whatsapp
        • Menu de Categorias
        • Menu de Categorias em 3 Níveis
        • Menu de Categorias com ver mais categorias
        • Menu de Categorias com Imagens
        • Menu de Categorias com Imagens - Hover
        • Menu de Categorias com produto
        • Menu de Marcas
        • Modal de Ofertas
        • Notícias com imagem na home
        • Novo Filtro Inteligente
        • Paginação
        • Porcentagem Desconto
        • Popup de Newsletter
        • Star Ranking
        • Selos da Loja
        • Selos do produto
        • Showcase ( List / Grid )
        • Topo Flutuante
        • Tray Login
        • Whatsapp flutuante
    • APIs Disponíveis
      • Busca
      • Carrinho de Compra
      • Categorias
      • Produtos
      • Variações de Produto
  • ✔️Homologação
    • Loja de Temas Tray
    • Requerimentos
      • Exclusividade
      • Identidade única
      • Estrutura necessária
      • Funcionalidades
      • Nova Busca e Filtro inteligente
      • Selos de produtos
      • Google Lighthouse
      • Consistência e funcionalidade
      • Compatibilidade com navegadores
      • Assets
      • Otimização para buscadores (SEO)
      • Acessibilidade
      • Configurações
      • Sistema de cores
      • Imagens responsivas
      • Nomes dos temas
      • Versionamento e notas de lançamento
      • Lojas demonstrativas
      • Documentação e suporte
    • Checklist obrigatório
    • Templates
    • Homologando o tema
    • Atualizando o tema
    • FAQ
  • 📣NOVIDADES
    • Tray CLI
    • Checklist
    • Tema Draft
    • Novo Editor
Powered by GitBook
On this page

Was this helpful?

  1. Construindo seu Template
  2. Referências
  3. Componentes

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>   
.nav{
    position: relative;
}

.nav .list{
    position: relative; 
    display: flex;
    justify-content: space-between;   
}

.nav .list > li > a{
    position: relative;
    text-align: center;
    cursor: pointer;
}

.nav .product-sub{
    position: absolute;
    top: calc(100% - 40px);
    min-width: 275px;
    width: auto;
    padding: 2.06rem 2.5rem;
    opacity: 0;
    visibility: hidden;
    background-color: #fff;
    box-shadow: 0 4px 8px rgb(0 0 0 / 6%); 
    transform: translateY(40px);
    overflow-y: scroll;
    transition: ease-out 0.2s;      
    display: flex;
    justify-content: space-between; 
}

.nav .first-level:hover .product-sub{
    opacity: 1;
    visibility: visible;
}

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.

PreviousMenu de Categorias com Imagens - HoverNextMenu de Marcas

Last updated 1 year ago

Was this helpful?

🧱