# Reservas y Citas: guía completa

> Presentación El módulo Reservas y Citas (dfbooking) añade la reserva de citas en línea a PrestaShop 8 y 9. El cliente elige un servicio, un profesional o «Primer disponible», y…

- Página: <https://www.datafirefly.com/es/documentation/dfbooking/>
- Idioma: es
- Actualizado el: 2026-09-30
- Otros idiomas: [fr](https://www.datafirefly.com/documentation/dfbooking/index.md), [en](https://www.datafirefly.com/en/documentation/dfbooking/index.md), [de](https://www.datafirefly.com/de/documentation/dfbooking/index.md), [it](https://www.datafirefly.com/it/documentation/dfbooking/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfbooking/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfbooking/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfbooking/index.md)
- Índice: <https://www.datafirefly.com/es/documentation/llms.txt>

## Presentación

El módulo **Reservas y Citas** (`dfbooking`) añade la reserva de citas en línea a PrestaShop 8 y 9. El cliente elige un servicio, un profesional o «Primer disponible», y después un día y una hora. Las horas propuestas se calculan en tiempo real a partir de los horarios, la duración del servicio, la pausa y las citas ya reservadas.

Se puede pedir un depósito: se paga mediante un pedido nativo de PrestaShop, es decir, con los medios de pago ya activos en su tienda. El equipo trabaja desde una agenda en el back office y el cliente gestiona su cita desde un enlace privado recibido por email.

Esta documentación corresponde a la versión **1.2.0**.

## Conceptos clave

- **Servicio**: lo que reserva el cliente (corte, consulta, taller). Tiene una duración, una pausa, un precio por persona, un número de plazas por horario y, opcionalmente, un depósito, una categoría y una foto.
- **Profesional o recurso**: la persona, la cabina o la máquina que realiza el servicio. Cada uno tiene su horario semanal y, opcionalmente, una foto y un email.
- **Horario**: una hora reservable, generada a partir del horario semanal y del intervalo entre horas.
- **Estados**: Pendiente de pago, Pendiente de confirmación, Confirmada, Cancelada, Finalizada, No presentado.

## Instalación y actualización

1. Abra **Módulos > Gestor de módulos** y haga clic en **Subir un módulo**.
2. Suelte el archivo `dfbooking.zip` y haga clic en **Configurar**.

La instalación crea las tablas, el menú **Reservas** (Agenda, Reservas, Servicios, Profesionales y recursos), un producto técnico oculto «Depósito de reserva» y la carpeta `img/dfbooking/` para las fotos.

Para actualizar una versión anterior, instale el nuevo ZIP encima: los scripts de actualización añaden las nuevas columnas y tablas, generan los enlaces privados de las reservas existentes y añaden la pestaña Agenda. Sus reservas, servicios y horarios se conservan.

No elimine el producto «Depósito de reserva»: lleva el importe del depósito en el carrito. No es visible en el catálogo y se elimina automáticamente al desinstalar.

## Puesta en marcha rápida

La página de configuración muestra una lista de comprobación mientras estos tres pasos no estén hechos:

1. Cree un profesional en **Reservas > Profesionales y recursos**. Se propone por defecto un horario de lunes a viernes, 9:00-12:00 y 14:00-18:00.
2. Cree un servicio en **Reservas > Servicios** y marque los profesionales que lo realizan.
3. Añada el enlace de la página de reserva (mostrado en la configuración) a su menú o a una página CMS.

Añada `?service=ID` a la URL de la página de reserva para abrir directamente un servicio, por ejemplo desde una página CMS que lo presente.

## Configuración

### Horarios

- **Intervalo entre horas** (30 min por defecto): separación entre dos horas de inicio propuestas.
- **Antelación mínima** (120 min por defecto): el cliente no puede reservar una hora que empiece antes.
- **Plazo de reserva** (60 días por defecto): profundidad del calendario.
- **Confirmar las reservas automáticamente**: si se desactiva, las reservas sin depósito llegan como «Pendiente de confirmación».

### Formulario del cliente

- **Cuenta de cliente obligatoria** y **teléfono obligatorio**.
- **Casilla de consentimiento**: elija una página CMS (política de privacidad, condiciones); aparece una casilla obligatoria antes de confirmar.
- **Condiciones de reserva**: texto breve por idioma mostrado antes de confirmar y en la página de la cita (cancelación, reembolso del depósito, retrasos).

### Depósito, cancelación y cambios

- **Reservar un horario no pagado durante** (30 min por defecto): pasado este plazo sin pedido, la hora se libera.
- **Cancelación en línea** y **cambio en línea** por el cliente, activables por separado.
- **Cambios en línea posibles hasta** X horas antes de la cita (24 por defecto).

### Notificaciones y recordatorios

- **Email de notificación del equipo**: recibe cada nueva reserva, cancelación y cambio (vacío = email de la tienda).
- **Avisar también al profesional asignado**: copia enviada al email indicado en el profesional.
- **Email de recordatorio** X horas antes (24 por defecto, 0 para desactivar).
- **Adjuntar un archivo de calendario (.ics)** a los emails de confirmación, cambio y cancelación.
- **Marcar las citas pasadas como finalizadas** automáticamente.

### Página de reserva

- **Color de acento**: botones, día y hora seleccionados. Elija un color legible sobre fondo blanco.
- **URL de la página**: `/reservation` por defecto, modificable (por ejemplo `/cita`).

## Servicios

En **Reservas > Servicios**, cada servicio incluye:

- **Nombre**, **categoría** y **descripción**, por idioma. Los servicios de una misma categoría se muestran juntos, con filtros en cuanto hay al menos dos categorías.
- **Foto** (JPG, PNG o WebP, 5 MB máx.), mostrada en miniatura.
- **Duración** y **pausa entre citas** (limpieza, preparación).
- **Plazas por horario**: 1 para una cita individual, más para una sesión en grupo.
- **Precio por persona** (0 oculta el precio) y **depósito**: ninguno, porcentaje del precio o importe fijo por persona.
- **Color** usado en la agenda, y los **profesionales** que realizan el servicio.

Un servicio solo se ofrece en línea si tiene al menos un profesional activo asociado. La columna «Profesional» de la lista señala los servicios sin profesional.

A partir de seis servicios, aparece un campo de búsqueda encima de la lista en la página de reserva.

## Profesionales y horarios

En **Reservas > Profesionales y recursos**, indique el nombre, la función, la descripción, una foto (mostrada en un círculo), un color y, opcionalmente, un email para recibir los avisos.

### Horario semanal

Para cada día, indique hasta tres franjas horarias. Use dos franjas para la pausa del mediodía. Un día sin franjas es un día libre. El botón **Copiar de martes a viernes** copia las franjas del lunes, y **Vaciar** borra un día.

### Agenda personal en el móvil

Una vez guardado el profesional, su ficha muestra un **enlace de calendario privado**. En Google Calendar (Otros calendarios > Desde URL) o en un iPhone (Ajustes > Calendario > Cuentas > Añadir calendario suscrito), sus citas aparecen y se actualizan solas. En la configuración hay un enlace para todo el equipo.

Este enlace da acceso al nombre y al teléfono de los clientes. Compártalo solo con la persona correspondiente.

## Sesiones en grupo

Con más de una plaza por horario, el cliente elige el número de participantes y ve las plazas libres bajo cada hora. Varias reservas pueden compartir la misma hora de inicio hasta agotar las plazas; el precio y el depósito se multiplican por el número de participantes.

## Cierres y horarios excepcionales

La página de configuración tiene dos paneles:

- **Cierres y días libres**: un periodo sin ninguna hora, para toda la tienda o un profesional. Si ya hay citas en el periodo, un aviso lo indica: no se cancelan automáticamente.
- **Horarios excepcionales**: horario especial para una fecha (apertura nocturna, domingo antes de Navidad, jornada reducida), con una segunda franja opcional. Sustituye a la semana habitual solo ese día.

Prioridad para una fecha: un cierre siempre prevalece; después, el horario excepcional propio del profesional y luego el de toda la tienda; si no, la semana habitual.

## El depósito

1. La reserva se crea como «Pendiente de pago» y la hora queda bloqueada.
2. El módulo prepara un carrito que solo contiene el depósito y envía al cliente a su proceso de compra. El carrito que tenía se guarda aparte.
3. Pago inmediato (tarjeta, PayPal): la reserva pasa a **Confirmada** y se envían los emails.
4. Pago diferido (transferencia, cheque): la hora sigue bloqueada y la reserva se confirma cuando usted pasa el pedido a un estado pagado.
5. Pedido cancelado o en error: la cita se cancela y se avisa al cliente.
6. Pago abandonado: la hora se libera tras el plazo configurado.

Tras el pedido, se restaura el carrito original del cliente y la página de confirmación del pedido muestra la cita con un enlace para gestionarla.

Si un pago llega fuera de plazo cuando otro cliente ya ha tomado la hora, la reserva pasa a «Pendiente de confirmación» con una nota interna, para que usted contacte con el cliente.

## Proceso de reserva del cliente

1. **Servicio**: lista agrupada por categoría, con filtros y búsqueda.
2. **Profesional**: una persona concreta o «Primer disponible». Este paso se omite si un solo profesional realiza el servicio.
3. **Día y hora**: el calendario se abre en la próxima disponibilidad; las horas se agrupan en mañana, tarde y noche.
4. **Datos de contacto**, condiciones y consentimiento, y confirmación.

Un resumen muestra en directo el servicio, el profesional, la fecha, la hora, el total, el depósito y el resto. Cada paso completado se pliega con un enlace «Cambiar».

## Gestión de la cita por el cliente

Tras reservar, el cliente llega a la página de su cita. Allí tiene el resumen, el botón para añadirla a Google Calendar y un archivo .ics para Apple Calendar y Outlook. Según sus ajustes, también puede **cambiar** la cita a otra hora libre (manteniendo o no al mismo profesional) o **cancelarla**.

Esta página es accesible desde el enlace de cada email, también para clientes sin cuenta. Los clientes conectados encuentran además sus próximas citas y su historial en **Mi cuenta > Mis citas**.

## Agenda del back office

**Reservas > Agenda** muestra:

- la **vista semana**, con filtro por profesional;
- la **vista día**, con una columna por profesional.

La barra de color de una cita indica el servicio y su borde el estado (discontinuo mientras no esté confirmada). Los días cerrados aparecen rayados y una línea roja marca la hora actual.

- **Clic en una hora libre**: crea una cita con el día, la hora y el profesional ya rellenados.
- **Arrastrar y soltar una cita**: la mueve conservando su duración. En la vista día, soltarla en otra columna cambia de profesional. Una ventana de confirmación propone avisar al cliente por email. Si la hora está ocupada, la agenda pide confirmación antes de forzar.
- **Clic en una cita**: abre su ficha.

## Reservas en el back office

### Lista

**Reservas > Reservas** lista las citas con filtros (estado, fecha, servicio, profesional, cliente) y exportación CSV.

### Crear una cita telefónica

Haga clic en **Nueva reserva** o en una hora libre de la agenda. Elija el servicio, el profesional (o la asignación automática), la fecha y la hora; la hora de fin se calcula según la duración del servicio. Si el email corresponde a un cliente existente, la reserva se vincula a él. Una reserva que se solape con otra se rechaza, salvo que active **Guardar aunque la hora esté ocupada**.

### Ficha de una reserva

La ficha reúne la cita, el cliente, el pago (con enlace al pedido), el mensaje del cliente y una nota interna. Las acciones rápidas son **Confirmar**, **Marcar como finalizada**, **No presentado**, **Cancelar la reserva**, **Restablecer** y **Reenviar el email**. Un cambio de estado envía el email correspondiente al cliente.

### Detalle del pedido

Un pedido de depósito muestra un bloque «Cita vinculada» con un enlace a la reserva.

## Emails

Se incluyen seis plantillas en español, inglés, francés, alemán e italiano, en HTML y en texto:

- **Confirmación**: cita confirmada, con .ics adjunto;
- **Solicitud recibida**: reserva pendiente de confirmación o de pago;
- **Recordatorio**: enviado X horas antes de la cita;
- **Cancelación** y **Cambio**;
- **Aviso al equipo**: nueva reserva, cancelación o cambio por el cliente. Responder a este email escribe directamente al cliente.

Cada email al cliente contiene el enlace privado de gestión de la cita. Para un idioma sin plantillas (polaco, neerlandés, portugués), los emails se envían en inglés.

## Tareas automáticas

Tres tareas se ejecutan en segundo plano: el envío de recordatorios, la liberación de las horas cuyo depósito no se pagó a tiempo y el paso de las citas pasadas a «Finalizada».

La configuración muestra una **URL cron** protegida por token. Llámela cada 15 minutos desde el cron de su servidor para recordatorios puntuales. Sin cron, las tareas se ejecutan durante las visitas a la tienda, como máximo cada 10 minutos. El botón **Ejecutar las tareas ahora** las lanza de inmediato.

## Estadísticas

El resumen de la configuración muestra las próximas citas, las pendientes de confirmación y, para el mes en curso: número de citas, facturación reservada (confirmadas y finalizadas), parte reservada en línea, tasa de cancelación y tasa de no presentados.

## RGPD

Con el módulo oficial **psgdpr**, la exportación de los datos de un cliente incluye sus reservas, y la eliminación de sus datos anonimiza sus reservas (nombre, email, teléfono, mensaje) sin alterar sus estadísticas.

## Multitienda e idiomas

Servicios y profesionales tienen textos por idioma y por tienda, y las reservas pertenecen a su tienda. La interfaz del módulo está disponible en español, inglés, francés, alemán e italiano.

## Desinstalación

La desinstalación elimina las tablas, las reservas, la configuración, el menú, el producto de depósito y las fotos. Los pedidos existentes no se modifican.

## Resolución de problemas

### No aparece ninguna hora

Compruebe que el profesional tiene horario ese día, que el servicio está asociado a él, que el día no está cerrado, y compare la antelación mínima y la duración del servicio con las franjas horarias.

### Un servicio no aparece en línea

Debe estar activo y asociado a al menos un profesional activo.

### Los recordatorios no se envían

Compruebe que el recordatorio no está en 0 y que la reserva está «Confirmada». En una tienda con pocas visitas, configure la URL cron.

### La foto no se guarda

La carpeta `img/dfbooking/` debe tener permisos de escritura. Compruebe también el tamaño (5 MB máx.) y el formato.

### La URL de reserva devuelve un error 404

Active las URL amigables en **Parámetros de la tienda > Tráfico y SEO** y vacíe la caché.

## Preguntas frecuentes

### ¿Puede el cliente reservar sin crear una cuenta?

Sí, salvo que active «Cuenta de cliente obligatoria». Gestiona su cita con el enlace recibido por email.

### ¿Puedo ofrecer «Primer disponible»?

Sí, automáticamente en cuanto varios profesionales realizan el servicio. El módulo asigna al profesional libre a la hora elegida.

### ¿Cómo se evitan las reservas dobles?

La disponibilidad se vuelve a comprobar al confirmar, con un bloqueo, y el back office rechaza los solapamientos salvo que usted los fuerce.

### ¿Es compatible con PrestaShop 9?

Sí, de PrestaShop 8.0 a 9.x, con una o varias tiendas.
