Introducción
Construye navegación y filtrado facetado a partir de un único árbol de filtros de contenido localizado.
Más información sobre la interfaz de usuario del módulo https://doc.oneentry.cloud/docs/category/filters
🎯 ¿Qué hace este módulo?
El módulo Filters te permite recuperar un filtro de contenido por su marcador. Un filtro de contenido es un árbol de elementos curado y localizado; puede mezclar páginas, productos, atributos, descuentos, bonificaciones, métodos de pago y entradas personalizadas en una única estructura.
Piénsalo como un menú configurable de "cosas por las que filtrar": defines el árbol una vez en el panel de administración de OneEntry y lo incorporas a tu aplicación para renderizar navegación, filtros facetados o listas curadas. El SDK es de solo lectura: los filtros se recuperan por marcador.
🚀 Inicio Rápido
Inicializa el módulo desde defineOneEntry:
const { Filters } = defineOneEntry( "your-project-url", { "token": "your-app-token" });
Recupera un filtro por marcador y recorre su árbol de elementos:
// 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);
});
✨ Conceptos Clave
Marcador
Cada filtro tiene un marcador único (por ejemplo, main). Solicitas un filtro por marcador, y la respuesta está localizada al langCode solicitado.
Árbol de elementos
El array items es un árbol: los elementos regulares y personalizados viven en el mismo array, y cada nodo puede tener children anidados. Recorre el árbol para renderizar tu interfaz de usuario.
Cada nodo tiene un type que apunta a algo en tu proyecto:
- page - un enlace a una página (expone un
url) - product - una entrada de producto
- attribute - un atributo por el que filtrar
- discount / personal-discount - una entrada de descuento
- bonus - una entrada de bonificación
- payment-method - un método de pago
- admin - una entrada de administrador
- custom - una entrada personalizada que definiste
Cada nodo lleva información localizada (localizeInfos) y puede contener children anidados, por lo que puedes renderizar filtros y menús de múltiples niveles directamente desde la respuesta.
📋 Lo Que Necesitas Saber
- Pasa un
langCodepara obtener el filtro localizado a un idioma específico (por defecto esen_US). - Los nodos de página (
type: "page") exponen unurl; otros tipos de nodos utilizanmarkerpara referenciar su entidad. - El campo
valuelleva un valor de nodo unificado (por ejemplo, un valor de descuento o un título de atributo) cuando es aplicable, y esnullen caso contrario.
📊 Tabla de Referencia Rápida
| Método | Descripción |
|---|---|
| getFilterByMarker() | Obtén un filtro de contenido por su marcador |
❓ Preguntas Comunes (FAQ)
¿De dónde provienen los filtros de contenido?
Los filtros de contenido se configuran en el panel de administración de OneEntry. El SDK los recupera en modo de solo lectura por marcador.
¿Cómo renderizo un filtro de múltiples niveles?
Recorre recursivamente el array items - cada nodo puede contener un array children con la misma forma de nodo.
🎓 Mejores Prácticas
- Referencia los filtros por marcador, nunca por un título de visualización.
- Solicita el filtro en el idioma actual del usuario a través de
langCode. - Almacena en caché los filtros: cambian raramente.
🔗 Documentación Relacionada
- Módulo de Páginas - Páginas referenciadas por nodos de filtro
- Módulo de Productos - Productos referenciados por nodos de filtro
- Módulo de AttributesSets - Atributos referenciados por nodos de filtro