Base de datos PrestaShop: tablas clave que todo propietario de tienda debe conocer

Pregunta publicada Respuesta publicada 1500 vistas

PrestaShop guarda todo, productos, pedidos, clientes, ajustes, en una base de datos MySQL, cuyas tablas usan un prefijo (por defecto ps_, definido al instalar). Conocer las tablas clave permite diagnosticar más rápido, ejecutar operaciones masivas que el admin no ofrece y reaccionar cuando el back office falla. Estas son las esenciales.

Diagrama de las tablas clave de la base de datos PrestaShop
Las tablas principales de la base de datos de PrestaShop, productos, pedidos, clientes, configuración y módulos.
SELECT p.id_product, pl.name, ps.active, ps.price, sa.quantity
FROM ps_product p
JOIN ps_product_lang pl ON pl.id_product = p.id_product AND pl.id_lang = 1
JOIN ps_product_shop ps ON ps.id_product = p.id_product AND ps.id_shop = 1
LEFT JOIN ps_stock_available sa ON sa.id_product = p.id_product AND sa.id_product_attribute = 0
ORDER BY p.id_product DESC
LIMIT 20;

SELECT id_order, reference, id_customer, total_paid, current_state, date_add
FROM ps_orders
ORDER BY id_order DESC
LIMIT 20;

Productos

  • ps_product, una fila por producto: id_product, price (sin impuestos), reference, active, fechas.
  • ps_product_lang, nombre, descripción, meta y link_rewrite (slug de URL) por idioma, una fila por producto, idioma y tienda.
  • ps_product_shop, precio, estado y visibilidad por tienda (refleja ps_product en tienda única).
  • ps_stock_available, la fuente real de stock (no ps_product.quantity, que es heredado).
  • ps_product_attribute, combinaciones/variantes; ps_specific_price, descuentos y precios especiales.

Categorías

ps_category (árbol nested set: nleft, nright, level_depth), ps_category_lang (nombres, meta) y ps_category_product (qué productos en qué categoría, con posición).

Pedidos y clientes

  • ps_orders, una fila por pedido: reference, id_customer, current_state, total_paid_tax_incl, date_add.
  • ps_order_detail, líneas del pedido; ps_order_history, cada cambio de estado con marca de tiempo; ps_order_state(_lang), definiciones de estados.
  • ps_customer (email, passwd con hash, grupo), ps_address, ps_cart / ps_cart_product (carritos que no tienen por qué convertirse en pedidos).

Configuración y estructura

ps_configuration es el almacén clave-valor de cada ajuste del back office; ps_hook_module mapea qué módulos se ejecutan en qué hook y en qué orden; ps_shop_url asocia dominios a tiendas, nunca la edite a mano.

Optimizar la base de datos

Las operaciones masivas van más rápido en SQL, pero haga siempre una copia primero, pruebe con SELECT antes de cualquier UPDATE/DELETE y no borre tablas de módulos (desinstale el módulo). Con el tiempo, carritos abandonados, antiguos invitados, conexiones y logs inflan estas tablas; recortarlas mantiene rápidas las consultas. Para limpieza automática y caché vea Performance Revolution y nuestra guía de optimización de la base de datos.

¿Le resultó útil esta respuesta?

¿Todavía tienes preguntas?

¿No encuentras lo que buscas? Envíanos tu pregunta y te responderemos.

Cargando...
Volver arriba