feat(02-purchase-event-prepayment): move purchase event to przelewy24 pre-payment page
Phase 2 complete: - buildPurchaseDataLayer() called in przelewy24() controller, payload passed to template - dataLayer.push added to templates/tickets/przelewy24.php (fires at order commitment) - dataLayer.push removed from templates/tickets/order-confirm.php - Captures 100% of orders regardless of user returning from payment gateway Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,11 +1,17 @@
|
||||
# Roadmap: bilety.brzezovka.pl
|
||||
# Roadmap: bilety.brzezovka.pl
|
||||
|
||||
## Overview
|
||||
W najblizszej iteracji skupiamy sie na uzupelnieniu warstwy analitycznej po zakupie biletow, tak aby tracking ecommerce byl kompletny i wiarygodny.
|
||||
W najblizszej iteracji skupiamy sie na uzupelnieniu warstwy analitycznej po zakupie biletow, tak aby tracking ecommerce byl kompletny i wiarygodny, oraz na zgodnosci z RODO poprzez wdrozenie banera zgody na cookies.
|
||||
|
||||
## Current Milestone
|
||||
**v0.1 Initial Release** (v0.1.0)
|
||||
Status: Complete
|
||||
**v0.2 Analytics & Privacy** (v0.2.0)
|
||||
Status: In progress
|
||||
Phases: 1 of 2 complete
|
||||
|
||||
## Previous Milestones
|
||||
|
||||
### v0.1 Initial Release
|
||||
Status: Complete (2026-04-19)
|
||||
Phases: 1 of 1 complete
|
||||
|
||||
## Phases
|
||||
@@ -13,24 +19,64 @@ Phases: 1 of 1 complete
|
||||
| Phase | Name | Plans | Status | Completed |
|
||||
|-------|------|-------|--------|-----------|
|
||||
| 1 | Purchase Data Layer | 1 | Complete | 2026-04-19 |
|
||||
| 2 | Purchase Event Pre-Payment | 1 | Complete | 2026-04-26 |
|
||||
| 3 | Cookie Consent Banner | 1 | Not started | — |
|
||||
|
||||
## Phase Details
|
||||
|
||||
### Phase 1: Purchase Data Layer
|
||||
### Phase 1: Purchase Data Layer (v0.1 — Complete)
|
||||
|
||||
**Goal:** Dodac event purchase do data layer po finalizacji zakupu biletow z kompletnym payloadem.
|
||||
**Depends on:** Nothing (first phase)
|
||||
**Research:** Unlikely (istniejaca logika checkout jest dostepna w repo)
|
||||
|
||||
**Scope:**
|
||||
- Zlokalizowanie miejsca finalizacji zamowienia
|
||||
- Budowa payloadu purchase z danymi transakcji i pozycji
|
||||
- Bezpieczne wystawienie danych do warstwy widoku (escape i brak XSS)
|
||||
- Walidacja braku duplikacji eventu
|
||||
|
||||
**Plans:**
|
||||
- [x] 01-01: Implementacja i walidacja eventu purchase w data layer (UNIFY complete)
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: Purchase Event Pre-Payment
|
||||
|
||||
**Goal:** Przenieść event purchase do momentu przekierowania na bramkę płatniczą (po złożeniu zamówienia, przed płatnością Przelewy24).
|
||||
**Depends on:** Phase 1 (purchase payload builder already implemented)
|
||||
**Research:** Not needed (flow is clear from existing code)
|
||||
|
||||
**Context:**
|
||||
- GTM (GTM-TW9WCD9J) jest już wdrożony w layout-logged.php
|
||||
- Aktualnie event purchase fires na order-confirm (po płatności)
|
||||
- Cel: przenieść event na przelewy24 (po złożeniu zamówienia w DB, przed redirect do P24)
|
||||
- Uwaga: strona przelewy24.php auto-submits formularz — GTM/GA4 używa beacon transport (navigator.sendBeacon), więc event powinien dotrzeć przed nawigacją
|
||||
|
||||
**Scope:**
|
||||
- Wywołanie buildPurchaseDataLayer() w metodzie przelewy24() kontrolera
|
||||
- Dodanie dataLayer push do templates/tickets/przelewy24.php
|
||||
- Usunięcie purchase push z templates/tickets/order-confirm.php
|
||||
|
||||
**Plans:**
|
||||
- [ ] 02-01: Przeniesienie eventu purchase na stronę przelewy24
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: Cookie Consent Banner
|
||||
|
||||
**Goal:** Wdrożyć baner zgody na cookies (CookieNoticePro) z Google Consent Mode v2 i naprawić błąd analityki w bibliotece.
|
||||
**Depends on:** Phase 2 (niezależna, ale logicznie po Phase 2 dla spójności analitycznej)
|
||||
**Research:** Not needed (biblioteka dostępna w pomysloweprezenty.pl/libraries/CookieNoticePro/)
|
||||
|
||||
**Context:**
|
||||
- Biblioteka: c:\visual studio code\projekty\pomysloweprezenty.pl\libraries\CookieNoticePro\
|
||||
- Bug do naprawienia: w cookienoticepro.script.js ~linia 351, gdy analytics NIE jest zaakceptowane, kod wywołuje gtag('consent','update',{'analytics_storage':'granted'}) zamiast 'denied'
|
||||
- Inicjalizacja Consent Mode v2 musi być PRZED snippetem GTM w <head>
|
||||
- Tylko layout-logged.php jest używany (layout-unlogged.php nie jest renderowany)
|
||||
|
||||
**Scope:**
|
||||
- Kopiowanie plików CookieNoticePro do libraries/CookieNoticePro/
|
||||
- Naprawa błędu analytics_storage w cookienoticepro.script.js
|
||||
- Dodanie consent mode v2 default init przed GTM w layout-logged.php
|
||||
- Integracja CSS/JS banera + inicjalizacja w layout-logged.php
|
||||
|
||||
**Plans:**
|
||||
- [ ] 03-01: Integracja CookieNoticePro + Consent Mode v2
|
||||
|
||||
---
|
||||
*Roadmap created: 2026-04-19*
|
||||
*Last updated: 2026-04-19*
|
||||
*Last updated: 2026-04-26 — Added v0.2 milestone (Phase 2 + Phase 3)*
|
||||
|
||||
Reference in New Issue
Block a user