# Ticketverkauf & Sitzplätze — Vollständiger Leitfaden

> Überblick DataFirefly Ticketverkauf & Sitzplätze verwandelt jedes PrestaShop-Produkt in ein Event-Ticket. Das Modul beherrscht zwei Event-Typen (freie Platzwahl oder feste Sitzplätze), einen visuellen Saalplan, die Erzeugung von QR-Tickets zum Download…

- Seite: <https://www.datafirefly.com/de/documentation/dfeventtickets/>
- Sprache: de
- Aktualisiert am: 2026-06-27
- Weitere Sprachen: [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), [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)
- Index: <https://www.datafirefly.com/de/documentation/llms.txt>

## Überblick

DataFirefly Ticketverkauf & Sitzplätze verwandelt jedes PrestaShop-Produkt in ein Event-Ticket. Das Modul beherrscht zwei Event-Typen (freie Platzwahl oder feste Sitzplätze), einen visuellen Saalplan, die Erzeugung von QR-Tickets zum Download als PDF und einen Einlasskontroll-Bildschirm per Scan. Die Kernidee: Jede **Platzkategorie ist eine Produktkombination**, sodass PrestaShop Preise, Steuern und Rechnungsstellung nativ übernimmt.

Keine externe Abhängigkeit: Die QR- und PDF-Erzeugung ist im Modul integriert. Kein Composer erforderlich, und das Modul läuft auf PrestaShop 8 und 9, im Multistore.

## Installation

1. Laden Sie das Archiv `dfeventtickets.zip` aus Ihrem DataFirefly-Konto herunter.
2. Gehen Sie im Back-Office zu **Module > Modul-Manager**, klicken Sie auf **Modul hochladen** und legen Sie die ZIP-Datei ab.
3. Das Modul installiert sich automatisch: Es erstellt seine Tabellen, seine Menü-Tabs (unter **Kunden > DataFirefly Ticketing**) und registriert seine Hooks.
4. Leeren Sie nach der Installation den PrestaShop-Cache (**Erweiterte Einstellungen > Leistung > Cache leeren**).

Überschreiben Sie bei einem Update die Dateien und leeren Sie dann den Cache, um den Klassenindex von PrestaShop zu bereinigen.

## Kernkonzepte

### Produkt = Ticket

Sie erstellen zunächst ein Standard-PrestaShop-Produkt (das „Ticket") und verknüpfen es dann mit einem _Event_. Alles rund um Preis, MwSt. und Rechnungsstellung bleibt in PrestaShop.

### Preiszone = Kombination

Jede Zone (Gold-Rang, Balkon, Innenraum …) verweist auf eine Produkt**kombination** (`id_product_attribute`) oder auf den Basispreis. Das sorgt für korrekte Summen und Rechnungen, ohne parallele Berechnung.

### Zwei Event-Typen

- **Freie Platzwahl** (`general`): Der Kunde wählt eine Kategorie und eine Menge über den nativen Kaufblock.
- **Feste Sitzplätze** (`seated`): Der Kunde wählt seinen Platz auf einem interaktiven Saalplan.

## Ein Event anlegen

Gehen Sie zu **Kunden > DataFirefly Ticketing > Events** und klicken Sie auf **Event hinzufügen**. Geben Sie an:

- das verknüpfte **Produkt**;
- den **Typ** (freie Platzwahl oder feste Sitzplätze);
- die **Daten** für Beginn und Ende (Format `JJJJ-MM-TT HH:MM:SS`) und die Zeitzone;
- die **Kapazität** (bei freier Platzwahl);
- die **Reservierungsdauer** (Minuten, in denen ein gewählter Platz gesperrt bleibt, standardmäßig 15);
- den Status **aktiv**.

Sie können das Anlegen/Bearbeiten eines Events auch direkt über den Tab **Ticketing & Event** auf der Produktseite erreichen.

## Preiszonen definieren

Sobald das Event gespeichert ist, erscheint das Panel **Preiszonen** unter dem Formular. Geben Sie für jede Zone einen Namen, die zugehörige Produktkombination (oder den Basispreis) und eine Anzeigefarbe an. Der tatsächliche Preis wird aus der PrestaShop-Kombination gelesen.

Legen Sie mindestens eine Zone an, bevor Sie den Saalplan zeichnen: Jeder Sitz muss einer Zone zugeordnet sein.

## Den Saalplan zeichnen

Öffnen Sie bei Events mit Sitzplätzen **Saalplan zeichnen**. Der visuelle Editor erlaubt:

- einen **Block** von Sitzen **erzeugen** (Reihen × Spalten, mit konfigurierbarer erster Reihe und erster Nummer), einer Zone zugeordnet;
- einen Sitz per **Drag-and-drop verschieben**;
- einen Sitz **aktivieren/deaktivieren** (Klick) — ein deaktivierter Sitz wird nicht verkauft;
- einen Sitz **löschen** (Doppelklick);
- **alles löschen**, um neu zu beginnen.

Die Leiste „BÜHNE / EINGANG" dient Ihren Kunden als Orientierungshilfe.

## Im Shop: ein Ticket kaufen

Auf der Produktseite fügt das Modul automatisch das passende Widget ein:

- **Feste Sitzplätze**: ein interaktiver Plan, auf dem Zonen farbig, belegte Plätze ausgegraut und freie Plätze anklickbar sind. Der Kunde wählt einen oder mehrere Plätze; jede Auswahl fügt die passende Kombination dem Warenkorb hinzu und reserviert den Platz vorübergehend.
- **Freie Platzwahl**: ein Verfügbarkeits-Hinweis; der Kauf erfolgt über den nativen Mengenblock.

Wurde ein Platz gerade von einem anderen Kunden belegt, aktualisiert sich der Plan und fordert zur Wahl eines anderen auf — kein Doppelverkauf.

## QR- & PDF-Tickets

Sobald die Bestellung validiert und bezahlt ist, erzeugt das Modul ein Ticket pro tatsächlich bezahltem Platz, jeweils mit einem **eindeutigen Zufalls-Token**, das als QR-Code codiert ist. Der Kunde lädt seine Tickets als PDF (ein Ticket pro Seite) aus den Bestelldetails oder seinem Kundenkonto herunter. Ist TCPDF nicht verfügbar, wird ein druckbarer HTML-Fallback angeboten.

## Einlasskontrolle (Scan)

Öffnen Sie am Veranstaltungstag **Kunden > DataFirefly Ticketing > Scan**. Zwei Modi:

- **Kamera**: Starten Sie die Kamera und halten Sie den Ticket-QR davor;
- **Manuelle Eingabe**: Fügen Sie den Ticket-Code ein oder tippen Sie ihn.

Das Ergebnis wird farbig angezeigt (gültig, bereits verwendet, storniert, ungültig), und ein Protokoll der letzten Scans hilft dem Einlasspersonal. Ein validiertes Ticket wechselt zu **verwendet** und kann nicht erneut genutzt werden.

## Lebenszyklus eines Tickets

- **reserved**: Platz gewählt, bis zum Ablauf der Reservierung gesperrt;
- **valid**: Bestellung bezahlt und abgeglichen (nur tatsächlich bezahlte Plätze werden gültig);
- **used**: Ticket am Einlass gescannt;
- **cancelled**: Bestellung storniert oder erstattet;
- **expired**: nicht bestätigte Reservierung, die abgelaufen ist.

## Tickets im Back-Office verwalten

Der Tab **Tickets** listet alle Tickets mit Event, Platz, Kunde, Bestellung, Status und Ausgabedatum auf. Die Liste ist filterbar und unterstützt die **Sammelstornierung**. Ein Filter pro Event ist über das Zonen-Panel verfügbar.

## Kompatibilität & technische Hinweise

- PrestaShop 8.0 bis 9.x, Multistore, mehrsprachig (FR, EN, ES, DE, IT);
- PHP 7.4 bis 8.3;
- `ModuleAdminController`-Controller (PS8/9-Kompatibilität, ohne Symfony-Controller);
- QR (MIT-Bibliothek) und PDF (natives TCPDF) integriert, keine Composer-Abhängigkeit.

## Fehlerbehebung

### Das Auswahl-Widget erscheint nicht auf der Produktseite

Prüfen Sie, ob das Event **aktiv** und mit dem richtigen Produkt verknüpft ist und ob das Modul korrekt an die Hooks der Produktseite angebunden ist. Leeren Sie den Cache.

### Nach Installation oder Update erscheint eine leere Seite

Leeren Sie den PrestaShop-Cache, um den Klassenindex neu aufzubauen, und laden Sie den Bildschirm neu.

### Die Kamera startet auf dem Scan-Bildschirm nicht

Das Kamera-Scannen erfordert einen sicheren Kontext (HTTPS) und die Erlaubnis für den Kamerazugriff. Andernfalls verwenden Sie die manuelle Code-Eingabe.

### Preise oder Steuern wirken falsch

Stellen Sie sicher, dass jede Zone auf die richtige Produktkombination verweist: PrestaShop berechnet Preis und MwSt. aus dieser Kombination.
