Cómo auditar la integridad de productos, precios, stock y categorías con SQL en PrestaShop: Guía completa para ecommerce y técnicos

¿Tu tienda PrestaShop empieza a dar datos raros en productos, precios o stock? Es más habitual de lo que parece. Migraciones, módulos de terceros o errores en la base de datos pueden dejar registros inconsistentes.

En esta guía aprenderás a auditar la integridad de tu catálogo usando consultas SQL. Te mostraré cómo detectar:

  • Productos huérfanos sin categoría.
  • Stock negativo o incoherente.
  • Precios mal asignados o a cero.
  • Problemas de duplicidad de registros.

Está pensada tanto para gerentes de ecommerce que quieren entender el problema, como para técnicos que necesitan consultas listas para trabajar.

Índice de contenidos

¿Por qué auditar tu base de datos en PrestaShop?

Los motivos principales para hacer una auditoría SQL en PrestaShop:

  • Evitar errores en catálogo visible al cliente.
  • Corregir problemas tras importaciones masivas.
  • Mejorar rendimiento del backend.
  • Garantizar que precios, stock y categorías estén bien enlazados.

Un error como un producto sin categoría puede implicar que ese producto no se muestre en la tienda aunque esté activo.

Estructura de las tablas clave en PrestaShop

Para auditar datos necesitas conocer estas tablas:

TablaDescripción
ps_productProductos básicos (id, referencias, activo, etc.)
ps_product_langTraducciones y nombres de producto.
ps_category_productRelación producto-categoría.
ps_stock_availableStock de cada producto o combinación.
ps_product_shopRelación producto-tienda (multi-store).
ps_specific_pricePrecios especiales o descuentos.

Vamos a ver cómo consultar estos datos.

Detectar productos huérfanos sin categoría

¿Por qué es un problema?

  • Un producto sin categoría no se muestra en la tienda.
  • Afecta negativamente al SEO.

Consulta SQL para encontrar productos huérfanos:

SELECT p.id_product, pl.name
FROM ps_product p
LEFT JOIN ps_category_product cp ON p.id_product = cp.id_product
LEFT JOIN ps_product_lang pl ON p.id_product = pl.id_product AND pl.id_lang = 1
WHERE cp.id_category IS NULL;

Explicación:

  • Busca productos que NO tienen relación en ps_category_product.
  • Devuelve ID y nombre para localizarlos fácilmente.

Detectar stock negativo o incoherente

PrestaShop puede tener stock negativo si hay errores en ventas o devoluciones.

Consulta SQL:

SELECT p.id_product, pl.name, sa.quantity
FROM ps_product p
JOIN ps_stock_available sa ON p.id_product = sa.id_product
JOIN ps_product_lang pl ON p.id_product = pl.id_product AND pl.id_lang = 1
WHERE sa.quantity < 0;

Explicación:

  • Te devuelve todos los productos con stock negativo.
  • Útil para corregir errores antes de rebajar stock.

Detectar productos con precio cero

Otro clásico: productos cuyo precio se ha quedado en cero tras importaciones masivas.

Consulta SQL:

SELECT p.id_product, pl.name, ps.price
FROM ps_product p
JOIN ps_product_lang pl ON p.id_product = pl.id_product AND pl.id_lang = 1
JOIN ps_product_shop ps ON p.id_product = ps.id_product
WHERE ps.price = 0;

Revisa siempre estos productos, ¡puedes estar regalando artículos sin saberlo!

Detectar duplicidades en registros

Un problema frecuente son duplicidades en productos que pueden causar errores en módulos o en la web.

Consulta SQL para encontrar productos duplicados por referencia:

SELECT reference, COUNT(*) as total
FROM ps_product
WHERE reference != ''
GROUP BY reference
HAVING total > 1;

Así detectas referencias repetidas que pueden confundirse en integraciones externas o ERP.

Buenas prácticas y seguridad

  • Haz backup antes de ejecutar cualquier consulta DELETE o UPDATE.
  • Prueba las consultas primero en un entorno staging.
  • Verifica IDs de idioma si trabajas en multi-idioma.
  • Documenta cambios que apliques tras auditoría.

Auditar es el primer paso antes de modificar datos.

Impacto SEO y ventajas comerciales

Auditar la integridad del catálogo tiene impacto directo en el SEO y en la conversión:

  • Mejora la indexación en buscadores.
  • Evita páginas huérfanas.
  • Refuerza la consistencia de categorías.
  • Minimiza errores 404 en fichas de producto.

Un catálogo limpio es clave para evitar sorpresas en campañas de Google Shopping o marketplaces.

Conclusión

Auditar la base de datos de PrestaShop con SQL es esencial para evitar errores invisibles que pueden costarte ventas y posicionamiento. Las consultas que has visto hoy te permitirán revisar los puntos críticos de tu catálogo y mantener tu tienda sana y optimizada.

¿Necesitas ayuda para auditar tu tienda PrestaShop y dejarla perfecta? ¡Contáctanos y te ayudamos!

Ir al contenido