# Venta de Entradas y Localidades — Guía completa

> Presentación DataFirefly Venta de Entradas y Localidades convierte cualquier producto de PrestaShop en una entrada de evento. El módulo gestiona dos tipos de evento (admisión general o butaca asignada), un…

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

## Presentación

DataFirefly Venta de Entradas y Localidades convierte cualquier producto de PrestaShop en una entrada de evento. El módulo gestiona dos tipos de evento (admisión general o butaca asignada), un plano de sala visual, la generación de entradas QR descargables en PDF y una pantalla de control de acceso por escaneo. La idea clave: cada **categoría de butaca es una combinación de producto**, de modo que PrestaShop gestiona de forma nativa precios, impuestos y facturación.

Sin dependencias externas: la generación de QR y PDF está integrada en el módulo. No se necesita Composer, y el módulo funciona en PrestaShop 8 y 9, en multitienda.

## Instalación

1. Descarga el archivo `dfeventtickets.zip` desde tu cuenta de DataFirefly.
2. En el back-office, ve a **Módulos > Gestor de módulos**, haz clic en **Subir un módulo** y suelta el ZIP.
3. El módulo se instala automáticamente: crea sus tablas, sus pestañas de menú (en **Clientes > DataFirefly Entradas**) y registra sus hooks.
4. Vacía la caché de PrestaShop (**Parámetros avanzados > Rendimiento > Vaciar caché**) tras la instalación.

Al actualizar, sobrescribe los archivos y vacía la caché para purgar el índice de clases de PrestaShop.

## Conceptos clave

### Producto = entrada

Primero creas un producto estándar de PrestaShop (la «entrada») y luego le asocias un _evento_. Todo lo relativo a precio, IVA y facturación lo sigue gestionando PrestaShop.

### Zona de precio = combinación

Cada zona (Platea Oro, Anfiteatro, Pista…) apunta a una **combinación** del producto (`id_product_attribute`) o al precio base. Esto garantiza totales y facturas correctos, sin cálculos paralelos.

### Dos tipos de evento

- **Admisión general** (`general`): el cliente elige una categoría y una cantidad mediante el bloque de compra nativo.
- **Butaca asignada** (`seated`): el cliente elige su butaca en un plano de sala interactivo.

## Crear un evento

Ve a **Clientes > DataFirefly Entradas > Eventos** y haz clic en **Añadir un evento**. Indica:

- el **producto** asociado;
- el **tipo** (admisión general o butaca asignada);
- las **fechas** de inicio y fin (formato `AAAA-MM-DD HH:MM:SS`) y la zona horaria;
- el **aforo** (para la admisión general);
- la **duración de la reserva** (minutos durante los cuales una butaca seleccionada queda bloqueada, 15 por defecto);
- el estado **activo**.

También puedes acceder a la creación/edición del evento directamente desde la pestaña **Entradas y Evento** de la ficha de producto.

## Definir las zonas de precio

Una vez guardado el evento, el panel **Zonas de precio** aparece bajo el formulario. Para cada zona, indica un nombre, la combinación de producto correspondiente (o el precio base) y un color de visualización. El precio real se lee de la combinación de PrestaShop.

Crea al menos una zona antes de dibujar el plano de sala: cada butaca debe estar vinculada a una zona.

## Dibujar el plano de sala

Para los eventos con butaca, abre **Dibujar el plano de sala**. El editor visual permite:

- **generar un bloque** de butacas (filas × columnas, con primera fila y primer número configurables) vinculado a una zona;
- **reposicionar** una butaca arrastrando y soltando;
- **activar/desactivar** una butaca (clic) — una butaca desactivada no se vende;
- **eliminar** una butaca (doble clic);
- **borrar todo** para empezar de nuevo.

La barra «ESCENARIO / ENTRADA» sirve de referencia de orientación para tus clientes.

## En la tienda: comprar una entrada

En la ficha de producto, el módulo inyecta automáticamente el widget adecuado:

- **Butaca asignada**: un plano interactivo donde las zonas aparecen en color, las butacas ocupadas en gris y las disponibles son clicables. El cliente selecciona una o varias butacas; cada selección añade la combinación correspondiente al carrito y reserva la butaca temporalmente.
- **Admisión general**: un recuadro de disponibilidad; la compra se realiza con el bloque de cantidad nativo.

Si una butaca acaba de ser ocupada por otro cliente, el plano se actualiza e invita a elegir otra — sin doble venta.

## Entradas QR y PDF

En cuanto el pedido se valida y se paga, el módulo genera una entrada por cada butaca realmente pagada, cada una con un **token aleatorio único** codificado como QR. El cliente descarga sus entradas en PDF (una entrada por página) desde el detalle del pedido o su cuenta de cliente. Si TCPDF no está disponible, se ofrece una alternativa HTML imprimible.

## Control de acceso (escaneo)

El día del evento, abre **Clientes > DataFirefly Entradas > Escaneo**. Dos modos:

- **Cámara**: inicia la cámara y presenta el QR de la entrada;
- **Entrada manual**: pega o escribe el código de la entrada.

El resultado se muestra en color (válida, ya usada, cancelada, no válida) y un registro de los últimos escaneos ayuda al personal de recepción. Una entrada validada pasa a **usada** y ya no se puede reutilizar.

## Ciclo de vida de una entrada

- **reserved**: butaca seleccionada, bloqueada hasta que expire la reserva;
- **valid**: pedido pagado y reconciliado (solo las butacas realmente pagadas pasan a ser válidas);
- **used**: entrada escaneada en la puerta;
- **cancelled**: pedido cancelado o reembolsado;
- **expired**: reserva no confirmada que ha expirado.

## Gestión de entradas en el back-office

La pestaña **Entradas** lista todas las entradas con su evento, butaca, cliente, pedido, estado y fecha de emisión. La lista es filtrable y permite la **cancelación en lote**. Hay un filtro por evento disponible desde el panel de zonas.

## Compatibilidad y aspectos técnicos

- PrestaShop 8.0 a 9.x, multitienda, multiidioma (FR, EN, ES, DE, IT);
- PHP 7.4 a 8.3;
- controladores `ModuleAdminController` (compatibilidad PS8/9, sin controladores Symfony);
- QR (biblioteca MIT) y PDF (TCPDF nativo) integrados, sin dependencia de Composer.

## Resolución de problemas

### El widget de selección no aparece en la ficha de producto

Comprueba que el evento esté **activo**, asociado al producto correcto, y que el módulo esté correctamente enganchado a los hooks de la ficha de producto. Vacía la caché.

### Aparece una página en blanco tras la instalación o la actualización

Vacía la caché de PrestaShop para reconstruir el índice de clases y vuelve a cargar la pantalla.

### La cámara no se inicia en la pantalla de escaneo

El escaneo con cámara requiere un contexto seguro (HTTPS) y permiso de acceso a la cámara. En su defecto, usa la entrada manual del código.

### Los precios o impuestos parecen incorrectos

Asegúrate de que cada zona apunte a la combinación de producto correcta: PrestaShop calcula el precio y el IVA a partir de esa combinación.
