--- phase: 11-datalayer-ga4-fix plan: 01 subsystem: frontend tags: [datalayer, ga4, gtm, ecommerce, analytics, remarketing] requires: - phase: none provides: n/a provides: - GA4-compliant dataLayer events (purchase, begin_checkout, view_item, add_to_cart, view_cart) - google_business_vertical for dynamic remarketing affects: [] tech-stack: added: [] patterns: [GA4 ecommerce item format with item_id/item_name/google_business_vertical] key-files: created: [] modified: - templates/shop-order/order-details.php - templates/shop-basket/summary-view.php - templates/shop-product/product.php - templates/shop-basket/basket.php key-decisions: - "view_cart event in basket.php (not basket-details.php) — basket-details is AJAX-replaceable" - "No user_data in purchase — requires RODO analysis, deferred" patterns-established: - "GA4 item format: item_id (string), item_name, price (number), quantity (number), google_business_vertical: retail" - "All ecommerce events must include currency: PLN" duration: 15min completed: 2026-03-25 --- # Phase 11 Plan 01: DataLayer GA4 Analytics Fix Summary **Naprawione 5 eventow dataLayer ecommerce do formatu GA4 — remarketing dynamiczny i konwersje teraz dzialaja poprawnie.** ## Performance | Metric | Value | |--------|-------| | Duration | ~15min | | Completed | 2026-03-25 | | Tasks | 2 completed | | Files modified | 4 | ## Acceptance Criteria Results | Criterion | Status | Notes | |-----------|--------|-------| | AC-1: Purchase event — format GA4 z prawidlowa cena | Pass | item_id (string), item_name, price via normalize_decimal, google_business_vertical, usuniety hardcoded value: 25.42 | | AC-2: Begin_checkout event — format GA4 | Pass | id→item_id, name→item_name, dodany google_business_vertical | | AC-3: View_item event — kompletne dane | Pass | Dodane currency: PLN, value, price jako number, google_business_vertical | | AC-4: Add_to_cart event — poprawne typy | Pass | Dodany google_business_vertical, parseInt(quantity) | | AC-5: View_cart event — nowy event | Pass | Nowy event na /koszyk z pelnym zestawem danych GA4 | ## Accomplishments - Naprawione klucze itemow we wszystkich eventach: id/name → item_id/item_name (format GA4) - Dodane brakujace pola: currency: PLN, value, google_business_vertical: retail - Usuniety hardcoded `value: 25.42` z purchase event (debug artifact) - Dodany nowy event `view_cart` na stronie koszyka /koszyk - Poprawione typy danych: price jako number (nie string), quantity jako int ## Files Created/Modified | File | Change | Purpose | |------|--------|---------| | `templates/shop-order/order-details.php` | Modified | Purchase event: item_id/item_name, fix price, remove hardcoded value, add google_business_vertical | | `templates/shop-basket/summary-view.php` | Modified | Begin_checkout event: item_id/item_name, add google_business_vertical | | `templates/shop-product/product.php` | Modified | View_item: add currency/value/google_business_vertical. Add_to_cart: add google_business_vertical, parseInt(quantity) | | `templates/shop-basket/basket.php` | Modified | New view_cart event with full GA4 item data | ## Decisions Made | Decision | Rationale | Impact | |----------|-----------|--------| | view_cart w basket.php, nie basket-details.php | basket-details jest AJAX-replaceable — script by sie odpalal przy kazdym AJAX reload | Konsystentne z decyzja z fazy 10 | | Pominiecie user_data w purchase | Wymaga analizy RODO/GDPR przed wyslaniem PII do dataLayer | Mozna dodac w przyszlosci po analizie | | GADS conversion na checkout — nie znaleziono | Grep nie znalazl hardcoded GADS conversion w szablonach — prawdopodobnie w GTM | Nie trzeba usuwac z kodu | ## Deviations from Plan None — plan executed exactly as written. ## Issues Encountered None. ## Skill Audit - /feature-dev: not invoked (optional for template-only changes) - /koniec-pracy: pending (release workflow) ## Next Phase Readiness **Ready:** - Wszystkie eventy dataLayer zgodne z GA4 - Gotowe do weryfikacji w GTM Preview / GA4 DebugView na produkcji **Concerns:** - None **Blockers:** - None --- *Phase: 11-datalayer-ga4-fix, Plan: 01* *Completed: 2026-03-25*