getConnection(); // Inicializar modelo de productos $producto = new Producto($db); $productos_nuevos = $producto->obtenerRecienLlegados(6)->fetchAll(PDO::FETCH_ASSOC); $productos_mas_vendidos = $producto->obtenerMasVendidos(6)->fetchAll(PDO::FETCH_ASSOC); $productos_recomendados = $producto->obtenerRecomendados(6)->fetchAll(PDO::FETCH_ASSOC); // Función para mostrar estrellas de calificación function mostrarEstrellas($calificacion) { $html = ''; $calif_int = intval($calificacion); for($i = 1; $i <= 5; $i++) { if($i <= $calif_int) { $html .= '
  • '; } else { $html .= '
  • '; } } return $html; } // Función para obtener la primera imagen del producto function obtenerPrimeraImagen($producto_id, $db) { $query = "SELECT url_imagen_thumb FROM producto_imagenes WHERE producto_id = :producto_id ORDER BY es_principal DESC, orden ASC LIMIT 1"; $stmt = $db->prepare($query); $stmt->bindParam(":producto_id", $producto_id); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); return isset($result['url_imagen_thumb']) ? $result['url_imagen_thumb'] : 'images/product/large-size/1.jpg'; } function renderizarProducto($prod, $db) { // Calcular descuento si existe precio de oferta $tiene_descuento = false; $porcentaje_descuento = 0; $precio_final = $prod['precio']; if(isset($prod['precio_oferta']) && $prod['precio_oferta'] > 0 && $prod['precio_oferta'] < $prod['precio']) { $tiene_descuento = true; $porcentaje_descuento = round((($prod['precio'] - $prod['precio_oferta']) / $prod['precio']) * 100); $precio_final = $prod['precio_oferta']; } // Obtener imagen del producto $imagen_producto = obtenerPrimeraImagen($prod['id'], $db); // Obtener calificación promedio del producto $query_rating = "SELECT AVG(calificacion) as promedio FROM opiniones WHERE producto_id = :producto_id AND aprobado = 1"; $stmt_rating = $db->prepare($query_rating); $stmt_rating->bindParam(":producto_id", $prod['id']); $stmt_rating->execute(); $rating_result = $stmt_rating->fetch(PDO::FETCH_ASSOC); $calificacion = isset($rating_result['promedio']) ? floatval($rating_result['promedio']) : 3; ?>
    <?php echo htmlspecialchars($prod['nombre']); ?> -%

    $ $ $
    obtenerArbolCategorias(); // IDs de categorias a mostrar en el index (configurable) $categorias_mostrar = [1, 2, 3, 4, 5, 6, 7]; // Consulta para obtener las categorias principales $query_categorias = "SELECT id, nombre, slug, descripcion FROM categorias WHERE parent_id IS NULL AND activo = 1 AND id IN (" . implode(',', array_map('intval', $categorias_mostrar)) . ") ORDER BY FIELD(id, " . implode(',', array_map('intval', $categorias_mostrar)) . ")"; $stmt_cat = $db->prepare($query_categorias); $stmt_cat->execute(); $categorias_principales = $stmt_cat->fetchAll(PDO::FETCH_ASSOC); // Funcion para obtener productos por categoria (incluye subcategorias) function obtenerProductosPorCategoriaConSub($categoria_id, $db, $limite = 8) { $query = "SELECT p.id, p.nombre, p.precio, p.precio_oferta, p.stock, p.marca, p.subcategoria_id, s.nombre AS subcategoria_nombre, (SELECT pi.url_imagen_thumb FROM producto_imagenes pi WHERE pi.producto_id = p.id ORDER BY pi.es_principal DESC, pi.orden ASC LIMIT 1) AS imagen FROM productos p LEFT JOIN subcategorias s ON p.subcategoria_id = s.id WHERE p.categoria_id = :categoria_id AND p.activo = 1 AND p.stock > 0 ORDER BY p.destacado DESC, p.fecha_creacion DESC LIMIT :limite"; $stmt = $db->prepare($query); $stmt->bindParam(':categoria_id', $categoria_id, PDO::PARAM_INT); $stmt->bindParam(':limite', $limite, PDO::PARAM_INT); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); } Venta Empresa || Inghealthy - Tecnologia para El Cuidado de Tu Salud

    Ventas Institucionales

    Si eres empresa y requires cotización de productos o realizar compras con factura electrónica, te invitamos a contactarnos a través de los siguientes medios:

    Direccion

    Calle 14 # 8 - 39 local 2 – Valledupar

    Telefono

    Mobil: 315 6829123

    Whatsapp: 315 6829123

    Email

    ventas@inghealthy.free.nf

    Cuentanos en que podemos ayudarte