@extends('layouts.app') @section('content') @php $normalizedCheckoutItems = collect(isset($cartItems) ? $cartItems : []) ->map(function ($item) { $product = data_get($item, 'product'); $price = data_get($item, 'price'); if ($price === null) { $price = data_get($product, 'sale_price', data_get($product, 'price', 0)); } return [ 'product_id' => data_get($item, 'product_id', data_get($item, 'id')), 'name' => data_get($item, 'name', data_get($product, 'name', 'Item')), 'price' => (float) $price, 'quantity' => (int) data_get($item, 'quantity', 1), 'image' => data_get($item, 'image', data_get($product, 'image')), ]; }) ->filter(function ($item) { return !empty($item['name']) && $item['quantity'] > 0; }) ->values(); if ($normalizedCheckoutItems->isEmpty() && auth()->check()) { $normalizedCheckoutItems = auth()->user()->cartItems() ->with('product') ->get() ->map(function ($cartItem) { $product = $cartItem->product; if (!$product) { return null; } return [ 'product_id' => $product->id, 'name' => $product->name, 'price' => (float) ($product->sale_price ?? $product->price ?? 0), 'quantity' => (int) $cartItem->quantity, 'image' => $product->image, ]; }) ->filter() ->values(); } $itemCount = (int) $normalizedCheckoutItems->sum('quantity'); $itemsTotal = (float) $normalizedCheckoutItems->sum(function ($item) { return $item['price'] * $item['quantity']; }); $deliveryFeeFromController = null; if (isset($delivery_fee)) { $deliveryFeeFromController = $delivery_fee; } elseif (isset($deliveryFee)) { $deliveryFeeFromController = $deliveryFee; } $deliveryFeeIsPlaceholder = $deliveryFeeFromController === null; $deliveryFee = $deliveryFeeIsPlaceholder ? 85 : (float) $deliveryFeeFromController; $grandTotal = $itemsTotal + $deliveryFee; $savedAddress = auth()->check() ? (auth()->user()->address ?? null) : null; $customerName = auth()->check() ? (auth()->user()->name ?? '') : ''; $customerPhone = auth()->check() ? (auth()->user()->phone ?? '') : ''; $estimatedDeliveryDate = now()->addDays(3)->format('d M, Y'); @endphp
Checkout
You need at least one item in your cart before you can review shipping and payment details.
Continue Shopping{{ $savedAddress }}
@else No address saved — Add Address @endifCollect from nearby pickup point
Static checkout note for now. The pickup point text can be connected later without changing this layout.
{{ $itemCount }} item{{ $itemCount === 1 ? '' : 's' }} in this package