1. Personalização
FácilZap API
  • FácilZap API
    • Introdução
    • Ambientes
    • Tipos de Usuários
    • Autenticação
    • Limites
    • Endpoints
    • Webhooks
    • Referência da API
    • Histórico de Alterações
  • Personalização
    • Introdução
    • Dados, helpers e sintaxe do template
    • HTML, CSS e limites
    • Componentes prontos
    • Cabeçalho e rodapé
    • Menus (desktop, submenu e mobile)
    • Página do Produto
  1. Personalização

Página do Produto

Componentes prontos (<fz-*>)#

Cada bloco pode aparecer no máximo 1 vez, em qualquer ordem e posição:
BlocoO que exibe
<fz-produto-galeria>Fotos do produto (carrossel com zoom)
<fz-produto-identificacao>Nome, categoria, SKU e avaliações do cabeçalho
<fz-produto-precos>Preço, descontos e simulador de parcelas
<fz-produto-selecao>Variações, grade, kit e quantidade
<fz-produto-frete>Simulador de frete
<fz-produto-acoes-compra>Botão de comprar e ações (carrinho, WhatsApp, compartilhar)
<fz-produto-descricao>Descrição, guia de medidas e widgets
<fz-produto-relacionados>Vitrine oficial de produtos relacionados
<fz-produto-cupons>Cupons divulgáveis da loja
<fz-produto-comentarios>Perguntas e respostas (respeita a config da loja)
<fz-produto-avaliacoes>Avaliações verificadas
Três blocos são obrigatórios e únicos: precos, selecao e acoes-compra (exatamente 1× cada, fora de @if/@foreach). Os demais são opcionais (0..1) — ausente significa seção oculta.

Props visuais por bloco#

Atributos no bloco viram props do componente (="false" funciona como falso). Valores fora do permitido caem no padrão:
BlocoPropValoresPadrãoEfeito
galeriaaltura-fixatrue/falsefalseAltura fixa do carrossel em vez de automática
galeriaminiaturas-horizontaistrue/falsefalseMiniaturas sempre horizontais (padrão: vertical no desktop)
precosalinhamentocentro/esquerda/direitaesquerdaAlinhamento do bloco de preço
precosvariacaocompleto/compactocompletocompacto resume preço antigo/“a partir de”/badge
precosmodelo-melhor-descontopadrao/compactopadraoDensidade do bloco de melhor desconto
precosexibir-simulador-melhor-descontotrue/falsetrueMostra/oculta o bloco de melhor desconto
precosabrir-modaltrue/falsetrueClique no simulador abre o modal de parcelas
selecaoexibir-precotrue/falsetrueMostra/oculta preço nas variações
selecaoexibir-skutrue/falsetrueMostra/oculta tag de SKU
selecaoexibir-divisoriatrue/falsefalseDivisória “Escolha as Variações”
selecaoexibir-descontostrue/falsetrueÍcones de desconto
selecaomodelo-condensadotrue/falsefalseVersão compacta do seletor
selecaovariacoes-isoladastrue/falsefalseCartão com sombra/borda (true) ou integrado (false)
selecaorolar-aba-ativatrue/falsetrueRola até a aba ativa (grade com abas)
freteexibir-titulotrue/falsetrueDivisória “Simular Frete”
descricaoexibir-titulotrue/falsetrueTítulos de descrição/guia/widgets
relacionadosexibir-titulotrue/falsetrueTítulo da vitrine
comentarioslayoutmodelo1/modelo2modelo1modelo2 = busca + acordeão
comentariosexibir-titulotrue/falsetrueTítulo (só no modelo1)
avaliacoeslayoutmodelo1/modelo2modelo1modelo1 = cards; modelo2 = resumo + lista compacta
avaliacoesexibir-titulotrue/falsetrueTítulo (só no modelo1)
identificacao, acoes-compra e cupons não têm props visuais. Exemplo:
<fz-produto-precos alinhamento="esquerda" variacao="compacto"></fz-produto-precos>
<fz-produto-selecao exibir-divisoria="false" modelo-condensado="true"></fz-produto-selecao>
<fz-produto-avaliacoes layout="modelo2"></fz-produto-avaliacoes>

Dados — product.*#

VariávelRetorno
{{ product.name }}Nome do produto
{{ product.referencia }}Referência do cadastro (pode ser vazia)
{{ product.sku }}SKU do cadastro
{{ product.destaque }}Flag de destaque (0/1 — não é rótulo; use com @if)
{{ product.categorias }}Categorias (leitura)
{{ product.links }}Link da página (para href)
{{ product.imagens }}Imagens (para src)
{{ product.avaliacao }}Total de avaliações
{{ product.descricao }}Descrição textual
{{ product.related }}Coleção de relacionados (só no @foreach)
Preço, estoque, variações e regras comerciais não são dados manipuláveis: continuam dentro dos blocos oficiais.

Itens do loop — item.*#

Dentro de @foreach(product.related as item):
VariávelRetorno
{{ item.name }}Nome do relacionado
{{ item.url }}Link (para href)
{{ item.image }} / {{ item.image_thumb }}Imagens (para src)
{{ item.id }} / {{ item.destaque }}Identificador e flag de destaque

Diretivas#

@if(product.destaque)
    <p class="produto-destaque">Destaque</p>
@endif
@if(product.campo) — mostra o trecho quando o campo tem valor (0 e vazio contam como falso). Serve para badge fixa condicional.
@if(feature('...')) — mesmos predicados das demais áreas (ex.: reviews).
@foreach(product.related as item limit 4) — única coleção; sem loops aninhados.

Exemplo starter resumido#

<div class="produto-layout">
    <div class="produto-topo">
        <div class="produto-col-midia">
            <fz-produto-galeria></fz-produto-galeria>
        </div>
        <div class="produto-col-info">
            @if(product.destaque)
            <p class="produto-destaque">Destaque</p>
            @endif
            <fz-produto-identificacao></fz-produto-identificacao>
            <fz-produto-precos></fz-produto-precos>
            <fz-produto-selecao></fz-produto-selecao>
            <fz-produto-frete></fz-produto-frete>
            <fz-produto-cupons></fz-produto-cupons>
            <fz-produto-acoes-compra></fz-produto-acoes-compra>
            <p class="produto-meta">SKU {{ product.sku }}</p>
        </div>
    </div>
    <fz-produto-descricao></fz-produto-descricao>
    <fz-produto-relacionados></fz-produto-relacionados>
    <fz-produto-comentarios></fz-produto-comentarios>
    <fz-produto-avaliacoes></fz-produto-avaliacoes>
</div>

Padrões CSS prontos#

Todo CSS é escopado automaticamente (sem html, body ou *):

Erros comuns#

ErroCausaCorreção
BLOCO_DESCONHECIDOTag fora dos 11 blocos (ex.: fz-produto-conteudo-adicional, removido)Trocar por blocos da tabela acima
CARDINALIDADE_CRITICABloco crítico ausente/duplicado, ou bloco repetidoprecos/selecao/acoes-compra exatamente 1×; demais no máximo 1×
CRITICO_CONDICIONALBloco crítico dentro de @if/@foreachTirar o bloco da condição
CAMINHO_NAO_REGISTRADO{{ product.* }} inexistente (ex.: product.price) ou fora do modo produtoUsar a tabela de dados acima
Modificado em 2026-09-17 17:59:50
Página anterior
Menus (desktop, submenu e mobile)
Built with