Introduccion

Cuando trabajamos con varias tiendas PrestaShop o enfrentamos procesos de reestructuración, staging, pruebas o relanzamientos, es habitual necesitar mover información de una tienda a otra. Migrar datos manualmente o desde el back-office puede ser ineficiente, especialmente cuando hablamos de productos, categorías, clientes o pedidos en volumen.

En este artículo veremos cómo migrar datos entre dos tiendas PrestaShop de forma controlada, usando SQL y PHP. Cubriremos la selección de tablas clave, la exportación e importación eficiente y las validaciones posteriores.

  1. Consideraciones previas a la migración

Antes de mover cualquier dato:

  • Ambas tiendas deben usar la misma versión de PrestaShop
  • El prefijo de tablas puede cambiar (ps_, ps2_, etc.)
  • Es recomendable realizar pruebas en un entorno staging
  • Siempre haz una copia de seguridad completa de ambas bases de datos
  1. Datos que se pueden migrar

Tipo de dato

Tablas principales

Productos

ps_product, ps_product_lang, ps_product_shop, ps_stock_available, ps_image, ps_image_lang

Categorías

ps_category, ps_category_lang, ps_category_shop

Clientes

ps_customer, ps_address

Pedidos

ps_orders, ps_order_detail, ps_order_invoice

Configuración

ps_configuration, ps_shop, ps_lang, ps_currency

Consejo: No es necesario migrar todo. Puedes filtrar por ID o fecha.

  1. Exportar productos de una tienda (MySQL)

— Exportar productos a un archivo externo

SELECT * FROM ps_product
INTO OUTFILE '/tmp/productos.sql'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

Alternativamente, usa mysqldump:

mysqldump -u usuario -p basedatos ps_product ps_product_lang > productos.sql
  1. Importar datos en la nueva tienda

Desde archivo SQL:

mysql -u usuario -p nueva_base < productos.sql

Desde archivo CSV (vía PHPMyAdmin o LOAD DATA):

LOAD DATA INFILE '/tmp/productos.csv'
INTO TABLE ps_product
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n';
  1. Migrar con script PHP (más controlado)

Ejemplo de migración de productos desde una base de datos a otra:

<?php

$origen = new PDO(‘mysql:host=localhost;dbname=ps_tienda_origen’, ‘user’, ‘pass’);

$destino = new PDO(‘mysql:host=localhost;dbname=ps_tienda_destino’, ‘user’, ‘pass’);

$sql = ‘SELECT * FROM ps_product’;

$stmt = $origen->query($sql);

foreach ($stmt as $fila) {

    $campos = array_keys($fila);

    $valores = array_map(function($v) use ($destino) {

        return $destino->quote($v);

    }, array_values($fila));

 $query = ‘INSERT INTO ps_product (‘.implode(‘,’, $campos).’) VALUES (‘.implode(‘,’, $valores).’)’;

    $destino->exec($query);

}

echo «Migración de productos completada.»;

?>

Este enfoque permite mayor control, transformaciones de datos y validaciones en tiempo real.

  1. Sincronizar IDs entre tiendas

Cuando migras productos, es importante que los id_product, id_category y id_image se mantengan o se reconstruyan correctamente para evitar problemas con combinaciones, URLs e imágenes.

Recomendaciones:

  • Desactiva AUTO_INCREMENT temporalmente si quieres mantener IDs
  • Si no, mapea nuevos IDs y actualiza las tablas relacionadas
  1. Validar resultados de la migración

Verificar recuento:

SELECT COUNT(*) FROM ps_product;

Comparar IDs:

SELECT id_product FROM ps_product ORDER BY id_product DESC LIMIT 10;

Verificar integridad de imágenes:

SELECT * FROM ps_image WHERE id_product NOT IN (SELECT id_product FROM ps_product);
  1. Comparativa de métodos de migración

Método

Ventajas

Desventajas

mysqldump + import

Rápido, fiable

Menos control de datos intermedios

Script PHP

Flexible, permite transformaciones

Más lento, requiere programación

CSV / Excel

Compatible con muchas herramientas

Puede generar errores de formato

Conclusión

Migrar datos entre tiendas PrestaShop usando MySQL y PHP es una estrategia efectiva para replicar información o montar nuevos entornos. La clave está en planificar bien qué datos se migran, en qué orden, y validar que las referencias e IDs se mantienen coherentes.

El uso de scripts PHP permite, además, adaptar los datos durante la importación, detectar inconsistencias y dejar trazabilidad. Ya sea para migraciones parciales o completas, este enfoque técnico da mucha más seguridad que hacerlo manualmente.

Ir al contenido