Migración de Shopify a PrestaShop — Guía completa
Instalación, conexión Shopify, configuración y procedimiento completo de migración a PrestaShop 8 y 9.
Presentación
dfmigrateshopify importa una tienda Shopify completa en PrestaShop 8 o 9: productos con variantes e imágenes, clientes con direcciones, pedidos históricos, colecciones convertidas en categorías, redirecciones 301 y reseñas de clientes. El módulo es de solo lectura en el lado de Shopify: cero escrituras, cero modificaciones en la tienda de origen.
Instalación
- Back office de PrestaShop → Módulos → Gestor de módulos → Subir un módulo.
- Selecciona el archivo
dfmigrateshopify.zipe instala. - Aparece una nueva pantalla en Parámetros avanzados → Migración Shopify.
La instalación crea 4 tablas con prefijo dfmigshop_: mapping (correspondencias Shopify ↔ PrestaShop), log, redirect y job.
Crear el token de Shopify
En el admin de tu tienda Shopify de origen:
- Settings → Apps and sales channels → Develop apps → Create an app.
- Pestaña Configuration → Admin API integration → Configure.
- Marca los scopes:
read_products,read_inventory,read_product_listings,read_customers,read_orders,read_content. - Instala la app en la tienda y copia el Admin API access token (empieza por
shpat_).
Shopify muestra el token una sola vez. Guárdalo en un lugar seguro.
Conexión
En la pestaña Conexión del módulo: introduce el dominio (mi-tienda.myshopify.com, sin https://), el token y la versión de API (por defecto 2024-10). Haz clic en Probar la conexión: el nombre de la tienda debe aparecer en verde.
Configuración
- Tamaño de lote — número de elementos procesados por llamada AJAX (por defecto 50, máx. 250). Redúcelo si tu alojamiento es lento.
- Descargar las imágenes — desactívalo para una migración de prueba rápida sin imágenes.
- Borradores — importar o ignorar los productos Shopify en estado draft.
- Categoría padre por defecto — las colecciones Shopify se crearán bajo esta categoría.
- Transportista y módulo de pago — asignados a los pedidos importados.
- Mapeo de estados — asocia cada estado Shopify (pending, paid, fulfilled, delivered, cancelled, refunded) a un estado de pedido PrestaShop.
Lanzar la migración
En la pestaña Migración, respeta el orden:
- Contar — verifica la conexión y muestra los volúmenes.
- Colecciones custom y luego Colecciones smart — crea las categorías.
- Productos + variantes + imágenes — el paso más largo. Las variantes Shopify se convierten en combinaciones de atributos; cada variante recibe su imagen; las marcas se crean desde el campo vendor.
- Clientes — deduplicación automática por correo electrónico. Se asigna una contraseña aleatoria: invita a tus clientes a usar «Olvidé mi contraseña».
- Pedidos — solo después de productos y clientes. Referencia con formato
SH-{número}. - Redirecciones 301 — recupera los URL Redirects de Shopify. Las redirecciones de productos/colecciones ya se crearon automáticamente en los pasos anteriores.
Cada paso puede relanzarse sin riesgo: la tabla de correspondencia evita los duplicados. En caso de interrupción, simplemente vuelve a hacer clic en el botón y la migración se reanuda donde se detuvo.
Importar las reseñas
Shopify no tiene API nativa para las reseñas. Exporta a CSV desde tu aplicación (Judge.me, Loox, Yotpo, Product Reviews app…) e importa el archivo en la pestaña Reseñas. El módulo detecta automáticamente tu backend: dfreviews (prioritario) o productcomments.
Columnas esperadas (insensibles a mayúsculas, separador , o ;): product_handle o shopify_product_id o sku, email, reviewer_name, rating, title, body, created_at, verified.
Redirecciones 301
Cada petición del front es interceptada por el hook actionDispatcherBefore: si la URL solicitada corresponde a una fuente registrada (ej. /products/mi-producto), el visitante es redirigido en 301 hacia la URL PrestaShop equivalente. No requiere configuración Apache ni Nginx. La pestaña Redirecciones 301 permite exportar la lista completa en CSV.
Correspondencias y relanzamiento
La pestaña Correspondencias muestra el número de elementos importados por tipo de recurso. El botón Vaciar elimina las correspondencias de un tipo: los elementos permanecen en PrestaShop, pero una nueva migración los reimportará como nuevos (posibles duplicados — usar con conocimiento de causa).
Solución de problemas
- Errores 429 o 503 — el módulo gestiona automáticamente el rate limit de Shopify (reintento respetando el header Retry-After). No requiere acción.
- Migración lenta — reduce el tamaño de lote, o desactiva la descarga de imágenes para una primera pasada de prueba.
- Errores en el registro — la pestaña Registros muestra cada error con el recurso y el identificador Shopify afectados. Corrige la causa y relanza el paso: solo se reprocesarán los elementos con error.
- Precios de pedidos históricos — los pedidos se importan como archivo contable; los totales Shopify se conservan tal cual, sin recálculo de impuestos PrestaShop.
Desinstalación
La desinstalación elimina las 4 tablas del módulo y los hooks. Los productos, clientes, pedidos y categorías importados permanecen. Las redirecciones 301 dejan de funcionar (las sirve el módulo).