Introdução
Construa navegação e filtragem facetada a partir de uma única árvore de filtros de conteúdo localizada.
Mais informações sobre a interface do usuário do módulo https://doc.oneentry.cloud/docs/category/filters
🎯 O que este módulo faz?
O módulo Filters permite que você recupere um filtro de conteúdo pelo seu marcador. Um filtro de conteúdo é uma árvore de itens curada e localizada - pode misturar páginas, produtos, atributos, descontos, bônus, métodos de pagamento e entradas personalizadas em uma única estrutura.
Pense nisso como um menu configurável de "coisas para filtrar" - você define a árvore uma vez no painel de administração do OneEntry e a puxa para seu aplicativo para renderizar navegação, filtros facetados ou listas curadas. O SDK é somente leitura: os filtros são recuperados pelo marcador.
🚀 Início Rápido
Inicialize o módulo a partir de defineOneEntry:
const { Filters } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
Recupere um filtro pelo marcador e percorra sua árvore de itens:
// Fetch the "main" content filter, localized to English.
const filter = await Filters.getFilterByMarker("main", "en_US");
console.log(filter.localizeInfos.title);
filter.items?.forEach((node) => {
console.log(node.type, node.marker ?? node.url, node.children?.length ?? 0);
});
✨ Conceitos Chave
Marcador
Cada filtro tem um marcador único (por exemplo, main). Você solicita um filtro pelo marcador, e a resposta é localizada para o langCode solicitado.
Árvore de Itens
O array items é uma árvore: itens regulares e personalizados vivem no mesmo array, e cada nó pode ter children aninhados. Percorra a árvore para renderizar sua interface.
Cada nó tem um type que aponta para algo em seu projeto:
- page - um link para uma página (exibe um
url) - product - uma entrada de produto
- attribute - um atributo para filtrar
- discount / personal-discount - uma entrada de desconto
- bonus - uma entrada de bônus
- payment-method - um método de pagamento
- admin - uma entrada de administrador
- custom - uma entrada personalizada que você definiu
Cada nó carrega informações localizadas (localizeInfos) e pode conter children aninhados, permitindo que você renderize filtros e menus de múltiplos níveis diretamente da resposta.
📋 O Que Você Precisa Saber
-
Passe um
langCodepara obter o filtro localizado em um idioma específico (o padrão éen_US). -
Nós de página (
type: "page") expõem umurl; outros tipos de nó usammarkerpara referenciar sua entidade. -
O campo
valuecarrega um valor unificado do nó e énullquando o nó não possui nenhum (uma página, por exemplo). É tipado comostring | string[] | null: um atributo de intervalo retorna o array de valores que estão dentro do intervalo, enquanto os outros tipos de nó retornam uma única string - um título resolvido para um atributo de caixa de seleção legado, o valor do desconto paradiscount/personal-discount/bonus, o id do objeto paraproduct/admin/payment-method.const value = node.value;const values = Array.isArray(value) ? value : value == null ? [] : [value];
📊 Tabela de Referência Rápida
| Método | Descrição |
|---|---|
| getFilterByMarker() | Obter um filtro de conteúdo pelo seu marcador |
❓ Perguntas Comuns (FAQ)
De onde vêm os filtros de conteúdo?
Os filtros de conteúdo são configurados no painel de administração do OneEntry. O SDK os recupera em modo somente leitura pelo marcador.
Como renderizo um filtro de múltiplos níveis?
Percorra recursivamente o array items - cada nó pode conter um array children com a mesma forma de nó.
🎓 Melhores Práticas
- Referencie filtros pelo marcador, nunca por um título de exibição.
- Solicite o filtro no idioma atual do usuário via
langCode. - Armazene em cache os filtros - eles mudam raramente.
🔗 Documentação Relacionada
- Módulo de Páginas - Páginas referenciadas por nós de filtro
- Módulo de Produtos - Produtos referenciados por nós de filtro
- Módulo de AttributesSets - Atributos referenciados por nós de filtro