Migración de WooCommerce a PrestaShop — Guía completa
Instalar, conectar y ejecutar la migración completa WooCommerce → PrestaShop: los 7 pasos, el mapeo, el dry-run y la solución de problemas.
Presentación
Migración WooCommerce (dfmigratewoocommerce) migra una tienda WooCommerce completa a PrestaShop 8 o 9: categorías, etiquetas, atributos globales, productos simples y variables (variaciones convertidas en combinaciones), imágenes, metadatos personalizados, clientes con direcciones y pedidos. El módulo se conecta directamente a la base MySQL de WordPress, trabaja por lotes AJAX sin timeout y mantiene un mapeo Woo ↔ PS en base de datos que hace que cada paso sea relanzable sin duplicados.
La base WooCommerce de origen solo se lee, nunca se modifica. Todas las escrituras se realizan en el lado PrestaShop.
Instalación
- En el back office de PrestaShop, abre Módulos > Gestor de módulos > Subir un módulo y selecciona el ZIP
dfmigratewoocommerce.zip. - El módulo crea tres tablas técnicas:
df_woomig_mapping(correspondencias Woo ↔ PS),df_woomig_log(registro) ydf_woomig_progress(progreso de los pasos). - Haz clic en Configurar para abrir la interfaz de migración.
Conexión a WooCommerce
En la pestaña Conexión, indica:
- Host / Puerto: servidor MySQL de la base WordPress (puerto 3306 por defecto);
- Base, Usuario, Contraseña: credenciales de la base WordPress;
- Prefijo de tablas: normalmente
wp_— compruébalo enwp-config.php($table_prefix); - URL del sitio: dirección pública de la tienda WooCommerce, usada para descargar las imágenes (modo HTTP), o una ruta de sistema de archivos en modo local.
Haz clic en Probar conexión: el módulo muestra el número de productos, categorías, etiquetas, atributos globales, clientes y pedidos detectados en el origen.
Si tu hosting bloquea las conexiones MySQL remotas, importa un volcado de la base WordPress en un esquema dedicado del servidor PrestaShop (p. ej. wp_source) y conecta el módulo a ese esquema en localhost. Un túnel SSH también funciona.
Parámetros
- Idioma por defecto: idioma PrestaShop en el que se escribirán los contenidos Woo (monolingües);
- Grupo de impuestos por defecto: aplicado a todos los productos migrados — los precios Woo se copian tal cual en el precio sin impuestos de PrestaShop;
- Atributos como características: activa el doble mapeo (cada atributo global también se convierte en característica, visible en productos simples) y la importación de postmeta personalizados como características
meta:*; - Tamaño de lote: número de entidades procesadas por petición AJAX (25 por defecto; redúcelo en hosting compartido lento);
- Modo de imágenes:
http(descarga desde la URL del sitio) olocal(la URL del sitio se trata como una ruta de sistema de archivos que contienewp-content/uploads); - Dry-run: modo simulación — todo se registra, nada se escribe;
- Transportista por defecto: asignado a los pedidos migrados.
Ejecutar la migración
En la pestaña Migración, ejecuta los pasos en orden — cada uno se apoya en el mapeo creado por los anteriores:
- Atributos — cada atributo global Woo (
pa_*) se convierte en un grupo de atributos PS (los grupos de color se detectan) y, si la opción está activa, en una característica. Todos los valores se crean en ambos lados. - Categorías — se reconstruye el árbol completo; los padres ausentes se resuelven recursivamente, los huérfanos se adjuntan a la raíz con una advertencia.
- Etiquetas — deduplicadas por nombre.
- Productos — productos simples y variables: precios, precios rebajados (SpecificPrice), SKU, peso, dimensiones, stock, estado, productos virtuales, enlaces a categorías/etiquetas, características, metadatos personalizados. Las variaciones se convierten en combinaciones con impacto de precio, stock y referencia propios. Las imágenes del producto se migran sobre la marcha.
- Imágenes — paso de recuperación: recorre los productos ya migrados e importa las imágenes que faltan (imagen principal + galería), regenerando todas las miniaturas.
- Clientes — cuentas con direcciones de facturación y envío. Contraseñas regeneradas en bcrypt: los clientes usan «contraseña olvidada» en el primer acceso. Los correos existentes en PS se reutilizan, nunca se duplican.
- Pedidos — detección automática HPOS (WooCommerce 8+, tablas
wc_orders) o legacy (wp_posts). Líneas, totales, divisa y estados mapeados a los estados PrestaShop. No se envía ningún correo.
Cada paso muestra una barra de progreso en directo y puede interrumpirse y relanzarse: se reanuda exactamente donde se detuvo.
Haz primero una pasada completa en dry-run para validar el alcance en el registro, luego desactiva el dry-run y relanza.
Mapeo y relanzamientos
La pestaña Mapeo muestra el número de correspondencias por tipo de entidad. Toda entidad presente en el mapeo se omite en los relanzamientos: puedes relanzar un paso completo sin crear duplicados. El botón de restablecimiento borra el mapeo de un tipo (o de todo) — las entidades ya creadas en PrestaShop permanecen.
Registro
La pestaña Registro lista los eventos por paso y nivel (info, éxito, advertencia, error): productos creados, variaciones omitidas por falta de atributo global, imágenes no encontradas, pedidos sin cliente… Purga en un clic.
Después de la migración
- Lanza una reindexación de la búsqueda: Parámetros de la tienda > Buscar > Indexar todos los productos;
- Verifica una muestra de precios si tu tienda Woo guardaba precios con impuestos incluidos (PrestaShop espera precios sin impuestos);
- Revisa el grupo de impuestos, los transportistas y los medios de pago;
- Elimina la configuración de conexión (o desinstala el módulo): las credenciales MySQL se almacenan en la configuración de PrestaShop.
Limitaciones conocidas
- Los atributos locales (definidos en un solo producto, no
pa_*) usados en variaciones no pueden convertirse en combinaciones — PrestaShop exige atributos globales. Estas variaciones se omiten y se señalan en el registro. Conviértelos en atributos globales en Woo antes de migrar si es necesario. - Los pedidos se migran como historial: los impuestos no se recalculan, los totales Woo se copian tal cual.
- Los cupones, las reseñas de productos y las suscripciones no se migran en esta versión.
Solución de problemas
«Fallo de conexión» en la prueba
Comprueba que el usuario MySQL puede conectarse desde la IP del servidor PrestaShop (GRANT ... ON base.* TO 'user'@'ip') y que el puerto 3306 está abierto. Si no, usa un volcado local o un túnel SSH.
Imágenes ausentes en modo HTTP
El sitio WooCommerce debe ser accesible por HTTP/HTTPS desde el servidor PrestaShop. Si el sitio de origen está cerrado, usa el modo local copiando wp-content/uploads al servidor PrestaShop e indicando su ruta como URL del sitio.
Variaciones ausentes en un producto
Consulta el registro: si las variaciones usaban atributos locales (no globales), se omiten por diseño. El producto padre se migra con sus datos básicos.