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.

  1. ¿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.

  1. 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);
}
  1. 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.

  1. 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.";
?>
  1. 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.

  1. 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.

  1. 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.

Ir al contenido