Hace ya unos días (el 28 de abril) llegó la nueva y muy anunciada versión de nuestra plataforma de ecommerce de cabecera.

Históricamente los lanzamientos de las nuevas versiones eran más opacos y era fácil concentrarse en los nuevos features o cambios funcionales o de seguridad. Desde la versión 2 de Magento, gracias a que el código es mayormente público, la cantidad de cambios y correcciones es tan extensa que cada nuevo release incluye demasiadas novedades de diferente tenor.

Con respecto a 2.3.5 el anuncio los anuncios han sido, quizás, compartimentados. Vemos que se ha separado el anuncio comercial del técnico y se ha brindado información contextual sobre el futuro de la plataforma. Todo al mismo tiempo.

Repasando el anuncio oficial (y más comercial) vemos que lo que se destaca es primero es la recomendación de productos integrada con Adobe Sensei. Ésta funcionalidad viene en formato módulo adicional (cómo B2B o PageBuilder) y disponible sólo para Magento Commerce desde 2.3 en adelante. Para quienes necesiten más información sobre el módulo y la funcionalidad, aquí y aquí un par de links que pueden ayudar.

En Magento 2.3.4 se dio algo similar con la integración de Adobe Stock (aunque en ese caso la integración se disponibilizó para todas las ediciones de la plataforma y lo que se paga es el consumo del servicio).

PageBuilder recibió mejoras (según se indica) y permite ahora la creación de templates para poder reutilizar. ¿Cómo se llevan con PageBuilder?. Yo no tengo tantos kilómetros recorridos ahí, pero veo cómo se sufre en demasiadas oportunidades por los estilos y código extra que se incluye al generar contenido.

Finalmente, y de acuerdo al anuncio comercial, la integración con Amazon que, para nuestras latitudes es algo totalmente inocuo.

Magento 2.3.5 trae también mejoras de seguridad. El reporte de seguridad tiene nuevo hogar: https://helpx.adobe.com/security/products/magento/apsb20-22.html.

Otras novedades y cambios que vamos a encontrar son:

  • Content Security Policies (CSP).
  • Se quita el session_id de las URL.
  • Compatibilidad con ElasticSearch 7. Ahora la compatibilidad es con las version 6 y 7. En Magento 2.4 (el año que viene) la compatibilidad con las versiones 2 y 5 de ElasticSearch será quitada. Cualquier implementación que haga uso de cuestiones específicas de esas versiones, debería comenzar el proceso de actualización. Hay tiempo suficiente.
  • Más integraciones con medio de pago que se deprecan del core. Todas las integraciones que se indican como deprecadas o desaconsejadas, serán removidas del core en 2.4. Este post da mayor claridad.
  • La integración con Signifyd, la cual se había agregado en Magento 2.2, ahora se quita del paquete bundle y si se la requiere, se debe instalar como módulo desde el marketplace.
  • ¡Chau ZendFramework!.¡Hola Laminas!. Si en el camino les pasa que intentan compilar y se chocan con «Cannot declare class Zend_Http_Client, because the name is already in use in…», puede que necesiten revisar su composer.json en búsqueda de "config": { "use-include-path": true } y removerlo si es que existe. Más información sobre el cambio del framework aquí.

Si quieren leer con mucho mayor detalle, como siempre, contamos con los release notes para Magento Open Source y para Magento Commerce.

Respetando los rituales, voy a repasar el proceso de actualización.

Momento de actualizar mi Magento 2.3.4 con sample data. Ejecuto, como siempre, el require:

composer require magento/product-community-edition 2.3.5-p1 --no-update

(Al final vemos lo de p1)

Para el caso de la edición Commerce, deberíamos usar:

composer require magento/product-enterprise-edition 2.3.5-p1 --no-update

O si estás con una instancia Cloud:

composer require magento/magento-cloud-metapackage:">=2.3.5 <2.3.6" --no-update

Luego el update.

composer update

Y comprobamos.

bin/magento --version

El resutlado tiene que ser:

Magento CLI 2.3.5-p1

Y como siempre, actualizamos la base de datos.

bin/magento setup:upgrade

No sólo estamos en la última versión estable, sino hemos resuelto un viejo temita que veníamos arrastrando, genitleza de Magento Shipping.

Nuestra base de datos ha estado mostrando información residual del módulo de Temando Shipping. Por más que deshabilitábamos el módulo en nuestro composer.json, los atributos seguían ahí. Lo mismo con el insoportable mensaje en los logs con respecto al accountId.

Como decía, aún contábamos con tablas.

Y peor aún, con atributos.

Si prestamos atención, en 2.3.5 aparece el módulo Temando_ShippingRemover, que una vez que ejecutemos la actualización de base de datos, nos limpiará (casi) toda la DB.

Se eliminarán esos atributos.

Y las tablas.

Salvo esa, que en el módulo está identificada pero que por la validación que hace no fue eliminada. Luego de revisar el módulo original que la crea (Temando_Shipping), tengo la sensación que esto es un bug ya que los datos que se insertan en esa tabla fueron creados por el instalador original.

¿Qué era lo de p1 en la versión?. El mismo día del lanzamiento se detectó un error en la pre-release y por eso se corrigió con un parche.

Entonces, esto deberían ver para confirmar que están en la última versión estable.

¿Ya actualizaron?