Files
bilety.brzezovka.pl/.paul/PROJECT.md
Jacek Pyziak 28b7a1dd54 feat(05-purchase-redirect-hardening): harden purchase redirect tracking
Phase 5 complete:

- guard purchase event per transaction in sessionStorage

- restore saved consent before GTM and purchase

- add centered Przelewy24 countdown redirect
2026-05-08 23:56:37 +02:00

58 lines
2.9 KiB
Markdown

# Project: bilety.brzezovka.pl
## Description
Aplikacja webowa do sprzedazy biletow online z obsluga zamowien, platnosci i komunikacji potransakcyjnej.
## Core Value
Uzytkownicy moga szybko i bezpiecznie kupic bilety online oraz otrzymac natychmiastowe potwierdzenie zakupu.
## Requirements
### Must Have
- [x] Obsluga zakupu biletow end-to-end (wybor, checkout, finalizacja)
- [x] Poprawne rejestrowanie zamowien i danych transakcyjnych
- [x] Data layer purchase po finalizacji zakupu (wdrozone w Phase 1)
- [x] Event purchase capturuje 100% zamowien - fires przy skladaniu, nie przy powrocie z P24 (Phase 2)
- [x] Zgodnosc z RODO - baner zgody na cookies z Google Consent Mode v2 (Phase 3)
- [x] Baner cookies dziala bez bledu `injectScripts is not defined` (Phase 4)
- [x] Event purchase ma zabezpieczenie przed duplikatem przy odswiezeniu strony Przelewy24 (Phase 5)
- [x] Przekierowanie do Przelewy24 dziala automatycznie po 5 sekundach z czytelnym komunikatem (Phase 5)
### Should Have
- [x] Spojny tracking analityczny dla zdarzen ecommerce
- Walidacja danych telemetrycznych i brak duplikatow eventow
### Nice to Have
- Rozszerzony monitoring jakosci danych analitycznych
## Constraints
- PHP + Medoo + prepared statements bez sklejania SQL
- Bez logiki biznesowej w widokach
- Bez zmian poza zakresem ecommerce tracking/cookie consent dla aktualnej pracy
## Key Decisions
| Decision | Phase | Impact |
|----------|-------|--------|
| Event purchase na order-confirm (post-payment) | Phase 1 | Eliminuje falszywe konwersje |
| ZMIANA: Event purchase na przelewy24 (pre-payment, post-order) | Phase 2 | Capturuje 100% zamowien, beacon transport |
| Payload ecommerce budowany w backendzie | Phase 1 | Bezpieczenstwo, brak XSS |
| cookieNoticePro.init() zamiast $.fn.cookieNoticePro() | Phase 3 | Zgodnie z dokumentacja biblioteki |
| Consent Mode v2 default-denied przed GTM snippetem | Phase 3 | Wymog Google od marca 2024 |
| Usuniecie niezdefiniowanego injectScripts() | Phase 4 | Naprawia blad konsoli przy cookies bez zmiany GTM/Consent Mode |
| Purchase guard w sessionStorage per transaction_id | Phase 5 | Chroni przed duplikatem eventu przy odswiezeniu strony |
| Restore zapisanych zgod przed GTM | Phase 5 | Purchase uruchamia sie z poprawnym stanem Consent Mode |
## Success Criteria
- Event purchase trafia do data layer po zlozeniu zamowienia (osiagniete - Phase 2)
- Payload zawiera wszystkie dostepne dane transakcyjne i produktowe
- Integracja nie wplywa negatywnie na istniejacy checkout
- Baner cookies zgodny z RODO + Google Consent Mode v2 (osiagniete - Phase 3)
- Baner cookies nie generuje bledu `injectScripts is not defined` (osiagniete - Phase 4)
- Purchase nie duplikuje sie po odswiezeniu strony Przelewy24 w tej samej sesji przegladarki (osiagniete - Phase 5)
- Przelewy24 redirect jest automatyczny i poprzedzony czytelnym alertem z odliczaniem (osiagniete - Phase 5)
---
*Created: 2026-04-19 20:20*
*Last updated: 2026-05-08 after Phase 5 (v0.4 complete)*