Mapa de tablas del catálogo en PrestaShop 1.6/1.7

Mapa mental de producto, tienda, idioma, categorías, combinaciones, precios específicos, proveedores y stock en bases PrestaShop legacy.

Revisado
Compatibilidad
PrestaShop 1.6.x–1.7.x; comprobar la versión instalada
Lectura
2 min
Autor
Gabriel — infinit8

Una lista breve de tablas puede ahorrar horas cuando una tienda antigua exige una auditoría. El valor no está en memorizar nombres, sino en reconocer tres ejes que multiplican filas: idioma, tienda y combinación.

Producto, tienda e idioma

  • product: identidad y datos globales del producto.
  • product_shop: valores que pueden variar por tienda.
  • product_lang: textos por idioma y, según versión/contexto, tienda.

Consultar solo product puede dar una imagen incompleta de precio, visibilidad o contenido.

Relaciones de catálogo

  • category_product: pertenencia y posición en categorías.
  • product_attribute: combinaciones del producto.
  • product_attribute_combination: valores que forman cada combinación.
  • specific_price: reglas y reducciones de precio.
  • product_supplier: relación con proveedores y referencias.
  • stock_available: disponibilidad por producto, combinación y contexto de tienda.

Una consulta base con contexto explícito

Este ejemplo sirve para inspeccionar, no para duplicar la lógica comercial del core.

catalogo.sql
SELECT
    p.id_product,
    ps.active,
    ps.price,
    pl.name,
    pl.link_rewrite
FROM ps_product AS p
INNER JOIN ps_product_shop AS ps
    ON ps.id_product = p.id_product
INNER JOIN ps_product_lang AS pl
    ON pl.id_product = p.id_product
    AND pl.id_shop = ps.id_shop
WHERE ps.id_shop = :shop_id
  AND pl.id_lang = :language_id
ORDER BY p.id_product;
Importante

No presupongas columnas ni claves de una instalación distinta. Revisa el esquema real y crea una copia recuperable antes de cualquier operación de mantenimiento.

Cuándo no usar SQL directo

Para cambiar datos desde un módulo, la clase Db, ObjectModel o los servicios de la versión mantienen convenciones como el prefijo y el contexto. Para integraciones externas, valora el Webservice. El SQL directo es especialmente útil para lectura, auditoría y recuperación controlada.

Preguntas frecuentes

¿Por qué el nombre aparece duplicado?

Normalmente porque la consulta no restringe id_lang, id_shop o ambos en la tabla de idioma.

¿El precio final está únicamente en product_shop?

No. Impuestos, moneda, grupo, reglas de carrito y specific_price pueden intervenir en el cálculo mostrado.

Referencias y revisión

Contenido contrastado con documentación oficial. Comprueba siempre el comportamiento en un entorno de pruebas antes de desplegar cambios.