Magento 2.4.4: Nueva versión disponible

por David Abad
Magento 2.4.4

Ya está disponible la versión de Magento 2.4.4 que incluye múltiples novedades entre las que se incluye compatibilidad con PHP 8.1. Descubre cuales son las novedades técnicas y funcionales más importantes y cómo puedes aplicarlas.

Cambios en Magento 2.4.4

La versión 2.4.4 de Magento se centra en mejorar las funcionalidades ya incluidas en las versiones previas de Magento, aportando soporte para nuevas versiones de software y mejorando la seguridad, el rendimiento y corrigiendo numerosos problemas que se habían detectado. 

Esta actualización marca la línea que se seguirá a partir de ahora en las actualizaciones de Magento, centrándose en mejorar las funcionalidades ya existentes, pero sin incluir nuevos desarrollos.  

A continuación se listan los cambios más destacados de esta nueva versión:

  • Soporte para PHP 8.1.
  • Soporte para OpenSearch.
  • Soporte para ElasticSearch 7.16.
  • Soporte para PWA Studio 12.3.
  • Extensión y mejora de API GraphQL.
  • Librería JQuery actualizada a la versión 3.6.
  • Librería JQuery UI actualizada a la versión 1.13.
  • Librería RequireJS actualizada a la versión 2.3.6.
  • Librería TinyMCE actualizada a la versión 5.8.1.
  • Eliminadas extensiones de terceros del vendor.
  • +250 mejoras de seguridad, rendimiento y fixes.
  • Mejoras de accesibilidad.

Compatibilidad con PHP 8.1

Sin ninguna duda, uno de los cambios más relevantes en esta versión es la compatibilidad con PHP 8.1Se ha hecho un gran trabajo de adaptación del core de Magento y de todos los módulos necesarios para ser completamente compatibles con esta versión de PHP. 

Gracias a este cambio, podremos utilizar las nuevas características y conceptos incluidos en las versiones 8.0 y 8.1 de PHP en nuestros desarrollos. Puedes consultar las mejoras más relevantes introducidas en estas versiones de PHP en el siguiente artículo: 

A nivel de programación, una gran mejora aplicable en el día a día de todo desarrollador de Magento es la “promoción de propiedades” en la inyección de dependencias de los constructores. Este cambio permitirá ahorrar líneas de código en las asignaciones de las dependencias inyectadas a las variables de clase:

Inyección de dependencias en Magento 2.4.3:

class Data { 
    private $resource; 
    private $collection; 
    private $repository; 
    
    public function __construct( 
        \Magento\Customer\Model\ResourceModel\Customer $resource, 
        \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory $collection,
        \Magento\Customer\Api\CustomerRepositoryInterface $repository 
    ) { 
        $this->resource = $resource; 
        $this->collection = $collection; 
        $this->repository = $repository; 
    } 
}

Inyección de dependencias en Magento 2.4.4:

class Data { 
    public function __construct( 
        private \Magento\Customer\Model\ResourceModel\Customer $resource, 
        private \Magento\Customer\Model\ResourceModel\Customer\CollectionFactory $collection,
        private \Magento\Customer\Api\CustomerRepositoryInterface $repository 
    ) {} 
}

Compatibilidad con OpenSearch

Otro cambio introducido en Magento 2.4.4 es la compatibilidad con OpenSearch, una alternativa open source al motor de búsqueda de ElasticSearch.

OpenSearch

OpenSearch

OpenSearch es creado por Amazon como un fork de la suite de Elastic + Kibana y su código es públicamente accesible desde su repositorio en Github.

Mejoras de rendimiento y seguridad

Esta versión de Magento implementa numerosas mejoras en el rendimiento, especialmente durante el flujo de realización de un pedido, con el objetivo de acelerar la experiencia del usuario durante el proceso de checkout:

  • Procesamiento asíncrono de pedidos.
  • Procesamiento asíncrono de quotes negociables (B2B).
  • Cálculo diferido de importes totales de pedido.

Otro aspecto que se ha mejorado notablemente es la seguridad de la plataforma:

  • Uso de Secure URL por defecto.
  • Los IDs de sesión dejan de almacenarse en base de datos.
  • Encriptación de tokens al almacenarse en base de datos.
  • Limitaciones de tamaño y nº de recursos en Web API.
  • Corregidas vulnerabilidades CVE-2022-24086 y CVE-2022-24087.

Con el objetivo de mejorar la seguridad, Magento ha dejado de permitir el uso de llamadas a funciones desde plantillas de email. Por lo que el uso de sentencias como:

{{var order.getEmailCustomerNote()}}

Deja de estar permitido y deberá realizarse una adaptación siguiendo las instrucciones indicadas en la DevDoc.

Para comprobar si alguna de nuestras plantillas de email es incompatible, se han habilitado los siguientes comandos que revisarán todas las plantillas almacenadas en busca de incompatibiliades:

bin/magento dev:email:override-compatibility-check
bin/magento dev:email:newsletter-compatibility-check

GraphQL y el futuro de Magento

Cómo ya se ha ido realizando en las últimas actualizaciones, se ha continuado mejorando y extendiendo el API GraphQL de Magento, dando soporte a funcionalidades como los quotes negociables (Magento B2B). 

Estos cambios siguen la línea marcada por Adobe, con intención de potenciar un Magento headless, desacoplando el front y el back y permitiendo su conexión con diferentes servicios (SaaS) proporcionados por la suite de Adobe Experience cómo Adobe Experience Manager, Adobe Sensei o Adobe Journey Optimizer.

Aunque Adobe no tiene intención de discontinuar Magento Open Source, el futuro de Magento pasa por los siguientes puntos:

  • Potenciación de Magento headless, mediante el uso de la API GraphQL. 
  • Actualizaciones centradas en seguridad y rendimiento. Sin incluir funcionalidades nuevas en el core.
  • Conexión de Magento con servicios externos de la suite de Adobe.

Viendo la hoja de ruta de Adobe, aunque no se pretende discontinuar el proyecto de Magento Open Source, su funcionalidad irá quedando notablemente obsoleta con el tiempo, ya que el desarrollo de nuevas funcionalidades no se realizará sobre el propio core de Magento, sino que se realizará sobre servicios externos de la suite de Adobe que se interconectaran con Magento Commerce.

Listado completo de cambios

Para conocer más detalles de todos los cambios introducidos en Magento 2.4.4, puede consultarse la documentación oficial de Magento Devdoc:

¿Conviene actualizar?

Antes de realizar una actualización de la versión de Magento en un proyecto en producción, conviene analizar las ventajas y los riesgos de este proceso. 

A pesar de que esta versión no aporta ningún cambio funcional relevante, se han realizado numerosas mejoras de calidad,  rendimiento y seguridad. Por lo que es una actualización interesante, aunque cabe destacar que Adobe seguirá dando soporte a las versiones 2.4.0 – 2.4.3 de Magento hasta Noviembre de 2022, por lo que no será crítico llevar a cabo la actualización hasta esta fecha:

Magento: Soporte versiones

Magento: Soporte versiones

Una vez se aborde el proceso de actualización de Magento, se deberá prestar especial atención a los siguientes puntos:

  • Actualización de dependencias de software en el servidor: PHP, ElasticSearch…
  • Revisión de compatibilidad de componentes personalizados con PHP 8.1 y las nuevas versiones de las librerías.
  • Revisión de compatibilidad de librerías de terceros incluidas en el proyecto.
  • Revisión de compatibilidad de class rewrites incluidos en componentes personalizados.
  • Revisión de compatibilidad de plantillas de email.
  • Revisión de uso de funciones deprecadas en componentes personalizados.
  • Tras la actualización, realizar una validación visual de posibles elementos de layout o estilos inesperados.
  • Tras la actualización, realizar una validación funcional de implementaciones personalizadas y librerías de terceros.

En el siguiente artículo se puede comprobar el procedimiento a seguir para realizar una actualización de Magento y los aspectos a tener en cuenta antes de comenzar con el proceso:

Déjanos tu email para recibir contenido interesante en tu bandeja de entrada, cada mes.

¡No hacemos spam!

Otros artículos