Actualizar a PrestaShop 9 significa que tus modulos pueden necesitar actualizaciones. Con Symfony 6.4 y PHP 8.1+, muchos modulos legacy pueden no funcionar sin modificaciones.
¿Por qué los módulos se rompen en 9?
PrestaShop 9 introdujo varios cambios de ruptura que afectan la compatibilidad del módulo:
- #P0¤ — muchos controladores traseros han sido reescritos. Los módulos que anulan los controladores de administración heredados se romperán.
- #P0¤ — módulos que utilizan funciones deprecated PHP 7.x desencadenarán errores.
- #P0¤ — las plantillas de back office se han convertido de #M26¤ a #M32¤ en muchas áreas.
- #P0¤ — algunos ganchos viejos han sido deprecados o eliminados.
- Cambios de API — la nueva API de Admin utiliza un modelo de autenticación diferente (OAuth).
Cómo comprobar si un módulo es PrestaShop 9 Compatible
- #P0¤ — busque "#M19¤ 9" o "PS 9" en la lista de compatibilidad
- #P0¤ — instalar el módulo en un entorno de puesta en escena PS9 y probar todas las características
- #P0¤ — busca funciones deprecadas, control hereditario se anula y sintaxis PHP 7.x
- #P0¤ — pregunte al autor del módulo sobre el cronograma de apoyo PS9
#M19¤ 9 Módulos compatibles de #M21#
| Módulo | PS 1.7 | PS 8 | PS 9 | Situación |
|---|---|---|---|---|
| # | Sí. | Sí. | Sí. | Actualizado |
| # | Sí. | Sí. | Sí. | Actualizado |
| # | - | Sí. | Sí. | Actualizado |
| # | Sí. | Sí. | Pronto. | En curso |
| # | Sí. | Sí. | Pronto. | En curso |
| # | Sí. | Sí. | Pronto. | En curso |
| # | Sí. | Sí. | Pronto. | En curso |
Números de módulos comunes en #M19¤ 9
1. Controlador de Admin de Legacy Override
Si un módulo anula un controlador de administración legado (por ejemplo, AdminOrdersController), no funcionará porque PS9 utiliza controladores Symfony para la mayoría de las páginas de administración. El módulo debe actualizarse para usar ganchos compatibles con Symfony o comandos CQRS.
2. #M26¤ Dependencias de plantilla
Los módulos que modifican las plantillas de back office utilizando archivos Smarty .tpl pueden romper en áreas donde PS9 ha migrado a Twig. Las plantillas de Front office Smarty todavía funcionan con el tema Classic, pero no con el nuevo tema Hummingbird.
3. #M43# Compatibilidad
Los temas comunes PHP 8.x incluyen: propiedades dinámicas deprecatadas, control de tipo más estricto y funciones eliminadas como mysql * (debe usar PDO).
¿Necesita ayuda?
Si usted está planeando una migración PrestaShop 9 y necesita consejo de compatibilidad del módulo, lea nuestro #M19¤ 9 guía completa o compruebe nuestro Gráfico de compatibilidad con la versión #M43¤.
Cómo describir PrestaShop 9 Compatibilidad en su módulo
Si desarrolla módulos PrestaShop, debe actualizar la declaración de compatibilidad en su código de módulos:
// In your module main PHP file
public $ps_versions_compliancy = [
"min" => "8.0.0",
"max" => "9.99.99"
];
También actualiza tu archivo #P0¤:
<compatibility>
<min>8.0.0</min>
<max>9.99.99</max>
</compatibility>
Cómo probar un módulo en PrestaShop 9
- #P0¤ Usando Docker o XAMPP con #M43¤ 8.3
- #P0¤ a través del subidor del módulo de back office
- #P0¤ en #P1¤ o habilitar el modo de depuración PS: establecer #P2¤ en #P3¤ en #P4#
- #P0¤ — instalar, configurar, pantalla de la oficina frontal, desinstalar
- #P0¤ to catch deprecation warnings
- #P0¤ si su módulo añade elementos de oficina frontal
Módulo completo #M21¤ Tabla de compatibilidad
| Módulo | PS 1.7 | PS 8 | PS 9 | #M43¤ 8.3 | Notas |
|---|---|---|---|---|---|
| # | ✓ | ✓ | ✓ | ✓ | Completamente actualizado |
| # | ✓ | ✓ | ✓ | ✓ | Completamente actualizado |
| # | — | ✓ | ✓ | ✓ | Completamente actualizado |
| # | ✓ | ✓ | Pronto. | ✓ | Actualización en curso |
| # | ✓ | ✓ | Pronto. | ✓ | Actualización en curso |
| # | ✓ | ✓ | Pronto. | ✓ | Actualización en curso |
| # | ✓ | ✓ | Pronto. | ✓ | Actualización en curso |
#M19¤ 9 Módulo Compatibilidad Lista de verificación
| Check | Qué buscar |
|---|---|
| Sintaxis 8.1+ | Sin funciones deprecadas, sin propiedades dinámicas sin declaración |
| Ningún administrador legado anula | Módulo no anula AdminOrdersController, AdminProductsController, etc. |
| #M23¤ ganchos compatibles | Usa los ganchos de acciónXxx y displayXxx, no los ganchos antiguos |
| #M26¤ vs #M32# | Oficina frontal: #M26¤ todavía está bien. Oficina de atrás: debe ser #M32¤ para PS9 páginas |
| Webservice vs Admin API | Legacy Webservice todavía funciona; Admin API prefirió para nuevas integraciones |
| Dependencias de compositores | Todos los paquetes de proveedores soportan #M43¤ 8.1+ |
Preguntas frecuentes
¿Todos los módulos #M19¤ 8 funcionan en PS9?
No automáticamente. Los módulos que solo añaden funcionalidad de oficina frontal (banners, popups, elementos de página de productos) suelen funcionar sin cambios. Los módulos que anulan los controladores de administración o usan funciones deprecated PHP 7.x necesitarán actualizaciones.
¿Dónde puedo comprobar la compatibilidad del módulo oficial?
Revise el listado del módulo en el #M19¤ Addons Marketplace — cada módulo muestra sus versiones PS compatibles. Siempre verifique en un entorno de estadificación antes de mejorar la producción.
¿Qué pasa si instalo un módulo incompatible en PS9?
#M19¤ normalmente mostrará una advertencia de compatibilidad. En los peores casos, el módulo puede causar un error PHP fatal. Activar el modo de depuración antes de probar módulos incompatibles, y siempre tener una copia de seguridad lista.