@php // Estas variables vienen del CatalogoController.php $productos = $productos ?? collect([]); $tasaDolar = $tasaDolar ?? 1; @endphp
{{-- 1. CABECERA DE ORDENAMIENTO (Limpia y profesional) --}}

Mostrando {{ $productos->firstItem() ?? 0 }} - {{ $productos->lastItem() ?? 0 }} de {{ $productos->total() }} resultados

expand_more
{{-- 2. GRID DE PRODUCTOS --}} @if($productos->count() > 0)
@foreach($productos as $index => $producto)
{{-- ÁREA DE IMAGEN (Limpia, sin overlays molestos) --}}
{{-- CARGA DE IMAGEN DESDE EL STORAGE PUBLICO --}} @if($producto->imagen_url)
@else
image Sin Imagen
@endif {{-- Badges Superior Izquierda (Solo Venta Controlada) --}}
@if($producto->es_controlado) lock Controlado @endif
{{-- Botón Favorito Superior Derecha (Estándar e-commerce) --}}
{{-- Unidad de Medida --}}
{{ $producto->unidad_medida }}
{{-- ÁREA DE INFORMACIÓN --}}
{{-- Marca y Stock --}}
verified {{ $producto->categoria->nombre ?? 'General' }}
@if($producto->stock_total > 0 && $producto->stock_total <= $producto->stock_minimo_alerta) Poco Stock @elseif($producto->stock_total > 0) Stock @endif
{{-- Título --}}

{{ $producto->nombre }}

{{ $producto->descripcion }}

{{-- Precios y Call to Action --}}
${{ number_format($producto->precio_venta_usd, 2) }} USD
Bs. {{ number_format($producto->precio_venta_usd * $tasaDolar, 2, ',', '.') }}
{{-- BOTÓN AÑADIR AL CARRITO SIEMPRE VISIBLE --}}
@endforeach
{{-- 3. PAGINACIÓN --}}
{{ $productos->links('pagination::tailwind') }}
@else {{-- 4. ESTADO VACÍO (NO HAY RESULTADOS) --}}
search_off

No encontramos resultados

No hay productos que coincidan con los filtros aplicados. Intenta cambiar de categoría o buscar con otro término.

{{-- BOTONES DEL ESTADO VACÍO --}}
{{-- Botón para abrir el Modal --}}
@endif
{{-- ================= MODAL DE SOLICITUD ================= --}}