PrestaShop 9 es el mayor salto arquitectonico desde la serie 1.7. Internamente, la plataforma migro a Symfony 6.4 LTS, reemplazo los patrones legacy ObjectModel con Doctrine ORM para entidades principales e introdujo una verdadera API REST basada en API Platform. Si mantienes modulos, estos cambios importan – y prepararte ahora te ahorrara prisas despues.

El cambio a Symfony 6.4

PrestaShop 9 viene con Symfony 6.4, lo que significa varias cosas para los desarrolladores de modulos:

  • Las definiciones de servicios deben usar las nuevas convenciones de autowiring – el antiguo enfoque services.yml aun funciona pero esta obsoleto
  • Las anotaciones de controllers se reemplazan por atributos PHP 8 – #[Route] en lugar de @Route
  • Los event subscribers usan el atributo #[AsEventListener] para el registro automatico
  • El requisito minimo de PHP es ahora 8.1, con 8.2+ recomendado

La buena noticia: la mayoria de los hooks y el sistema de modulos en si permanecen retrocompatibles. Tu hookDisplayHeader() sigue funcionando. Pero si tu modulo registra servicios Symfony, controllers de admin o comandos CQRS – revisalos cuidadosamente.

Doctrine ORM reemplaza ObjectModel para el nucleo

Este es el cambio que sorprende a la mayoria de los desarrolladores. Las entidades principales como Product, Category y Customer ahora se gestionan via Doctrine. Lo que esto significa en la practica:

  • Las consultas SQL directas contra tablas principales siguen funcionando, pero la capa ORM puede no ver tus cambios inmediatamente
  • El enfoque Db::getInstance() sigue siendo funcional para tus propias tablas de modulo
  • Si usas handlers CQRS que interactuan con entidades principales, cambia al patron Doctrine Repository
  • Las subclases legacy ObjectModel para entidades principales estan marcadas como obsoletas

API Platform: por fin REST real

PrestaShop 9 expone una verdadera API REST construida sobre API Platform. Esto reemplaza el antiguo webservice que ha existido desde PrestaShop 1.5. Mejoras clave:

  • Respuestas compatibles con JSON:API con paginacion y filtrado adecuados
  • Autenticacion OAuth 2.0 con tokens de acceso con alcance limitado
  • Documentacion OpenAPI auto-generada a partir de los metadatos de entidades
  • Los recursos API personalizados pueden ser agregados por modulos usando anotaciones estandar de API Platform

Lista de verificacion de migracion para desarrolladores de modulos

  1. Probar en PHP 8.1+ – eliminar el codigo de compatibilidad con PHP 7.x
  2. Verificar servicios Symfony – asegurar que las definiciones de servicios son compatibles con Symfony 6.4
  3. Revisar handlers CQRS – migrar el acceso a entidades principales a repositorios Doctrine
  4. Actualizar controllers de admin – si usas controllers Symfony, migrar anotaciones a atributos
  5. Probar operaciones de base de datos – verificar que las consultas SQL directas en tablas principales siguen funcionando correctamente junto al ORM
  6. Agregar ps_versions_compliancy – establecer la version min/max en el descriptor del modulo para indicar soporte PS9

Lo que permanece igual

No todo cambia. El sistema de hooks, las plantillas Smarty para el front-office, el formato del descriptor de modulo y la estructura general de directorios permanecen consistentes. La promesa de retrocompatibilidad de PrestaShop significa que la mayoria de los modulos bien escritos funcionaran con ajustes minimos.

La conclusion clave: prueba temprano, actualiza tus definiciones de servicios y adopta Doctrine donde tenga sentido. PrestaShop 9 es una mejor base para el largo plazo – y los modulos que adopten los nuevos patrones seran mas faciles de mantener.

Compartir este artículo:
David Miller

David Miller

Más de una década de experiencia práctica con PrestaShop. David desarrolla módulos de comercio electrónico de alto rendimiento centrados en SEO, optimización del checkout y gestión de tiendas....

Comentarios (8)

T
Thomas Mueller 14/02/2026
We just finished migrating our checkout module to PS9. The process was smoother than expected - most hooks work identically. The main pain point was updating our admin controllers from annotations to attributes.
Responder
E
Elena Rodriguez 14/02/2026
Does anyone know if the hook system changes affect actionProductUpdate? We rely heavily on that hook for our inventory sync module.
Responder
D
David Miller 14/02/2026
Elena, actionProductUpdate works the same way in PS9. The hook system is fully backwards-compatible. Your inventory sync module should be fine without changes.
J
Jakub Kowalski 14/02/2026
The migration checklist is super helpful. One thing I would add: test your cron jobs and CLI commands too. We found that some of our module console commands broke because of the Symfony 6.4 DI container changes.
Responder
S
Sophie Laurent 14/02/2026
Great point about CLI commands Jakub! We had a similar issue with our import cron. The fix was updating the service injection in our console command class.
S
Sophie Laurent 14/02/2026
Finally someone explains the API Platform integration clearly. We have been struggling with the old webservice for years. The OAuth2 scoped tokens alone make the upgrade worth it.
Responder
M
Marcus Weber 14/02/2026
Great overview of the PS9 changes! The Doctrine ORM migration is definitely the biggest challenge for us. We have about 15 modules that use ObjectModel extensively. Any tips on a gradual migration path?
Responder
D
David Miller 14/02/2026
Thanks Marcus! For a gradual migration, I recommend starting with read-only Doctrine queries alongside your existing ObjectModel code. That way you can test without risk. Replace ObjectModel writes only after thorough testing.

Dejar un comentario

Cargando...
Volver arriba