---
title: Schema de tablas core — estructura y relaciones
section: database
slug: schema-guide
description: "Referencia de las tablas principales del core de PrestaShop: products, orders, customers, cart y sus relaciones clave."
keywords: prestashop schema tablas core product orders customer cart SQL estructura relaciones PS8
last_updated: 2024-12-01
source_url: "https://ayudaprestashop.es/database/schema-guide"
---

# Schema de tablas core — estructura y relaciones

> Referencia de las tablas principales del core de PrestaShop: products, orders, customers, cart y sus relaciones clave.

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

| Tabla | Descripcion | Clave principal |
| --- | --- | --- |
| ps_product | Datos principales del producto | id_product |
| ps_product_lang | Traducciones del producto (nombre, desc) | id_product + id_lang + id_shop |
| ps_product_attribute | Combinaciones (talla+color) | id_product_attribute |
| ps_product_attribute_combination | Relacion combinacion→atributo | id_product_attribute + id_attribute |
| ps_attribute | Valores de atributo (Rojo, XL) | id_attribute |
| ps_attribute_group | Grupos de atributo (Color, Talla) | id_attribute_group |
| ps_stock_available | Stock disponible por producto/combinacion | id_stock_available |
| ps_image | Imagenes del producto | id_image |
| ps_product_shop | Datos 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

| Tabla | Descripcion | Clave principal |
| --- | --- | --- |
| ps_orders | Cabecera del pedido | id_order |
| ps_order_detail | Lineas del pedido (productos) | id_order_detail |
| ps_order_history | Historial de estados del pedido | id_order_history |
| ps_order_state | Estados de pedido disponibles | id_order_state |
| ps_order_carrier | Transportista del pedido + tracking | id_order_carrier |
| ps_order_payment | Pagos del pedido | id_order_payment |
| ps_order_invoice | Facturas del pedido | id_order_invoice |
| ps_order_slip | Notas de credito (devoluciones) | id_order_slip |
| ps_order_cart_rule | Descuentos aplicados al pedido | id_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

| Tabla | Descripcion |
| --- | --- |
| ps_customer | Datos del cliente (nombre, email, etc.) |
| ps_address | Direcciones del cliente |
| ps_customer_group | Grupos de clientes |
| ps_customer_message | Mensajes del servicio de atencion al cliente |
| ps_guest | Visitantes no registrados (para estadisticas) |
| ps_connections | Historial de conexiones del cliente |
| ps_customer_thread | Hilo de mensajes de soporte |

## Tablas del carrito

| Tabla | Descripcion |
| --- | --- |
| ps_cart | Cabecera del carrito |
| ps_cart_product | Productos en el carrito |
| ps_cart_rule | Reglas de descuento (cupones) |
| ps_cart_cart_rule | Cupones aplicados a un carrito especifico |

## Tablas de catalogo

| Tabla | Descripcion |
| --- | --- |
| ps_category | Categorias del catalogo |
| ps_category_lang | Traducciones de categorias |
| ps_category_product | Relacion categoria↔producto (N:N) |
| ps_manufacturer | Fabricantes |
| ps_supplier | Proveedores |
| ps_tax | Impuestos |
| ps_tax_rule | Reglas de impuestos por zona geografica |
| ps_specific_price | Precios especiales (descuentos por cliente/grupo) |
| ps_currency | Divisas configuradas |
| ps_carrier | Transportistas |


---

*Fuente: [https://ayudaprestashop.es/database/schema-guide](https://ayudaprestashop.es/database/schema-guide). Version Markdown generada automaticamente para consumo por LLMs.*
