- Wired the checkout wizard for Google “comfort login”: added Socialite controller + dependency, new Google env

hooks in config/services.php/.env.example, and updated wizard steps/controllers to store session payloads,
attach packages, and surface localized success/error states.
- Retooled payment handling for both Stripe and PayPal, adding richer status management in CheckoutController/
PayPalController, fallback flows in the wizard’s PaymentStep.tsx, and fresh feature tests for intent
creation, webhooks, and the wizard CTA.
- Introduced a consent-aware Matomo analytics stack: new consent context, cookie-banner UI, useAnalytics/
useCtaExperiment hooks, and MatomoTracker component, then instrumented marketing pages (Home, Packages,
Checkout) with localized copy and experiment tracking.
- Polished package presentation across marketing UIs by centralizing formatting in PresentsPackages, surfacing
localized description tables/placeholders, tuning badges/layouts, and syncing guest/marketing translations.
- Expanded docs & reference material (docs/prp/*, TODOs, public gallery overview) and added a Playwright smoke
test for the hero CTA while reconciling outstanding checklist items.
This commit is contained in:
Codex Agent
2025-10-19 11:41:03 +02:00
parent ae9b9160ac
commit a949c8d3af
113 changed files with 5169 additions and 712 deletions

View File

@@ -50,5 +50,33 @@
"email_verify_title": "E-Mail verifizieren",
"email_verify_desc": "Bitte überprüfen Sie Ihre E-Mail und klicken Sie auf den Verifizierungslink.",
"language_select": "Sprache wählen"
},
"consent": {
"banner": {
"title": "Wir respektieren deine Privatsphäre",
"body": "Wir verwenden Cookies für notwendige Funktionen und optionale Analysen zur Verbesserung. Du entscheidest, was erlaubt ist.",
"accept": "Alle akzeptieren",
"reject": "Nur notwendige",
"customize": "Individuell auswählen"
},
"modal": {
"title": "Privatsphäre-Einstellungen",
"description": "Lege fest, wie wir Cookies und ähnliche Technologien nutzen. Du kannst deine Auswahl jederzeit ändern.",
"functional": "Notwendige Cookies",
"functional_desc": "Wichtig für sicheren Login, Spracheinstellungen und die Grundfunktionen der Website.",
"analytics": "Analyse",
"analytics_desc": "Hilft uns mit Matomo, die Nutzung zu verstehen und Angebote zu verbessern.",
"required": "Pflicht",
"save": "Auswahl speichern",
"cancel": "Abbrechen",
"accept_all": "Alle akzeptieren",
"reject_all": "Nur notwendige"
},
"accessibility": {
"banner_label": "Cookie-Hinweis"
},
"footer": {
"manage_link": "Cookie-Einstellungen"
}
}
}
}

View File

@@ -12,6 +12,7 @@
"hero_title": "Fotospiel",
"hero_description": "Sammle Gastfotos für Events mit QR-Codes. Unsere sichere PWA-Plattform für Gäste und Organisatoren einfach, mobil und datenschutzkonform. Besser als Konkurrenz, geliebt von Tausenden.",
"cta_explore": "Pakete entdecken",
"cta_explore_highlight": "Jetzt loslegen",
"hero_image_alt": "Event-Fotos mit QR-Code",
"how_title": "So funktioniert es",
"step1_title": "Paket wählen",
@@ -62,6 +63,7 @@
"hero_title": "Entdecken Sie unsere flexiblen Packages",
"hero_description": "Von kostenlosem Einstieg bis Premium-Features: Passen Sie Ihr Event-Paket an Ihre Bedürfnisse an. Einfach, sicher und skalierbar.",
"cta_explore": "Pakete entdecken",
"cta_explore_highlight": "Lieblingspaket sichern",
"tab_endcustomer": "Endkunden",
"tab_reseller": "Reseller & Agenturen",
"section_endcustomer": "Packages für Endkunden (Einmalkauf pro Event)",
@@ -115,8 +117,16 @@
"feature_overview": "Feature-Überblick",
"order_hint": "Sofort startklar keine versteckten Kosten, sichere Zahlung via Stripe oder PayPal.",
"features_label": "Features",
"feature_highlights": "Feature-Highlights",
"more_details_tab": "Mehr Details",
"quick_facts": "Schnelle Fakten",
"quick_facts_hint": "Der schnelle Überblick über die wichtigsten Kennzahlen.",
"more_details_link": "Noch mehr Details anzeigen",
"badge_deep_dive": "Deep Dive",
"breakdown_label": "Leistungsübersicht",
"breakdown_label_hint": "Erfahre, wie das Paket im Detail aufgebaut ist.",
"limits_label": "Limits & Kapazitäten",
"limits_label_hint": "Alle Kennzahlen auf einen Blick ideal für Planung und Freigaben.",
"for_endcustomers": "Für Endkunden",
"for_resellers": "Für Reseller",
"details_show": "Details anzeigen",
@@ -378,7 +388,12 @@
"next_to_payment": "Weiter zur Zahlung",
"switch_to_register": "Registrieren",
"switch_to_login": "Anmelden",
"google_coming_soon": "Google-Login kommt bald im Comfort-Delta."
"continue_with_google": "Mit Google fortfahren",
"google_success_toast": "Mit Google angemeldet.",
"google_error_title": "Google-Anmeldung fehlgeschlagen",
"google_missing_package": "Bitte wähle zuerst ein Paket aus, bevor du Google Login nutzt.",
"google_missing_email": "Wir konnten deine Google-E-Mail-Adresse nicht abrufen.",
"google_error_fallback": "Die Google-Anmeldung konnte nicht abgeschlossen werden. Bitte versuche es erneut."
},
"payment_step": {
"title": "Zahlung",
@@ -389,6 +404,7 @@
"activate_package": "Paket aktivieren",
"loading_payment": "Zahlungsdaten werden geladen...",
"secure_payment_desc": "Sichere Zahlung mit Kreditkarte, Debitkarte oder SEPA-Lastschrift.",
"secure_paypal_desc": "Sichere Zahlung mit PayPal.",
"payment_failed": "Zahlung fehlgeschlagen. ",
"error_card": "Kartenfehler aufgetreten.",
"error_validation": "Eingabedaten sind ungültig.",
@@ -404,7 +420,23 @@
"pay_now": "Jetzt bezahlen (€{price})",
"stripe_not_loaded": "Stripe ist nicht initialisiert. Bitte Seite neu laden.",
"network_error": "Netzwerkfehler beim Laden der Zahlungsdaten",
"payment_intent_error": "Fehler beim Laden der Zahlungsdaten"
"payment_intent_error": "Fehler beim Laden der Zahlungsdaten",
"paypal_order_error": "PayPal-Bestellung konnte nicht erstellt werden. Bitte erneut versuchen.",
"paypal_capture_error": "PayPal-Abschluss fehlgeschlagen. Bitte erneut versuchen.",
"paypal_error": "PayPal meldete einen Fehler.",
"paypal_cancelled": "Sie haben die PayPal-Zahlung abgebrochen.",
"paypal_missing_plan": "Für dieses Paket fehlt die PayPal-Plan-Konfiguration. Bitte wählen Sie eine andere Zahlungsmethode.",
"auth_required": "Bitte melde dich an, um mit der Zahlung fortzufahren.",
"status_loading": "Zahlungsvorbereitung läuft…",
"status_ready": "Zahlungsformular bereit. Bitte gib deine Daten ein.",
"status_processing": "Zahlung mit {{provider}} wird verarbeitet…",
"status_success": "Zahlung bestätigt. Wir schließen den Kauf ab…",
"status_info_title": "Zahlungsstatus",
"status_error_title": "Zahlung fehlgeschlagen",
"status_success_title": "Zahlung abgeschlossen",
"status_retry": "Erneut versuchen",
"method_stripe": "Kreditkarte (Stripe)",
"method_paypal": "PayPal"
},
"confirmation_step": {
"title": "Bestätigung",
@@ -427,7 +459,12 @@
"already_logged_in": "Sie sind bereits als {email} eingeloggt.",
"switch_to_register": "Registrieren",
"switch_to_login": "Anmelden",
"google_coming_soon": "Google-Login kommt bald im Comfort-Delta."
"continue_with_google": "Mit Google fortfahren",
"google_success_toast": "Mit Google angemeldet.",
"google_error_title": "Google-Anmeldung fehlgeschlagen",
"google_missing_package": "Bitte wähle zuerst ein Paket aus, bevor du Google Login nutzt.",
"google_missing_email": "Wir konnten deine Google-E-Mail-Adresse nicht abrufen.",
"google_error_fallback": "Die Google-Anmeldung konnte nicht abgeschlossen werden. Bitte versuche es erneut."
}
}
}