🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

PrestaShop 9: Guía de Actualización desde Versiones Anteriores

Actualizado el 19 de enero de 2026

La llegada de PrestaShop 9 marca un hito en la plataforma de comercio electrónico, introduciendo cambios profundos en el núcleo, la arquitectura de plantillas y la gestión de dependencias. Saltar desde versiones anteriores (1.7, 8.x) no es un simple parche; es una migración e-commerce que requiere planificación, pruebas y un conocimiento sólido de las nuevas bases. Esta guía técnica detalla cada paso crítico para una actualización PrestaShop exitosa, con especial atención a la compatibilidad módulos y las novedades previstas para la actualización 2025.


Cambios Clave en PrestaShop 9 que Afectan la Migración

Antes de ejecutar cualquier script, debes entender qué ha cambiado bajo el capó. PrestaShop 9 no es una evolución de la serie 8.x; es una reescritura significativa que abandona partes del legado de Symfony 4/5 y adopta Symfony 6.4 LTS, PHP 8.2+ (recomendado PHP 8.3) y un sistema de temas basado en Twig puro.

Abandono del Motor de Plantillas Smarty

PrestaShop 9 elimina por completo Smarty. Todos los temas clásicos y personalizados basados en Smarty dejarán de funcionar. El nuevo sistema de temas obliga a usar Twig y una nueva arquitectura de componentes llamada PrestaShop UI Kit.

[WARNING] Si tu tienda actual usa un tema personalizado de PrestaShop 1.7 o 8.x basado en Smarty, la actualización directa es imposible sin un rediseño completo del tema. No hay capa de compatibilidad.

Symfony 6.4 y PHP 8.3

El núcleo ahora exige PHP 8.2 como mínimo y recomienda PHP 8.3 para rendimiento. Esto implica que todos los módulos y hooks deben estar actualizados a las nuevas interfaces de Symfony 6. Además, se han eliminado clases obsoletas como Tools::xxx y se han reemplazado por servicios inyectables.

Base de Datos: Cambios en el Schema

Se han normalizado muchas tablas. Por ejemplo:

  • ps_product ahora incluye campos JSON para atributos combinados.
  • Se elimina la tabla ps_specific_price en favor de una nueva estructura de reglas de precios.
  • El motor de búsqueda ahora usa Elasticsearch como opción predeterminada (si está disponible), con un fallback a MySQL.

Preparación Previa a la Actualización

La actualización PrestaShop no debe hacerse en producción sin una réplica exacta. Sigue esta checklist rigurosa.

1. Auditoría de Compatibilidad de Módulos

Este es el punto más crítico. PrestaShop 9 rompe la compatibilidad con módulos que usen:

  • Clases obsoletas (Db::getInstance() sin contexto, Module::getInstanceByName()).
  • Hooks antiguos (actionDispatcher, displayHeader con firmas modificadas).
  • Llamadas directas a tablas sin usar el ObjectModel actualizado.

Ejecuta este comando en tu servidor de staging para listar módulos problemáticos:

# Asumiendo que tienes la herramienta de consola de PS9
php bin/console prestashop:module:check-compatibility --all

[TIP] Crea un archivo CSV con todos los módulos y su estado de compatibilidad. Contacta a los desarrolladores con al menos 3 meses de antelación. Muchos módulos gratuitos del marketplace pueden no recibir actualización.

2. Copia de Seguridad Completa (Full Backup)

No confíes solo en el backup del hosting. Necesitas:

  • Base de datos: mysqldump con --opt --routines --triggers.
  • Archivos: carpeta /admin, /img, /modules, /themes, /override, /config.
  • Claves de API: Exporta las claves de servicios externos (Pagos, envíos, ERP).
mysqldump -u usuario -p --opt --routines --triggers nombre_bd > backup_ps9_pre.sql
tar -czf backup_ps9_files.tar.gz /ruta/a/prestashop/

3. Entorno de Staging Idéntico a Producción

Clona tu tienda en un subdominio o servidor separado. Asegúrate de que:

  • PHP 8.3 esté instalado.
  • Las extensiones requeridas (intl, zip, json, mbstring, pdo_mysql) estén activas.
  • La versión de MySQL sea 8.0+ o MariaDB 10.6+.

Proceso de Migración Paso a Paso

Una vez validada la compatibilidad, procede con la migración e-commerce propiamente dicha.

Paso 1: Actualizar a la Última Versión de tu Rama Actual

Si vienes de PrestaShop 1.7.8.x o 8.x, primero debes aplicar todos los parches menores hasta la última versión de esa rama. Esto asegura que la base de datos esté en un estado conocido.

# Ejemplo para 1.7.8.x -> 1.7.8.12
php admin/autoupgrade/cli-upgrade.php --from=1.7.8.0 --to=1.7.8.12

Paso 2: Ejecutar el Asistente de Actualización a PrestaShop 9

El equipo de PrestaShop proporciona un módulo de migración oficial (no el antiguo 1-Click Upgrade). Este módulo se encarga de:

  • Transformar el esquema de base de datos.
  • Migrar configuraciones de Smarty a Twig (parcialmente).
  • Deshabilitar módulos incompatibles automáticamente.

Accede al módulo desde Parámetros Avanzados > Asistente de Migración. Sigue estos pasos en orden:

  1. Verificación de requisitos: PHP, extensiones, permisos de escritura.
  2. Análisis de módulos: Te mostrará una lista roja/verde.
  3. Copia de seguridad: El asistente hará una automática (pero confirma que la tuya está aparte).
  4. Ejecución de la migración: Puede tardar de 10 a 60 minutos según el tamaño del catálogo.

[INFO] Durante la migración, la tienda se pondrá en modo mantenimiento automáticamente. No la interrumpas aunque parezca congelada. Revisa los logs en /var/log/migration.log.

Paso 3: Post-Migración y Verificación Técnica

Una vez finalizado, NO abras la tienda al público todavía. Realiza estas comprobaciones:

  • Consola de Symfony: Ejecuta php bin/console cache:clear --env=prod.
  • Regeneración de índices: php bin/console prestashop:search:index.
  • Verificación de rutas: Revisa que las URLs amigables (SEO) se mantengan. PrestaShop 9 cambia la estructura de algunas rutas.
# Verificar que no hay rutas rotas
php bin/console router:match /producto-ejemplo

Gestión de Módulos y Temas en PrestaShop 9

Compatibilidad de Módulos: Lo que Debes Saber

La compatibilidad módulos es el talón de Aquiles de esta actualización. Muchos módulos que funcionaban en 8.x dejarán de hacerlo por tres razones principales:

  1. Eliminación de la clase ModuleFrontController: Ahora se usa AbstractModuleFrontController con inyección de dependencias.
  2. Cambio en los hooks de pago: Los módulos de pago deben implementar PaymentModuleInterface.
  3. API REST nativa: Los módulos que usaban llamadas internas a controladores ahora deben usar la nueva API.

Ejemplo de código obsoleto que no funcionará en PS9:

// Obsoleto
public function hookDisplayHeader($params)
{
    $this->context->smarty->assign('var', 'valor');
    return $this->display(__FILE__, 'header.tpl');
}

Nueva forma en PS9:

// Válido
public function hookDisplayHeader(array $params): string
{
    return $this->render('@ModuleName/header.html.twig', [
        'var' => 'valor'
    ]);
}

Temas: Migración a Twig UI Kit

Si tu tema es fundamental para el negocio, considera estas opciones:

  • Contratar a un desarrollador para migrar el tema a Twig.
  • Usar el tema predeterminado "PrestaShop 9 Classic" (basado en Bootstrap 5 y Twig) y personalizarlo mediante hooks y CSS.
  • Buscar un tema compatible en el marketplace que ya esté certificado para PS9.

[WARNING] No intentes mantener un tema Smarty en producción. El rendimiento será pésimo y muchas funcionalidades (como el carrito AJAX) fallarán.


Solución de Problemas Comunes en la Actualización 2025

La actualización 2025 traerá consigo una serie de errores típicos. Aquí los más frecuentes y cómo resolverlos.

Error 500 tras la migración

Causa principal: módulo incompatible o hook mal registrado.
Solución: Deshabilita todos los módulos desde la base de datos.

UPDATE ps_module SET active = 0 WHERE id_module > 0;

Luego reactiva uno por uno desde el back office.

Problemas con imágenes de productos

PrestaShop 9 cambia el sistema de generación de miniaturas. Si las imágenes no se muestran:

php bin/console prestashop:images:regenerate

Fallo en el proceso de pago

Los módulos de pago antiguos (como PayPal 5.x) no son compatibles. Debes actualizar a la versión específica para PS9. Si no existe, contacta al proveedor.


Recomendaciones Finales para una Migración Exitosa

  1. No apresures el proceso: Programa la migración con 2-3 meses de antelación. La actualización 2025 es un cambio de paradigma.
  2. Pruebas automatizadas: Implementa tests funcionales con herramientas como Codeception para verificar flujos críticos (registro, compra, búsqueda).
  3. Rendimiento: PrestaShop 9 con PHP 8.3 y opcache puede ser un 30% más rápido que 8.x, pero solo si los módulos están bien escritos. Realiza un benchmark antes y después.
  4. Documentación: Guarda todos los cambios de configuración, hooks personalizados y overrides. En PS9, los overrides están desaconsejados y serán eliminados en futuras versiones.

La migración a PrestaShop 9 no es un simple upgrade; es una migración e-commerce completa que sienta las bases para los próximos años. Invertir tiempo ahora en la compatibilidad módulos y en la adaptación a Twig te ahorrará dolores de cabeza cuando lleguen las actualizaciones de seguridad de 2026.

[TIP] Únete a los foros oficiales de PrestaShop y al grupo de Slack de desarrolladores. La comunidad está documentando activamente los errores de migración. Comparte tus hallazgos.

Con esta guía, estás listo para afrontar la actualización PrestaShop más importante de la década. Recuerda: la paciencia y las pruebas son tus mejores aliados.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel