Introducción

Exportar datos desde Magento mediante SQL puede ayudarte a integrar catálogos con otros sistemas, hacer migraciones, generar reportes personalizados o automatizar procesos sin pasar por la interfaz administrativa.

En esta guía técnica te mostramos cómo exportar productos y categorías desde Magento utilizando consultas SQL, con explicaciones detalladas de cada tabla, relación y campo relevante.

Índice

1. Estructura de la base de datos de Magento

Magento utiliza una arquitectura EAV (Entidad-Atributo-Valor), por lo tanto los productos y categorías no están en una única tabla, sino distribuidos entre varias:

TablaDescripción
catalog_product_entityProductos base (IDs, tipos)
catalog_category_entityCategorías base
catalog_category_productRelación producto ↔ categoría
catalog_product_entity_varcharNombre, descripción, slug
catalog_product_entity_decimalPrecio, peso
cataloginventory_stock_itemInventario

2. Consulta SQL para exportar productos básicos

SELECT e.entity_id AS product_id,
       sku,
       name.value AS name,
       price.value AS price
FROM catalog_product_entity AS e
JOIN catalog_product_entity_varchar AS name
  ON name.entity_id = e.entity_id AND name.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'name' AND entity_type_id = 4)
JOIN catalog_product_entity_decimal AS price
  ON price.entity_id = e.entity_id AND price.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'price' AND entity_type_id = 4);

3. Consulta SQL para exportar categorías

SELECT c.entity_id AS category_id,
       name.value AS name,
       c.parent_id
FROM catalog_category_entity AS c
JOIN catalog_category_entity_varchar AS name
  ON name.entity_id = c.entity_id AND name.attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'name' AND entity_type_id = 3);

4. Vincular productos con categorías

SELECT p.product_id, p.category_id
FROM catalog_category_product AS p
ORDER BY p.category_id;

5. Incluir más atributos (stock, URL, tipo)

SELECT e.entity_id, sku, qty, url.request_path
FROM catalog_product_entity AS e
JOIN cataloginventory_stock_item AS s ON s.product_id = e.entity_id
LEFT JOIN url_rewrite AS url ON url.entity_id = e.entity_id AND url.entity_type = 'product';

6. Exportar resultados como CSV

<?php
$result = mysqli_query($conn, $consulta);
$fp = fopen('productos.csv', 'w');
while ($row = mysqli_fetch_assoc($result)) {
  fputcsv($fp, $row);
}
fclose($fp);
?>

7. Buenas prácticas

  • ✅ Usa EXPLAIN para comprobar el rendimiento
  • 📦 Exporta por lotes si tienes muchos productos
  • 📁 Usa campos created_at y updated_at para exportaciones incrementales
  • 🔐 No expongas estos scripts sin autenticación segura

8. Conclusión

Exportar productos y categorías directamente desde MySQL en Magento te da velocidad, control y escalabilidad. Puedes automatizar procesos, generar informes personalizados o integrarlo con hojas de cálculo y ERPs.

📩 Si necesitas un exportador personalizado con filtros, multitienda o por fechas, escríbenos y te lo desarrollamos a medida.

Ir al contenido