{{-- Shipping methods for the checkout page. Rendered inline by page.blade.php on load, and re-rendered as a fragment by CheckoutController after every address save / option change (bbk-checkout-form swaps it in). Radios autosave via bbk-checkout-form#selectShipping โ€” no submit button. A single resolved option is auto-selected server-side and shown as a fixed line. $shippingAddress, $shippingOptions come from the controller / page scope. --}} @php($selected = $shippingAddress?->shipping_option) {{-- Rate resolution needs country (always Greece here) + postcode; until a postcode is saved there's nothing to quote against yet. --}} @if (! $shippingAddress?->postcode)

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

@elseif ($shippingOptions->isEmpty())

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

@elseif ($shippingOptions->count() === 1) @php($only = $shippingOptions->first())
{{ $only->name }} @if ($only->description) {{ strip_tags($only->description) }} @endif {{ $only->price->formatted() }}
@else
@foreach ($shippingOptions as $option) @endforeach
@endif {{-- Dummy Box Now locker picker โ€” a Leaflet map standing in for Box Now's own Destination Map JS widget, which only talks to their Production API (not Stage/sandbox โ€” see their Partner API manual ยง4.1), making it useless for local/staging development. Backed by the same GET /destinations data (including lat/lng) via CheckoutController::boxNowLockers(). Only shown once the "box-now" shipping option is selected (bbk-checkout-form toggles [hidden] on shipping-option change; see bbk-box-now-locker Stimulus controller). Persists the choice via a separate autosave POST (checkout.box-now.locker.select) rather than piggybacking on the shipping-option field, since the two are independent pieces of state (method vs. destination) that CheckoutService models as two calls (selectShippingOption() / selectBoxNowLocker()). --}}