|
|
| Estado |
Implementado — propuesto su reemplazo por RF-007 |
| Tipo |
Global propio |
| Ubicación |
src/MainNavigation/config.ts · slug main-navigation |
| Depende de |
RF-000 · destinos — RF-005 |
Requisito
Administrar desde el CMS la barra de navegación del storefront —los accesos que aparecen debajo
del encabezado—, permitiendo que cada ítem apunte a un filtro de productos, a una página del CMS
o a una URL libre; y habilitar el resaltado, la etiqueta promocional y la ocultación temporal de
cada ítem sin eliminarlo.
Solución adoptada
Modelar la navegación como global de lectura pública —existe una sola instancia y siempre está
disponible— con un arreglo ordenado de ítems. No confundir con los globales header y footer,
que pertenecen al sitio público heredado del template y no alimentan al storefront.
flowchart TD
G[(main-navigation · global)] --> I[items · arreglo ordenado]
I --> T{destinationType}
T -->|filter| F[filterType + filterValue<br/>resuelto contra Algolia por el storefront]
T -->|page| P[relación → pages]
T -->|custom| U[URL libre]
I --> V[isVisible · highlight · badgeText]
Modelo de datos
| Campo |
Tipo |
Regla |
label |
texto |
Requerido. Texto visible del ítem |
destinationType |
radio |
Requerido. filter por defecto, page o custom |
filterType |
select |
Solo con destino filter: categoría, etiqueta, colección o personalizado |
filterValue |
texto |
Valor buscado; admite varios separados por coma |
filterQuery |
textarea |
Consulta JSON de Algolia, solo para el filtro personalizado |
page |
relación → pages |
Solo con destino page |
customUrl |
texto |
Solo con destino custom |
badgeText |
texto |
Etiqueta opcional sobre el ítem |
highlight |
checkbox |
Resalta el ítem |
isVisible |
checkbox |
Verdadero por defecto |
categories |
texto |
[Obsoleto] — oculto, reemplazado por el sistema de filtros |
Reglas de negocio
- Exponer el global con lectura pública: es contrato con el storefront.
- Condicionar la visibilidad de los campos al tipo de destino elegido, de modo que el editor solo
complete lo pertinente.
- Ocultar un ítem con
isVisible en lugar de eliminarlo, para conservar su configuración.
- Delegar la resolución del filtro al storefront: el CMS almacena un descriptor y nunca consulta
el catálogo.
- Identificar cada fila en el panel con una etiqueta derivada de su contenido.
Criterios de aceptación
| # |
Criterio |
| 1 |
Recuperar el menú completo por API sin autenticación |
| 2 |
Crear un ítem por cada tipo de destino y ver solo los campos correspondientes en el panel |
| 3 |
Reordenar los ítems por arrastre y ver el nuevo orden en la respuesta |
| 4 |
Ocultar un ítem sin perder su configuración y volver a exhibirlo |
Limitaciones conocidas
- Usar para el destino personalizado el valor
custom, mientras otras definiciones equivalentes
usan index — ver RF-005.
- Convivir con los globales
header y footer del template, que no cumplen función en el
storefront y pueden confundir al editor.