@extends('layouts.public') @section('content')
Products

Quote-ready products for education, medical training and labs.

Browse structured demo products across educational charts, maps, GIS solutions, nursing models and laboratory equipment.

@php $advancedOpen = $type !== '' || $sort !== 'name' || $featured; $typeOptions = ['type1' => 'E-commerce', 'type2' => 'Inquiry', 'type3' => 'Catalog Grid']; $sortOptions = ['name' => 'Name', 'latest' => 'Latest updated', 'price-low' => 'Price low to high', 'price-high' => 'Price high to low']; @endphp
$advancedOpen]) method="get" data-public-product-filter>
Reset
{{ $products->total() }} {{ \Illuminate\Support\Str::plural('product', $products->total()) }} found
@forelse($products as $product) @include('partials.product-card', ['product' => $product]) @empty

No products found

Try removing a filter or searching a broader term.

@endforelse
@if($products->hasPages()) @php $currentPage = $products->currentPage(); $lastPage = $products->lastPage(); $pageNumbers = []; foreach ([1, 2, 3, $currentPage - 1, $currentPage, $currentPage + 1, $lastPage - 1, $lastPage] as $pageCandidate) { if ($pageCandidate >= 1 && $pageCandidate <= $lastPage && ! in_array($pageCandidate, $pageNumbers, true)) { $pageNumbers[] = $pageCandidate; } } sort($pageNumbers); $previousPage = 0; @endphp @endif
@endsection