# Bilheteira e Eventos: guia completo

> Apresentação A Bilheteira e Eventos da DataFirefly transforma qualquer produto PrestaShop num bilhete de evento. O módulo gere dois tipos de evento (lugares livres ou lugares marcados), uma planta da…

- Página: <https://www.datafirefly.com/pt/documentation/dfeventtickets/>
- Idioma: pt
- Atualizado em: 2026-09-02
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/dfeventtickets/index.md), [en](https://www.datafirefly.com/en/documentation/dfeventtickets/index.md), [es](https://www.datafirefly.com/es/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)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Apresentação

A Bilheteira e Eventos da DataFirefly transforma qualquer produto PrestaShop num bilhete de evento. O módulo gere dois tipos de evento (lugares livres ou lugares marcados), uma planta da sala visual, a geração de bilhetes com código QR descarregáveis em PDF e um ecrã de controlo de entrada por leitura de código. A particularidade da abordagem: cada **categoria de lugar é uma combinação de produto**, o que deixa o PrestaShop gerir nativamente os preços, os impostos e a faturação.

Sem dependências externas: a geração dos códigos QR e dos PDF está incorporada no módulo. Não é necessário Composer e o módulo é compatível com o PrestaShop 8 e 9, em multiloja.

## Instalação

1. Descarregue o ficheiro `dfeventtickets.zip` a partir da sua conta DataFirefly.
2. No back-office, vá a **Módulos > Gestor de módulos**, clique em **Carregar um módulo** e envie o ZIP.
3. O módulo instala-se automaticamente: cria as suas tabelas, os seus separadores de menu (em **Clientes > DataFirefly Bilheteira**) e regista os seus hooks.
4. Limpe a cache do PrestaShop (**Parâmetros avançados > Desempenho > Limpar a cache**) depois da instalação.

Numa atualização, substitua os ficheiros e limpe depois a cache para regenerar o índice de classes do PrestaShop.

## Conceitos-chave

### Produto = bilhete

Cria primeiro um produto PrestaShop normal (o «bilhete») e associa-lhe depois um _evento_. Tudo o que diz respeito ao preço, ao IVA e à fatura continua a ser gerido pelo PrestaShop.

### Zona de preço = combinação

Cada zona (Plateia VIP, Balcão, Bancada...) aponta para uma **combinação** do produto (`id_product_attribute`) ou para o preço base. É isso que garante totais e faturas corretos, sem cálculos paralelos.

### Dois tipos de evento

- **Lugares livres** (`general`): o cliente escolhe uma categoria e uma quantidade através do bloco de compra nativo.
- **Lugares marcados** (`seated`): o cliente escolhe o seu lugar numa planta da sala interativa.

## Criar um evento

Vá a **Clientes > DataFirefly Bilheteira > Eventos** e clique em **Adicionar um evento**. Indique:

- o **produto** associado;
- o **tipo** (lugares livres ou lugares marcados);
- as **datas** de início e de fim (formato `AAAA-MM-DD HH:MM:SS`) e o fuso horário;
- a **capacidade** (para os lugares livres);
- a **duração da reserva** (minutos durante os quais um lugar selecionado fica bloqueado, 15 por predefinição);
- o estado **ativo**.

Também pode aceder à criação e edição de eventos diretamente a partir do separador **Bilheteira e Evento** da ficha de produto.

## Definir as zonas de preço

Depois de gravado o evento, o painel **Zonas de preço** aparece por baixo do formulário. Em cada zona, indique um nome, a combinação de produto correspondente (ou o preço base) e uma cor de apresentação. O preço real é lido a partir da combinação do PrestaShop.

Crie pelo menos uma zona antes de desenhar a planta da sala: cada lugar tem de estar ligado a uma zona.

## Desenhar a planta da sala

Nos eventos com lugares marcados, abra **Desenhar a planta da sala**. O editor visual permite:

- **gerar um bloco** de lugares (filas × colunas, com primeira fila e primeiro número parametrizáveis) ligado a uma zona;
- **reposicionar** um lugar por arrastar e largar;
- **ativar/desativar** um lugar (clique): um lugar desativado não é vendido;
- **eliminar** um lugar (duplo clique);
- **apagar tudo** para recomeçar.

A barra «PALCO / ENTRADA» serve de referência de orientação para os seus clientes.

## Do lado da loja: comprar um bilhete

Na ficha de produto, o módulo injeta automaticamente o widget adequado:

- **Lugares marcados**: uma planta interativa em que as zonas aparecem coloridas, os lugares ocupados a cinzento e os lugares disponíveis clicáveis. O cliente seleciona um ou vários lugares; cada seleção acrescenta a combinação correspondente ao carrinho e reserva o lugar temporariamente.
- **Lugares livres**: uma caixa de disponibilidade; a compra é feita através do bloco de quantidade nativo.

Se um lugar tiver acabado de ser ocupado por outro cliente, a planta é atualizada e convida a escolher outro: não há venda em duplicado.

## Bilhetes com código QR e PDF

Assim que a encomenda é validada e paga, o módulo gera um bilhete por cada lugar efetivamente pago, cada um com um **token aleatório único** codificado em QR. O cliente descarrega os seus bilhetes em PDF (um bilhete por página) a partir do detalhe da encomenda ou da sua área de cliente. Se o TCPDF não estiver disponível, é proposta uma alternativa em HTML pronta a imprimir.

## Controlo de entrada (leitura de código)

No dia do evento, abra **Clientes > DataFirefly Bilheteira > Leitura**. Dois modos:

- **Câmara**: inicie a câmara e apresente o código QR do bilhete;
- **Introdução manual**: cole ou escreva o código do bilhete.

O resultado é apresentado a cores (válido, já utilizado, anulado, inválido) e um registo das últimas leituras ajuda o pessoal do acolhimento. Um bilhete validado passa a **utilizado** e não pode voltar a ser usado.

## Ciclo de vida de um bilhete

- **reserved**: lugar selecionado, bloqueado até ao fim do prazo de reserva;
- **valid**: encomenda paga e reconciliada (só os lugares efetivamente pagos ficam válidos);
- **used**: bilhete lido à entrada;
- **cancelled**: encomenda anulada ou reembolsada;
- **expired**: reserva não confirmada que chegou ao fim do prazo.

## Gestão dos bilhetes no back-office

O separador **Bilhetes** lista todos os bilhetes com o respetivo evento, lugar, cliente, encomenda, estado e data de emissão. A lista é filtrável e permite a **anulação em massa**. Está disponível um filtro por evento a partir do painel das zonas.

## Compatibilidade e aspetos técnicos

- PrestaShop 8.0 a 9.x, multiloja, multilingue (FR, EN, ES, DE, IT);
- PHP 7.4 a 8.3;
- controladores `ModuleAdminController` (compatibilidade PS8/9, sem controladores Symfony);
- código QR (biblioteca MIT) e PDF (TCPDF nativo) incorporados, sem dependências Composer.

## Resolução de problemas

### O widget de seleção não aparece na ficha de produto

Verifique se o evento está **ativo** e associado ao produto certo e se o módulo está efetivamente ligado aos hooks da ficha de produto. Limpe a cache.

### Aparece uma página em branco depois da instalação ou da atualização

Limpe a cache do PrestaShop para reconstruir o índice de classes e volte a carregar o ecrã.

### A câmara não arranca no ecrã de leitura

A leitura por câmara exige um contexto seguro (HTTPS) e a autorização de acesso à câmara. Na sua falta, utilize a introdução manual do código.

### Os preços ou os impostos parecem incorretos

Certifique-se de que cada zona aponta para a combinação de produto correta: é o PrestaShop que calcula o preço e o IVA a partir dessa combinação.
