- 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:
@@ -1,10 +1,14 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\CheckoutController;
|
||||
use App\Http\Controllers\CheckoutGoogleController;
|
||||
use App\Http\Controllers\LocaleController;
|
||||
use App\Http\Controllers\LegalPageController;
|
||||
use App\Http\Controllers\MarketingController;
|
||||
use App\Http\Controllers\Tenant\EventPhotoArchiveController;
|
||||
use App\Http\Controllers\PayPalController;
|
||||
use App\Http\Controllers\PayPalWebhookController;
|
||||
use App\Models\Package;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Inertia\Inertia;
|
||||
|
||||
@@ -50,11 +54,31 @@ Route::middleware('auth')->group(function () {
|
||||
->name('tenant.events.photos.archive');
|
||||
});
|
||||
|
||||
Route::get('/purchase-wizard/{package}', [CheckoutController::class, 'show'])->name('purchase.wizard');
|
||||
Route::get('/checkout/{package}', [CheckoutController::class, 'show'])->name('checkout.show');
|
||||
if (config('checkout.enabled')) {
|
||||
Route::get('/purchase-wizard/{package}', [CheckoutController::class, 'show'])->name('purchase.wizard');
|
||||
Route::get('/checkout/{package}', [CheckoutController::class, 'show'])->name('checkout.show');
|
||||
} else {
|
||||
Route::get('/purchase-wizard/{package}', function (Package $package) {
|
||||
return redirect()->route('packages', ['highlight' => $package->slug]);
|
||||
})->name('purchase.wizard');
|
||||
|
||||
Route::get('/checkout/{package}', function (Package $package) {
|
||||
return redirect()->route('packages', ['highlight' => $package->slug]);
|
||||
})->name('checkout.show');
|
||||
}
|
||||
Route::post('/checkout/login', [CheckoutController::class, 'login'])->name('checkout.login');
|
||||
Route::post('/checkout/register', [CheckoutController::class, 'register'])->name('checkout.register');
|
||||
Route::get('/checkout/auth/google', [CheckoutGoogleController::class, 'redirect'])->name('checkout.google.redirect');
|
||||
Route::get('/checkout/auth/google/callback', [CheckoutGoogleController::class, 'callback'])->name('checkout.google.callback');
|
||||
Route::post('/stripe/create-payment-intent', [CheckoutController::class, 'createPaymentIntent'])->name('stripe.create-payment-intent');
|
||||
Route::post('/stripe/confirm-payment', [CheckoutController::class, 'confirmPayment'])->name('stripe.confirm-payment');
|
||||
Route::post('/checkout/track-abandoned', [CheckoutController::class, 'trackAbandonedCheckout'])->name('checkout.track-abandoned');
|
||||
Route::post('/set-locale', [LocaleController::class, 'set'])->name('set-locale');
|
||||
|
||||
Route::middleware('auth')->group(function () {
|
||||
Route::post('/paypal/create-order', [PayPalController::class, 'createOrder'])->name('paypal.create-order');
|
||||
Route::post('/paypal/capture-order', [PayPalController::class, 'captureOrder'])->name('paypal.capture-order');
|
||||
Route::post('/paypal/create-subscription', [PayPalController::class, 'createSubscription'])->name('paypal.create-subscription');
|
||||
});
|
||||
|
||||
Route::post('/paypal/webhook', [PayPalWebhookController::class, 'verify'])->name('paypal.webhook');
|
||||
|
||||
Reference in New Issue
Block a user