has('search')) { $searchTerm = $request->input('search'); $query->where(function($q) use ($searchTerm) { $q->where('name', 'like', "%{$searchTerm}%") ->orWhere('sku', 'like', "%{$searchTerm}%"); }); } // Filtros base para la grilla $query->whereIn('type', ['bike', 'accessory', 'clothing', 'spare']); $query->where('stock_quantity', '>', 0); // Solo mostrar si tiene stock // Resultados paginados $products = $query->paginate(12)->withQueryString(); // --- 2. CONSULTA PARA EL BUSCADOR SELECT2 (TODOS) --- // Traemos todos los productos válidos para llenar el desplegable de búsqueda rápida. // Hacemos la misma validación de stock y tipo para no mostrar cosas agotadas. $allProducts = Product::whereIn('type', ['bike', 'accessory', 'clothing', 'spare']) ->where('stock_quantity', '>', 0) ->orderBy('name') // Ordenados alfabéticamente ->get(); // Devuelve la vista pasando ambas variables return view('catalogo.index', compact('products', 'allProducts')); } public function show(Product $product) { return view('catalogo.show', compact('product')); } }