@extends('layouts.app') @section('title', 'Product List') @section('page', 'products') @section('productsNav', 'list') @php $statusVariant = fn ($s) => match ($s) { 'Active' => 'success', 'Low stock' => 'warning', 'Out of stock', 'Inactive' => 'danger', default => 'neutral', }; $totalProducts = $products->count(); $activeProducts = $products->filter(fn ($p) => $p->stockLabel() === 'Active')->count(); $lowStockProducts = $products->filter(fn ($p) => $p->stockLabel() === 'Low stock')->count(); $outOfStockProducts = $products->filter(fn ($p) => $p->stockLabel() === 'Out of stock')->count(); $inactiveProducts = $products->filter(fn ($p) => $p->stockLabel() === 'Inactive')->count(); @endphp @section('content') @include('partials.products-nav') @if (session('success')) {{ session('success') }} @endif @if ($errors->any()) {{ $errors->first() }} @endif

Total Products

{{ $totalProducts }}

All products in inventory

Active Products

{{ $activeProducts }}

Currently active

Low Stock

{{ $lowStockProducts }}

Need restocking

Out of Stock

{{ $outOfStockProducts }}

Currently unavailable

Inactive

{{ $inactiveProducts }}

Not available for sale

@foreach ($priceGroups as $group) @endforeach @forelse ($products as $row) @php $label = $row->stockLabel(); $imageUrl = $row->imageUrl(); $desc = trim((string) $row->description); $priceMap = $row->prices->pluck('amount', 'price_group_id'); $pricesPayload = []; foreach ($priceGroups as $group) { $pricesPayload[(string) $group->id] = (float) ($priceMap[$group->id] ?? 0); } @endphp
@if ($imageUrl) @else @endif {{ $row->name }} @if ($desc !== '') {{ \Illuminate\Support\Str::limit($desc, 42) }} @endif
{{ $row->code }} {{ $row->category?->name ?? '—' }} {{ money($row->cost) }} @foreach ($priceGroups as $group) {{ money($priceMap[$group->id] ?? 0) }} @endforeach {{ $row->stock }} {{ $label }} @if ($row->show_in_app) Shown @else Hidden @endif
@empty No products yet. Add your first product. @endforelse
@endsection @push('styles') @endpush @push('scripts') @endpush