+ Campos: Filtros do catálogo para personalização da página do produto

Entendendo os campos do catálogo (➕ Campos)

No Interago, a extensão Catálogo (atalho #extensionEditor.panel?5) permite criar informações extras para cada produto. A seção ➕ Campos (#extensionEditor.panel?5?filter) é onde você define quais campos existem no site. Por exemplo “Garantia”, “Vídeo de uso” ou “Ficha técnica”. Depois, ao editar um produto, você só preenche esses campos.

Onde encontrar

  • Abra o painel do Catálogo.
  • No menu superior, clique em ➕ Campos (no código do painel essa ação é filter).
  • Informe o nome do novo campo, escolha o tipo e use Criar novo campo.
  • Na lista Campos cadastrados, cada linha mostra o nome, o tipo e a referência técnica getFilterData(ID). O ID identifica aquele campo no layout (isso é usado na Parte 2).

Tipos de campo, em linguagem simples

Simples

O que é: um par nome + valor, como uma etiqueta na ficha do produto. Serve muito bem para textos curtos e organizados (material, voltagem, prazo de garantia em uma linha, etc.).

Como você usa no dia a dia: ao editar o produto, esses campos aparecem na área “Campos para filtros personalizados”, com dois campos por definição: um para o nome (rótulo) e outro para o valor. Ao focar no campo, o sistema pode sugerir valores já usados em outros produtos, ajudando a manter tudo padronizado. Depois de alterar, use o botão para aplicar as mudanças.

Em uma frase: Simples é o tipo mais direto. Pense em “rótulo e conteúdo” sem formatação especial.

Editor

O que é: um bloco de texto com formatação rica: parágrafos, negrito, listas, links, etc. Como um mini editor de página.

Como você usa: na edição do produto, campos desse tipo ficam na seção de edição avançada (cartões com ícone de texto). Ao clicar, abre-se um editor em que você monta o conteúdo visualmente.

Em uma frase: use Editor quando a descrição precisa de estrutura e estilo, não só uma linha de texto.

Galeria

O que é: uma sequência de mídias ligada àquele campo. Em geral imagens e também pode incluir vídeos (por exemplo do YouTube), conforme o que o layout do site estiver preparado para exibir.

Como você usa: na edição do produto, esse tipo aparece junto dos outros avançados, com ícone de imagem. Você adiciona ou ordena as mídias daquele campo específico.

Em uma frase: Galeria é para quando o conteúdo é visual e pode ter vários arquivos ou vídeos, não um único texto.

HTML

O que é: conteúdo em HTML, ou seja, marcação de página com tags (<div>, <section>, classes, etc.). Oferece liberdade total na estrutura, mas exige mais cuidado: um erro de sintaxe pode afetar a página.

Como você usa: também na área de edição avançada do produto, com ícone de código. Abre-se um editor adequado para HTML.

Em uma frase: reserve HTML para blocos muito específicos ou integrações que o Editor não cubra  ou quando quem mantém o site domina HTML.

Resumo prático

  • Simples: nome/valor, rápido, padronizável.
  • Editor: texto longo com formatação.
  • Galeria: várias imagens/vídeos.
  • HTML: controle fino do markup (uso consciente).

Importante: criar o campo em ➕ Campos só define o “tipo de informação”. Para o visitante ver isso na página do produto, o layout do catálogo precisa exibir esse dado, isso é tema da Parte 2.


Editando o layout manualmente (avançado)


No template/script, você lê tudo por productFiltersByIdJson:

<script> const filtersById = JSON.parse('{{productFiltersByIdJson}}');</script>

1) Filtro simples (tipo 0)

Retorno esperado em filtersById['1430']: string JSON com:

  • filterKey
  • filterValue
  • filterSearchKey
  • filterSearchValue

<script> const rawSimple = filtersById['1430']; // ex: '{"filterKey":"Cor","filterValue":"Azul",...}' let simple = null; try { simple = JSON.parse(rawSimple); } catch(e) {} if (simple) { console.log(simple.filterKey, simple.filterValue, simple.filterSearchKey, simple.filterSearchValue); }</script>

2) Filtro rich text (tipo 1)

Retorno esperado em filtersById['1431']: string HTML (ou '')

<div id="richTextFilterBox"></div><script> const richHtml = filtersById['1431'] || ''; document.getElementById('richTextFilterBox').innerHTML = richHtml;</script>

3) Filtro de mídias (tipo 2)

Retorno esperado em filtersById['1432']: array de strings JSON, cada item com:

  • productmediasUrl
  • productmediasType (0 imagem, 1 vídeo)

<script> const mediaRows = Array.isArray(filtersById['1432']) ? filtersById['1432'] : []; const mediaList = mediaRows .map((row) => { try { return JSON.parse(row); } catch(e) { return null; } }) .filter(Boolean); mediaList.forEach((m) => { console.log(m.productmediasUrl, m.productmediasType); });</script>

4) Filtro HTML (tipo 3)

Retorno esperado em filtersById['1433']: string HTML (ou '')

<div id="htmlFilterBox"></div><script> const htmlFilter = filtersById['1433'] || ''; document.getElementById('htmlFilterBox').innerHTML = htmlFilter;</script>