{{-- The checkout page. Two columns: left is contact + billing + shipping + shipping method, right is the order summary (the same cart-body partial the drawer uses, minus its own "Checkout" CTA — see .bbk-checkout-summary in checkout.css). Stops short of payment for this slice — see CheckoutController's class docblock. $cart, $lines, $billingAddress, $shippingAddress, $shippingOptions, $countries come from CheckoutController::show(). --}} @extends('layouts.app') @section('title', __('checkout.page.title') . ' — ' . config('app.name')) @section('content')

{{ __('checkout.page.title') }}

{{-- Contact --}}
{{-- Abandoned-cart-recovery opt-in. Optional, unticked, never required — direct marketing under ePrivacy (GR L. 3471/2006 art. 11), so it needs an explicit opt-in and checkout can't be gated on it. Narrow scope by design (boboko-core's setRecoveryConsent) — a general newsletter opt-in, if wanted, is a separate checkbox. --}}
{{-- Not wired yet — Modules\Core\Auth\Services\UserOtpService exists (email + one-time code, passwordless) but nothing in the storefront calls it yet. UI placeholder only; see project notes. --}}
{{-- Autosaves — no submit button. Any `change` inside .bbk-checkout-main (this form, plus the contact email/consent which sit outside it but link via form="bbk-address-form") is debounced and POSTed as the whole form; the shipping-method radios are excluded in scheduleSave(). --}}
@csrf {{-- Billing --}}

{{ __('checkout.page.billing_heading') }}

{{-- Shipping --}}

{{ __('checkout.page.shipping_heading') }}

{{-- Shipping method — resolves from the saved shipping address; re-rendered as a fragment by bbk-checkout-form after each autosave / option change. --}}

{{ __('checkout.page.shipping_method_heading') }}

@include('checkout::partials.shipping-options', [ 'shippingAddress' => $shippingAddress, 'shippingOptions' => $shippingOptions, ])
{{-- TODO: payment — next slice. boboko-core's Offline driver is the only one fully wired end-to-end today; Stripe needs its client_secret / 3-D Secure continuation handled before it can drive a real form here. --}}
@endsection