Documentación del Schema GraphQL del Headless CMS Directus
Introducción
Este documento describe las colecciones y tipos disponibles en nuestro Headless CMS basado en Directus con extensión GraphQL. El schema incluye todas las entidades necesarias para gestionar contenido de e-commerce, landing pages, filtros de productos, y más.
Estructura Principal
Colecciones Principales
🏠 Contenido de Página de Inicio
home_page
Configuración principal de la página de inicio:
- Hero campaign (carrusel o banner)
- Banners internos (superior, medio, inferior)
- Quotes y testimonios
- Recomendaciones de productos más vendidos
home_hero_carousel
Carrusel principal de la página de inicio:
- Configuración de autoplay, loop infinito
- Slides personalizables con imágenes y contenido
- Estilos CSS personalizados para desktop y mobile
home_hero_banner (deprecated)
Banner hero alternativo para campañas específicas:
- Imágenes para desktop y mobile
- Configuración de colores y textos
- Términos y condiciones personalizables
🏷️ Categorías y Navegación
category
Sistema completo de categorías de productos:
- Configuración de búsqueda (Algolia/Typesense)
- Filtros y grupos de filtros
- Navegación y menús subcategorías
- Metadata SEO y descripciones
navigation_menu
Menús de navegación del sitio:
- Estructura jerárquica con padres/hijos
- Iconos, colores y estilos personalizados
- Tipos de renderizado (dropdown, cards, etc.)
- Tracking para SEO
🎯 Productos y Promociones
products
Gestión de productos y SKUs:
- Relación con promociones
- Ordenamiento personalizado
- Estado de publicación
product_promotions
Promociones específicas por producto:
- Compra X, lleva Y
- Textos y estilos personalizados para botones
- SKUs de regalo
tag_promotions
Etiquetas promocionales para productos:
- Countdowns flash
- Prioridades y posiciones
- Colores personalizados
🖼️ Banners y Elementos Visuales
banner
Banners reutilizables:
- Versiones desktop y mobile
- Estado activo/inactivo
inner_banner
Banners para posiciones internas:
- Background colors personalizables
- Links de redirección
top_campaign_banner
Banner superior de campaña:
- Countdowns configurables
- Textos iniciales y finales personalizados
- Colores de fondo y texto
🔍 Búsqueda y Filtros
search_view
Configuración de vistas de búsqueda:
- Query por defecto
- Filtros y grupos de filtros
- Resultados por página
filter
Filtros individuales:
- Nombres de campos en Algolia/Typesense
- Tipos de refinamiento
- Nombres para mostrar
filter_group
Grupos de filtros:
- Agrupación lógica de filtros
- Imágenes representativas
- Ordenamiento
📄 Landing Pages
landing_page
Sistema completo de landing pages:
- Slug y URLs canónicas
- Contenido modular (bloques)
- Metadata SEO
landing_page_content
Sistema de bloques modulares para LPs:
- Tipos de bloques disponibles:
bannerbenefits_blockcategory_cardschannels_blockhome_hero_carouselhome_hero_carousel_sliceinner_bannerrecommendervertical_spacer
🚚 Servicios Adicionales
servicio_adicional
Servicios adicionales de e-commerce:
- Costos y tipos de costo
- Días extra de procesamiento
- Integración con Highjump
- Descripciones en formato rich text
⚙️ Configuración Global
category_view
Configuración de vistas de categoría:
- Hits por página por defecto
seo_homepage_description
SEO específico para homepage:
- Título y descripción meta
Funcionalidades Técnicas
Sistema de Archivos
- Integración con
directus_filespara gestión de assets - Soporte para imágenes responsive (desktop/mobile)
- Metadatos de imágenes y optimizaciones
Ejemplos de Consultas Comunes
Obtener página de inicio con contenido completo
query GetHomePage {
home_page {
home_hero_campaign {
carousel_slices {
item {
... on home_hero_carousel_slice {
name
background_image {
filename_download
}
button_text
link
}
}
}
}
testing {
item {
... on banner {
title
image_desktop {
filename_download
}
}
... on products {
sku
product_promotions {
title_block
}
}
}
}
}
}
Obtener categoría con filtros
query GetCategory($slug: String) {
category(filter: {slug: {_eq: $slug}}) {
category_name
description
filters {
item {
... on filter {
display_name
refinement_type
}
}
}
filters_groups {
item {
... on filter_group {
display_name
filters {
item {
... on filter {
display_name
}
}
}
}
}
}
}
}
Consideraciones de Implementación
Performance
- Utilizar paginación en consultas con muchos resultados
- Usar filtros específicos para reducir datos transferidos
Caching
- Implementar caching a nivel de aplicación para consultas frecuentes
Integraciones Externas
DatoCMS (deprecated)
- Campos
datocms_idydatocmspara sincronización - Migración de contenido desde DatoCMS
Magento (deprecated)
- Campos
magento_urlpara integración - SKUs de productos sincronizados
Algolia/Typesense
- Configuración de campos para búsqueda
- Queries personalizadas por categoría