Introduccion
Un dashboard personalizado puede transformar por completo la forma en que gestionas tu tienda PrestaShop. A diferencia de los módulos estándar o del back-office, un panel externo en PHP puede mostrar justo las métricas que necesitas, conectarse directamente a la base de datos y actualizarse en tiempo real.
En este artículo aprenderás a crear un dashboard desde cero con PHP y MySQL que muestra estadísticas clave de tu tienda: ventas, pedidos, productos con más movimiento, y más. Todo con código reutilizable, consultas optimizadas e imágenes de ejemplo.
- ¿Por qué crear un dashboard personalizado?
Ventajas | Descripción |
🔍 Métricas a medida | Solo ves lo que realmente importa para tu negocio |
📡 Datos en tiempo real | Sin retrasos de caché ni agregaciones lentas |
🔐 Control total | Puedes integrar métricas de ERP o externas |
💰 Sin costes adicionales | No dependes de módulos pagos o suscripciones |
Un dashboard externo puede ser una página segura alojada en tu servidor o una app interna conectada por VPN.
- Requisitos previos y conexión con la base de datos
- Acceso al servidor donde se aloja PrestaShop
- Conocimiento de la estructura de la base de datos
- PHP 7.4+ y MySQL 5.7+ recomendados
Ejemplo de conexión
$mysqli = new mysqli('localhost', 'usuario', 'clave', 'basededatos'); if ($mysqli->connect_error) { die('Error de conexión: ' . $mysqli->connect_error); }
- Lógica de actualización: qué campos modificar
Campo | Tabla | Método PHP sugerido |
Precio | ps_product / ps_product_attribute | setPrice() y setRegularPrice() |
Stock | ps_stock_available | StockAvailable::setQuantity() |
Se puede trabajar tanto con productos simples como combinaciones, pero en este ejemplo usaremos productos base identificados por referencia.
Estructura HTML sugerida
<div class=»dashboard»>
<div class=»card»>Total Ventas Hoy: <span id=»ventas_hoy»></span></div>
<div class=»card»>Pedidos Hoy: <span id=»pedidos_hoy»></span></div>
</div>
Puedes usar frameworks como Bootstrap o Tailwind para darle diseño profesional.
- Consultas SQL clave para estadísticas
Total de ventas hoy
SELECT SUM(total_paid) AS ventas
FROM ps_orders
WHERE DATE(date_add) = CURDATE();
Total de pedidos hoy
SELECT COUNT(*) AS pedidos
FROM ps_orders
WHERE DATE(date_add) = CURDATE();
Top 5 productos más vendidos
SELECT pl.name, SUM(od.product_quantity) AS cantidad
FROM ps_order_detail od
JOIN ps_product_lang pl ON od.product_id = pl.id_product
GROUP BY od.product_id
ORDER BY cantidad DESC
LIMIT 5;
Productos con stock bajo
SELECT p.reference, sa.quantity
FROM ps_stock_available sa
JOIN ps_product p ON p.id_product = sa.id_product
WHERE sa.quantity < 5;
<?php require(dirname(__FILE__).'/config/config.inc.php'); require(dirname(__FILE__).'/init.php'); $file = fopen('precios.csv', 'r'); $first = true; while (($line = fgetcsv($file, 1000, ",")) !== FALSE) { if ($first) { $first = false; continue; } list($ref, $price, $qty) = $line; $id = (int)Product::getIdByReference($ref); if (!$id) continue; $product = new Product($id); $product->setPrice($price); $product->setRegularPrice($price); $product->save(); StockAvailable::setQuantity($id, 0, (int)$qty); } fclose($file); echo "Actualización completa."; ?>
- Integración en PHP con panel visual
Código PHP ejemplo
$sql = "SELECT SUM(total_paid) AS ventas FROM ps_orders WHERE DATE(date_add) = CURDATE()"; $result = $mysqli->query($sql); $ventas = $result->fetch_assoc()['ventas'];
Y lo inyectas en HTML:
<div class="card">
Total Ventas Hoy: <?php echo number_format($ventas, 2); ?> €
</div>
Puedes usar JavaScript o AJAX para recargarlo cada 30 segundos si lo necesitas en tiempo real.
- Seguridad y control de acceso
No olvides proteger el dashboard con autenticación:
session_start();
if (!isset($_SESSION['user'])) {
header('Location: login.php'); exit();
}
Opcionalmente, limita IPs desde el servidor o usa .htaccess para restringir accesos externos.
- Comparativa con módulos de PrestaShop
Solución | Ventajas | Desventajas |
Dashboard PHP propio | Gratis, flexible, personalizable | Requiere desarrollo |
Módulos del back-office | Listo para usar, integrado | Menos flexible, menor rendimiento |
Soluciones de terceros (Power BI, Metabase) | Visualmente avanzadas | Coste y curva de aprendizaje |
Conclusión
Construir un dashboard en PHP conectado a tu tienda PrestaShop es una forma directa y eficaz de tener el control de tus métricas clave. A diferencia de los módulos o herramientas externas, puedes decidir qué mostrar, cómo visualizarlo y con qué frecuencia actualizarlo.
Ideal para equipos internos, gestores de eCommerce o agencias que necesitan informes a medida sin depender del back-office.