📊 Schema de tablas core — estructura y relaciones

Actualizado: 2024-12-01

PrestaShop tiene mas de 80 tablas en su core. Conocer las principales y sus relaciones es esencial para escribir queries eficientes en modulos y overrides.

#Tablas de productos

TablaDescripcionClave principal
ps_productDatos principales del productoid_product
ps_product_langTraducciones del producto (nombre, desc)id_product + id_lang + id_shop
ps_product_attributeCombinaciones (talla+color)id_product_attribute
ps_product_attribute_combinationRelacion combinacion→atributoid_product_attribute + id_attribute
ps_attributeValores de atributo (Rojo, XL)id_attribute
ps_attribute_groupGrupos de atributo (Color, Talla)id_attribute_group
ps_stock_availableStock disponible por producto/combinacionid_stock_available
ps_imageImagenes del productoid_image
ps_product_shopDatos del producto por tienda (multitienda)id_product + id_shop
Query tipica — Producto con nombre, precio y stock
sql
SELECT
    p.id_product,
    pl.name,
    pl.description_short,
    p.price,
    p.reference,
    sa.quantity AS stock,
    m.name AS manufacturer
FROM ps_product p
INNER JOIN ps_product_lang pl
    ON p.id_product = pl.id_product
    AND pl.id_lang = 1
    AND pl.id_shop = 1
LEFT JOIN ps_stock_available sa
    ON p.id_product = sa.id_product
    AND sa.id_product_attribute = 0
LEFT JOIN ps_manufacturer m
    ON p.id_manufacturer = m.id_manufacturer
WHERE p.active = 1
    AND p.visibility IN ('both', 'catalog')
ORDER BY p.date_add DESC
LIMIT 20;

#Tablas de pedidos

TablaDescripcionClave principal
ps_ordersCabecera del pedidoid_order
ps_order_detailLineas del pedido (productos)id_order_detail
ps_order_historyHistorial de estados del pedidoid_order_history
ps_order_stateEstados de pedido disponiblesid_order_state
ps_order_carrierTransportista del pedido + trackingid_order_carrier
ps_order_paymentPagos del pedidoid_order_payment
ps_order_invoiceFacturas del pedidoid_order_invoice
ps_order_slipNotas de credito (devoluciones)id_order_slip
ps_order_cart_ruleDescuentos aplicados al pedidoid_order_cart_rule
Query tipica — Pedidos con cliente y estado actual
sql
SELECT
    o.id_order,
    o.reference,
    o.total_paid_tax_incl,
    o.date_add,
    c.firstname,
    c.lastname,
    c.email,
    osl.name AS current_status,
    oc.tracking_number
FROM ps_orders o
INNER JOIN ps_customer c ON o.id_customer = c.id_customer
LEFT JOIN ps_order_state os ON o.current_state = os.id_order_state
LEFT JOIN ps_order_state_lang osl
    ON os.id_order_state = osl.id_order_state
    AND osl.id_lang = 1
LEFT JOIN ps_order_carrier oc ON o.id_order = oc.id_order
WHERE o.valid = 1
ORDER BY o.date_add DESC
LIMIT 50;

#Tablas de clientes

TablaDescripcion
ps_customerDatos del cliente (nombre, email, etc.)
ps_addressDirecciones del cliente
ps_customer_groupGrupos de clientes
ps_customer_messageMensajes del servicio de atencion al cliente
ps_guestVisitantes no registrados (para estadisticas)
ps_connectionsHistorial de conexiones del cliente
ps_customer_threadHilo de mensajes de soporte

#Tablas del carrito

TablaDescripcion
ps_cartCabecera del carrito
ps_cart_productProductos en el carrito
ps_cart_ruleReglas de descuento (cupones)
ps_cart_cart_ruleCupones aplicados a un carrito especifico
TablaDescripcion
ps_categoryCategorias del catalogo
ps_category_langTraducciones de categorias
ps_category_productRelacion categoria↔producto (N:N)
ps_manufacturerFabricantes
ps_supplierProveedores
ps_taxImpuestos
ps_tax_ruleReglas de impuestos por zona geografica
ps_specific_pricePrecios especiales (descuentos por cliente/grupo)
ps_currencyDivisas configuradas
ps_carrierTransportistas
Descargar en Markdown Pensado para pegar en ChatGPT, Claude u otra IA. Incluye solo el contenido de esta pagina.