# Bilety i Wydarzenia: kompletny przewodnik

> Kompletny przewodnik po module Bilety i Wydarzenia: instalacja, tworzenie wydarzenia, strefy cenowe, wizualny plan sali, bilety QR/PDF, kontrola wejścia przez skanowanie, statusy biletów i rozwiązywanie problemów.

- Strona: <https://www.datafirefly.com/pl/documentation/dfeventtickets/>
- Język: pl
- Zaktualizowano: 2026-08-01
- Inne języki: [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), [nl](https://www.datafirefly.com/nl/documentation/dfeventtickets/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfeventtickets/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

## Prezentacja

DataFirefly Bilety i Wydarzenia zamienia dowolny produkt PrestaShop w bilet na wydarzenie. Moduł obsługuje dwa typy wydarzeń (wstęp wolny lub miejsca numerowane), wizualny plan sali, generowanie biletów QR do pobrania w PDF oraz ekran kontroli wejścia ze skanowaniem. Cechą charakterystyczną tego podejścia jest to, że **każda kategoria miejsca jest wariantem produktu**, dzięki czemu PrestaShop natywnie zarządza cenami, podatkami i fakturowaniem.

Brak zewnętrznych zależności: generowanie kodów QR i plików PDF jest wbudowane w moduł. Composer nie jest wymagany, a moduł działa zarówno na PrestaShop 8, jak i 9, także w trybie multisklepu.

## Instalacja

1. Pobierz archiwum `dfeventtickets.zip` ze swojego konta DataFirefly.
2. W panelu administracyjnym przejdź do **Moduły > Menedżer modułów**, kliknij **Wgraj moduł** i przeciągnij plik ZIP.
3. Moduł instaluje się automatycznie: tworzy swoje tabele, zakładki menu (w **Klienci > DataFirefly Bilety**) i rejestruje hooki.
4. Po instalacji wyczyść pamięć podręczną PrestaShop (**Parametry zaawansowane > Wydajność > Wyczyść pamięć podręczną**).

Przy aktualizacji nadpisz pliki, a następnie wyczyść pamięć podręczną, aby odświeżyć indeks klas PrestaShop.

## Kluczowe pojęcia

### Produkt = bilet

Najpierw tworzysz standardowy produkt PrestaShop („bilet”), a następnie przypisujesz do niego _wydarzenie_. Wszystko, co dotyczy ceny, VAT i faktury, pozostaje po stronie PrestaShop.

### Strefa cenowa = wariant

Każda strefa (Złoty Sektor, Balkon, Płyta i tak dalej) wskazuje na **kombinację** produktu (`id_product_attribute`) albo na cenę bazową. To gwarantuje poprawne sumy i faktury, bez równoległych obliczeń.

### Dwa typy wydarzenia

- **Wstęp wolny** (`general`): klient wybiera kategorię i ilość przez natywny blok zakupu.
- **Miejsca numerowane** (`seated`): klient wybiera miejsce na interaktywnym planie sali.

## Tworzenie wydarzenia

Przejdź do **Klienci > DataFirefly Bilety > Wydarzenia**, a następnie kliknij **Dodaj wydarzenie**. Uzupełnij:

- powiązany **produkt**;
- **typ** (wstęp wolny lub miejsca numerowane);
- **daty** początku i końca (format `RRRR-MM-DD GG:MM:SS`) oraz strefę czasową;
- **pojemność** (dla wstępu wolnego);
- **czas rezerwacji** (liczba minut, przez które wybrane miejsce pozostaje zablokowane, domyślnie 15);
- status **aktywny**.

Do tworzenia i edycji wydarzenia możesz też przejść bezpośrednio z zakładki **Bilety i Wydarzenie** na karcie produktu.

## Definiowanie stref cenowych

Po zapisaniu wydarzenia pod formularzem pojawia się panel **Strefy cenowe**. Dla każdej strefy podaj nazwę, odpowiadający jej wariant produktu (albo cenę bazową) oraz kolor wyświetlania. Rzeczywista cena jest odczytywana z wariantu PrestaShop.

Utwórz co najmniej jedną strefę przed narysowaniem planu sali: każde miejsce musi być przypisane do strefy.

## Rysowanie planu sali

Dla wydarzeń z miejscami numerowanymi otwórz **Narysuj plan sali**. Edytor wizualny pozwala:

- **wygenerować blok** miejsc (rzędy × kolumny, z konfigurowalnym pierwszym rzędem i pierwszym numerem) przypisany do strefy;
- **przesunąć** miejsce metodą przeciągnij i upuść;
- **włączyć lub wyłączyć** miejsce (kliknięcie): wyłączone miejsce nie jest sprzedawane;
- **usunąć** miejsce (dwukrotne kliknięcie);
- **wyczyścić wszystko**, aby zacząć od nowa.

Pasek „SCENA / WEJŚCIE” służy jako punkt orientacyjny dla Twoich klientów.

## Po stronie sklepu: zakup biletu

Na karcie produktu moduł automatycznie wstrzykuje właściwy widget:

- **Miejsca numerowane**: interaktywny plan, na którym strefy są kolorowane, miejsca zajęte wyszarzone, a dostępne klikalne. Klient wybiera jedno lub kilka miejsc; każdy wybór dodaje odpowiedni wariant do koszyka i tymczasowo rezerwuje miejsce.
- **Wstęp wolny**: ramka z informacją o dostępności; zakup odbywa się przez natywny blok ilości.

Jeśli miejsce zostało właśnie zajęte przez innego klienta, plan się odświeża i zachęca do wyboru innego. Podwójna sprzedaż nie jest możliwa.

## Bilety QR i PDF

Gdy zamówienie zostanie zatwierdzone i opłacone, moduł generuje jeden bilet na każde faktycznie opłacone miejsce, a każdy z nich niesie **unikalny losowy token** zakodowany w QR. Klient pobiera bilety w PDF (jeden bilet na stronę) ze szczegółów zamówienia albo ze swojego konta. Jeśli TCPDF nie jest dostępny, oferowana jest zapasowa wersja HTML do wydruku.

## Kontrola wejścia (skanowanie)

W dniu wydarzenia otwórz **Klienci > DataFirefly Bilety > Skanowanie**. Dostępne są dwa tryby:

- **Kamera**: uruchom kamerę i pokaż kod QR biletu;
- **Wprowadzanie ręczne**: wklej lub wpisz kod biletu.

Wynik wyświetla się w kolorze (ważny, już wykorzystany, anulowany, nieprawidłowy), a dziennik ostatnich skanów pomaga obsłudze wejścia. Zatwierdzony bilet przechodzi w status **wykorzystany** i nie może zostać użyty ponownie.

## Cykl życia biletu

- **reserved**: miejsce wybrane, zablokowane do wygaśnięcia rezerwacji;
- **valid**: zamówienie opłacone i uzgodnione (ważne stają się wyłącznie miejsca faktycznie opłacone);
- **used**: bilet zeskanowany przy wejściu;
- **cancelled**: zamówienie anulowane lub zwrócone;
- **expired**: niepotwierdzona rezerwacja, która wygasła.

## Zarządzanie biletami w panelu

Zakładka **Bilety** wypisuje wszystkie bilety wraz z wydarzeniem, miejscem, klientem, zamówieniem, statusem i datą wystawienia. Listę można filtrować, dostępne jest też **anulowanie grupowe**. Filtr według wydarzenia jest dostępny z poziomu panelu stref.

## Zgodność i kwestie techniczne

- PrestaShop 8.0 do 9.x, multisklep, wielojęzyczność (FR, EN, ES, DE, IT);
- PHP 7.4 do 8.3;
- kontrolery `ModuleAdminController` (zgodność PS8/9, bez kontrolerów Symfony);
- wbudowane QR (biblioteka na licencji MIT) i PDF (natywny TCPDF), bez zależności Composer.

## Rozwiązywanie problemów

### Widget wyboru nie pojawia się na karcie produktu

Sprawdź, czy wydarzenie jest **aktywne**, czy jest powiązane z właściwym produktem i czy moduł jest podpięty do hooków karty produktu. Wyczyść pamięć podręczną.

### Po instalacji lub aktualizacji pojawia się biała strona

Wyczyść pamięć podręczną PrestaShop, aby odbudować indeks klas, a następnie przeładuj ekran.

### Kamera nie uruchamia się na ekranie skanowania

Skanowanie kamerą wymaga bezpiecznego kontekstu (HTTPS) oraz zgody na dostęp do kamery. W przeciwnym razie skorzystaj z ręcznego wprowadzania kodu.

### Ceny lub podatki wyglądają na nieprawidłowe

Upewnij się, że każda strefa wskazuje właściwy wariant produktu: to PrestaShop wylicza cenę i VAT na podstawie tej kombinacji.
