Decoración de Temporada Programada — Documentación
Instalar y configurar Decoración de Temporada Programada: crear una campaña, programar fechas, activar efectos, banner y paleta, previsualizar de forma segura, gestionar la recurrencia anual y el multitienda.
Decoración de Temporada Programada (el módulo dfthemescheduler) viste automáticamente tu tienda PrestaShop para cada momento comercial clave. Creas campañas con fecha — Navidad, Black Friday, rebajas, San Valentín — que combinan barra superior, banner, paleta de colores, efectos visuales y bloque de portada. Cada campaña se activa y se retira sola en las fechas programadas, sin ninguna tarea cron.
Presentación
El módulo se basa en una idea sencilla: una campaña es un conjunto de elementos visuales asociado a un rango de fechas. Cuando la fecha actual cae dentro de ese rango, la campaña pasa a estar «activa» y su decoración se aplica al front-office. Fuera de ese rango, la tienda recupera su aspecto normal sin dejar rastro.
Se muestra una sola campaña a la vez. Si varias campañas se solapan, gana la que tiene la prioridad más alta. Así puedes combinar una campaña navideña larga con un pico de Black Friday de mayor prioridad en medio.
Cada campaña puede combinar, a elección, los siguientes elementos: una barra superior con mensaje y cuenta atrás, una imagen de banner por idioma, una paleta de siete colores, un efecto de ambiente (nieve, confeti, corazones, hojas, estrellas, fuegos artificiales), un bloque HTML en la portada y CSS personalizado. Todos los elementos son opcionales.
Instalación
Instala el módulo como cualquier módulo PrestaShop:
- En el back office, ve a Módulos > Gestor de módulos.
- Haz clic en Subir un módulo y selecciona el archivo
dfthemescheduler.zip. - Una vez instalado, haz clic en Configurar para abrir el planificador de campañas.
El módulo crea sus tablas, registra sus hooks de visualización y añade una pestaña de administración accesible mediante el botón Configurar. No requiere ninguna dependencia externa: ni Composer, ni jQuery, ni servicios de terceros.
Si ya tienes la versión 1.0.0, simplemente sustituye la carpeta del módulo por la 1.1.0: el script de actualización añade automáticamente la columna de posición del banner y registra los nuevos hooks. No es necesario reinstalar.
Crear una campaña
Desde la pantalla de configuración, haz clic en Añadir una campaña. El formulario está organizado de lo más importante a lo más opcional.
Información general
- Nombre de la campaña: etiqueta interna, por ejemplo «Navidad 2026» o «Black Friday». Nunca se muestra a los visitantes.
- Activado: interruptor maestro. Una campaña desactivada nunca se muestra, ni siquiera dentro de su rango de fechas.
- Prioridad: número entero. En caso de solapamiento, gana la prioridad más alta. Déjalo en 0 si solo tienes una campaña a la vez.
Fechas
Los campos Fecha de inicio y Fecha de fin usan un selector de fecha y hora nativo, con precisión de segundos. Las fechas se interpretan en la hora del servidor de tu tienda.
Si tu navegador muestra un campo de texto en lugar del selector, el formato esperado es AAAA-MM-DD HH:MM:SS, por ejemplo 2026-11-27 00:00:00.
Recurrencia anual
Marca Repetir cada año para que una campaña vuelva automáticamente en las mismas fechas, año tras año. Solo se comparan el mes, el día y la hora: el año se ignora.
El módulo gestiona de forma nativa las campañas a caballo del Año Nuevo. Una campaña del 20 de diciembre al 6 de enero funciona perfectamente y se reactiva cada invierno, sin tener que duplicarla.
Para una campaña recurrente, la validación «fecha de fin posterior a fecha de inicio» se desactiva intencionadamente, ya que el fin puede caer en el año natural siguiente.
Barra superior
El campo Mensaje de la barra (multiidioma) muestra una barra en la parte superior de todas las páginas. Acepta HTML básico: enlaces, negrita. Déjalo vacío para ocultar la barra.
Activa Mostrar cuenta atrás para añadir un contador en tiempo real hasta la fecha de fin de la campaña, con formato «12d 04:31:07». Para una campaña recurrente, la cuenta atrás apunta automáticamente a la próxima aparición de la fecha de fin.
Los colores de la barra (fondo y texto) se ajustan en la sección Paleta.
Imagen de banner
Puedes subir un banner distinto por idioma, con un enlace clicable y un texto alternativo. Los formatos aceptados son jpg, png, gif y webp. Se recomienda un ancho generoso (por ejemplo 1920 × 300).
El campo Posición del banner determina la zona del tema donde aparece la imagen:
- Franja superior — displayBanner: posición por defecto, al principio de la página.
- Debajo de la cabecera, ancho completo — displayNavFullWidth: justo bajo el menú principal.
- Encima del contenido — displayWrapperTop: por encima del cuerpo de la página.
Si tu banner no aparece, lo más probable es que tu tema no implemente el hook elegido. Simplemente prueba otra posición de la lista.
Paleta de colores
Una campaña expone siete colores: primario, secundario, enlaces, fondo de la cabecera, fondo del pie, fondo de la barra y texto de la barra.
Estos siete valores están siempre expuestos como variables CSS (--dfts-primary, --dfts-secondary, etc.) que tu tema o tu CSS personalizado pueden reutilizar.
Activa Aplicar la paleta al tema para que el módulo aplique él mismo estos colores a botones, enlaces, cabecera y pie. Deja la opción desactivada si prefieres controlar la decoración únicamente mediante las variables CSS y tu propia hoja de estilos.
Efectos visuales
El campo Efecto visual ofrece seis animaciones en JavaScript puro, dibujadas sobre un canvas a pantalla completa: nieve, confeti, corazones, hojas de otoño, estrellas parpadeantes y fuegos artificiales. Elige Ninguno para desactivar el efecto.
La Intensidad (baja, media, alta) ajusta la densidad de partículas. El número de partículas está limitado para preservar el rendimiento.
Los efectos se cargan únicamente cuando hay una campaña activa. Se desactivan automáticamente para los visitantes que han activado la preferencia de «movimiento reducido» de su sistema, y se pausan cuando la pestaña no está visible.
Bloque de portada y CSS personalizado
El campo Bloque de portada (multiidioma, editor visual) muestra un contenido HTML libre en la página de inicio durante toda la campaña — ideal para una oferta, un banner promocional enriquecido o un mensaje de temporada.
El campo CSS personalizado permite ir más lejos. El CSS se sanea antes de inyectarse (los intentos de salir del contenedor de estilo se neutralizan) y solo se carga cuando la campaña está activa. Puedes usar en él las variables --dfts-*.
Vista previa segura
Cada campaña dispone de un enlace de vista previa protegido por un token único de 32 caracteres. Desde la lista de campañas, haz clic en el botón Preview: la tienda se abre con la decoración de la campaña aplicada, exactamente como la verán tus visitantes el día del lanzamiento.
La vista previa persiste durante la navegación: puedes recorrer todas las páginas de la tienda. Una barra fija «Vista previa: {nombre} — Salir» aparece abajo a la izquierda; haz clic en Salir para volver a la visualización normal.
La vista previa es totalmente invisible para tus visitantes: solo se activa con el enlace secreto que contiene el token correcto. Así puedes comprobar tu decoración navideña en pleno agosto, o compartir el enlace con un cliente para su validación, sin cambiar nada para el público.
Planificador anual
En la parte superior de la lista de campañas, el back office muestra un panel resumen: número de campañas, campañas activas, campaña actualmente «activa» y próxima campaña por comenzar con el número de días restantes.
Debajo, un cronograma de doce meses representa cada campaña con una barra de color posicionada según sus fechas. Un marcador vertical indica el día actual, las campañas recurrentes a caballo del Año Nuevo se muestran en dos segmentos, y cada barra es clicable para abrir directamente la edición de la campaña.
Duplicar, exportar, importar
Desde la lista, la acción Duplicar crea una copia de la campaña con un nuevo token de vista previa, desactivada por defecto, cuyas imágenes de banner se copian físicamente — eliminar una nunca afecta a la otra. Las asociaciones de tienda se conservan.
El botón Exportar JSON (en la barra de herramientas) descarga todas tus campañas en un archivo. El formulario Importar JSON del panel permite reinyectar ese archivo en otra tienda. Las campañas importadas llegan desactivadas por defecto; las imágenes de banner no se incluyen en la exportación.
Multitienda y multiidioma
En un contexto multitienda, cada campaña se asocia a las tiendas que elijas mediante la sección Asociación de tienda del formulario. Una campaña solo se muestra en las tiendas a las que está vinculada.
El mensaje de la barra, el banner (imagen, enlace, texto alternativo) y el bloque de portada son traducibles por idioma. Rellena cada idioma desde las pestañas de idioma del formulario.
Integración para desarrolladores de temas
Cuando una campaña está activa, el módulo añade clases en la etiqueta body: dfts-active, dfts-campaign-{id}, dfts-effect-{efecto}, y dfts-preview en modo vista previa. Así puedes segmentar tu CSS con precisión.
También se emite un evento JavaScript dfts:ready sobre el document una vez inicializado el script, con la configuración de la campaña en su detalle. Combinado con las variables CSS --dfts-*, esto permite integraciones a medida sin tocar el módulo.
Rendimiento
El módulo es ligero por diseño. Resolver la campaña activa requiere una sola consulta SQL memoizada por visualización. El CSS y el JavaScript del front se cargan únicamente cuando hay una campaña realmente activa. No se usa ningún override de clase: solo hooks nativos de PrestaShop.
Resolución de problemas
El banner no aparece
Tu tema probablemente no implementa el hook de posición elegido. Cambia la Posición del banner a otro valor de la lista.
Los colores no se aplican
Comprueba que la opción Aplicar la paleta al tema está activada. Si lo está pero algunos elementos no cambian, tu tema usa selectores específicos: añade algunas reglas en el campo de CSS personalizado, apoyándote en las variables --dfts-*.
El efecto no se anima
Las animaciones se desactivan intencionadamente para los visitantes que han activado el movimiento reducido en su sistema operativo, y se pausan cuando la pestaña está en segundo plano. Comprueba también que haya seleccionado un efecto distinto de «Ninguno».
Dos campañas se solapan
Es el comportamiento esperado: solo se muestra una campaña, la de mayor prioridad. Ajusta las prioridades para elegir cuál prevalece.
La campaña no se activa a la hora prevista
Las fechas se interpretan en la hora del servidor, que puede diferir de tu hora local. Comprueba la zona horaria de tu tienda en los ajustes de PrestaShop.