Saltar al contenido principal

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 langCode para obtener el filtro localizado a un idioma específico (por defecto es en_US).
  • Los nodos de página (type: "page") exponen un url; otros tipos de nodos utilizan marker para referenciar su entidad.
  • El campo value lleva un valor de nodo unificado (por ejemplo, un valor de descuento o un título de atributo) cuando es aplicable, y es null en caso contrario.

📊 Tabla de Referencia Rápida

MétodoDescripció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