Magento Open Source incorpora mejoras en la calidad de la plataforma, los métodos de pago, el rendimiento de la caché de GraphQL y la accesibilidad. Incluye actualizaciones de los módulos integrados de Google.
Esta versión incluye más de 290 correcciones y mejoras de calidad.
Las versiones pueden contener cambios incompatibles con versiones anteriores (BIC). Magento Open Source 2.4.5 contiene cambios incompatibles con versiones anteriores. Para revisarlos, consulte la referencia de BIC. (Los cambios incompatibles más importantes se describen en los aspectos destacados de BIC. No todas las versiones introducen BIC importantes).
Magento Open Source incorpora mejoras en la calidad de la plataforma, los métodos de pago, el rendimiento de la caché de GraphQL y la accesibilidad. Incluye actualizaciones de los módulos integrados de Google.
Esta versión incluye más de 290 correcciones y mejoras de calidad.
Las versiones pueden contener cambios incompatibles con versiones anteriores (BIC). Magento Open Source 2.4.5 contiene cambios incompatibles con versiones anteriores. Para revisarlos, consulte la referencia de BIC. (Los cambios incompatibles más importantes se describen en los aspectos destacados de BIC. No todas las versiones introducen BIC importantes).
Otra información de la versión
Aunque el código de estas funcionalidades se incluye en las versiones trimestrales del código principal de Magento Open Source, varios de estos proyectos también se publican de forma independiente. Las correcciones de errores de estos proyectos se documentan en la información de versión especÃfica de cada proyecto, disponible en su documentación.
Aspectos destacados de Magento Open Source 2.4.5
Estos son los aspectos más destacados de esta versión.
Mejoras de seguridad
Esta versión incluye 20 correcciones de seguridad y mejoras de seguridad de la plataforma. Esta corrección de seguridad se ha incorporado también a Magento Open Source 2.4.4-p1 y Magento Open Source 2.3.7-p4.
Hasta la fecha no se ha producido ningún ataque confirmado relacionado con estos problemas. Sin embargo, algunas vulnerabilidades podrÃan explotarse para acceder a información de clientes o tomar el control de sesiones de administrador. La mayorÃa de estos problemas requieren que el atacante obtenga primero acceso al Admin. Por ello, le recordamos que tome todas las medidas necesarias para proteger su Admin, entre ellas:
- Lista de IP permitidas
- autenticación de dos factores
- uso de una VPN
- uso de una ubicación única en lugar de
/admin - buenas prácticas con las contraseñas
Consulte el boletÃn de seguridad de Adobe para obtener la información más reciente sobre estos problemas corregidos.
Mejoras de seguridad adicionales
Las mejoras de seguridad de esta versión refuerzan el cumplimiento de las mejores prácticas de seguridad más recientes, entre ellas:
-
Se ha añadido compatibilidad con reCAPTCHA a los formularios de compartir la lista de deseos, crear una nueva cuenta de cliente y tarjeta regalo.
-
Se han añadido recursos ACL a Inventory.
-
Se ha reforzado la seguridad de las plantillas de Inventory.
-
El filtro
MaliciousCodese ha actualizado para utilizar la bibliotecaHtmlPurifier.
Mejoras de la plataforma
Magento Open Source 2.4.5 ahora es compatible con
-
Composer 2.2
-
TinyMCE (5.10.2). Las versiones anteriores de TinyMCE (v5.9.2 o anteriores) permitÃan la ejecución arbitraria de JavaScript al actualizar una URL especialmente manipulada o una imagen con una URL especialmente manipulada.
-
jQueryUI (1.13.1)
-
PHPStan(^1.5.7 con restricción) GitHub-35315
El esquema de la integración de DHL se ha actualizado de v6.0 a v6.2. Esta actualización no supone ningún cambio en el comportamiento del producto.
Las bibliotecas JavaScript obsoletas se han actualizado a sus últimas versiones y se han eliminado las dependencias obsoletas. Estos cambios son compatibles con versiones anteriores.
Actualizaciones de dependencias de Composer
Las siguientes dependencias de Composer se han actualizado a las últimas versiones con restricción:
colinmollenhour/credis(1.13.0)guzzlehttp/guzzle(^7.4.2)laminas/laminas-captcha(actualizada con la restricción ^2.12)laminas/laminas-db(^2.15.0)laminas/laminas-di(^3.7.0)laminas/laminas-escaper(~2.10.0)laminas/laminas-eventmanager(^3.5.0)laminas/laminas-feed(^2.17.0)laminas/laminas-mail(^2.16.0)laminas/laminas-mvc(^3.3.3)laminas/laminas-server(^2.11.1)laminas/laminas-servicemanager(^3.11.0)laminas/laminas-validator(^2.17.0)league/fly(2.4.3)monolog/monolog(^2.5)phpmd/phpmd(^2.12.0)phpstan/phpstan(^1.5.7)phpunit/phpunit(~9.5.20)php-cs-fixer(^3.4.0)webonyx/graphql-php(14.11.6)
Se han eliminado las dependencias laminas/laminas-session, laminas/laminas-text y laminas/laminas-view.
Otras actualizaciones y sustituciones
-
El esquema de la integración de DHL se ha actualizado de v6.0 a v6.2.
-
La URL de pasarela predeterminada para los envÃos de USPS se ha actualizado para usar
httpsen lugar dehttp. -
La biblioteca
Froogaloopse ha sustituido por la bibliotecaPlayer.jsde Vimeo (2.16.4). -
La biblioteca
grunt-eslint(NPM) se ha actualizado a la última versión. -
Las bibliotecas
jQuery Storagese han sustituido porjulien-maurel/js-storage. -
Las herramientas de análisis estático de código
php-cs-fixeryphpcsahora son compatibles con PHP 8.x. -
Dependencia
glob.js(actualizada con restricción a ~7.2.0) -
Dependencia
serve-static.js(actualizada con restricción ~1.14.2) -
Dependencia
underscore.js(NPM) (1.14.2) -
moment-timezone-with-data.js(0.5.34) -
La biblioteca
jquery/jquery-cookiese ha sustituido porjs-cookie/js-cookie. -
Las bibliotecas
jarallax.jsyjaralax-video.jsse han actualizado para usar la última versión de la API REST de Vimeo.
Actualizaciones de accesibilidad
Esta versión se ha centrado en crear una experiencia de tienda en Venia (PWA) más perceptible, operable, comprensible y robusta. Estas mejoras incluyen:
- La información resumida de los resultados de búsqueda ahora se anuncia a los usuarios de lectores de pantalla
- Los lectores de pantalla ahora reciben aviso cuando se carga una nueva vista de página
- Se han mejorado el contraste y la accesibilidad mediante teclado
Google Analytics
Google ha actualizado los mecanismos de seguimiento e integración de AdWords y Analytics en las aplicaciones web mediante la integración con GTag. Esta integración de las funcionalidades de Google en las páginas web amplÃa las posibilidades de seguir y gestionar contenido a través de los servicios de Google. Adobe Commerce cuenta con un conjunto de módulos integrados, como Google AdWords, Analytics, Optimizer y TagManager, que utilizan la API anterior para integrarse con los servicios de Google. En esta versión, hemos vuelto a implementar esta integración con el enfoque GTag.â Consulte Migrar de analytics.js a gtag.js (Universal Analytics).
GraphQL
Las mejoras de rendimiento de GraphQL incluyen:
-
Los desarrolladores y administradores disfrutan de una reconstrucción más rápida del esquema GraphQL unificado de la tienda durante el despliegue o al cambiar atributos en producción. Los compradores también notan una carga de página mucho más rápida cuando hay que reconstruir el esquema GraphQL por cualquier motivo.
-
Se ha añadido la posibilidad de consumir la fecha y hora de caducidad del token de autorización mediante JSON Web Tokens (JWT) en la API GraphQL.
-
El comando
bin/magento config:set graphql/session/disable 1permite a los comerciantes desactivar por completo la creación de cookies de sesión en todas las operaciones GraphQL. De forma predeterminada, Magento Open Source crea estas cookies y depende de ellas para la autorización, lo que afecta al rendimiento. A partir de ahora, recomendamos utilizar tokens como única forma de autorización para las solicitudes GraphQL. No recomendamos usar cookies de sesión por sà solas ni junto con tokens de autorización. Consulte Autorización en GraphQL. -
Las cookies de sesión ahora se inician en las operaciones GraphQL mediante proxies de clase solo cuando es necesario.
-
Se ha eliminado el uso de la sesión en los procesadores de cabeceras
httpde GraphQL, como los de tienda, cliente o divisa.
Consulte la GuÃa para desarrolladores de GraphQL para obtener más información sobre estas mejoras.
Inventory
Se ha reforzado la seguridad de las plantillas de Inventory.
Page Builder
Page Builder v.1.7.2 es compatible con Magento Open Source 2.4.5.
El diseño de columnas de Page Builder incluye estas mejoras:
-
Las columnas ahora están expuestas, lo que permite a los usuarios controlar su configuración en la tienda.
-
El redimensionamiento de columnas ahora admite el ajuste de lÃnea activado por acciones del usuario.
Pagos
Apple Pay ya está disponible para todos los comerciantes con despliegues que tengan Payment Services activado. Este método de pago no requiere que los compradores introduzcan los datos de su tarjeta de crédito o débito. Apple Pay está disponible en la página de detalles del producto, el minicarrito, el carrito de la compra y el proceso de pago. Los comerciantes pueden activar esta funcionalidad.
PayPal
-
Los comerciantes de España e Italia ya pueden ofrecer PayPal Pay Later a sus compradores.
-
Las vistas previas de los botones de PayPal, Credit y Pay Later ya están disponibles en el Admin para las páginas de pago, minicarrito, carrito y producto. Las vistas previas muestran cómo se verán estos botones cuando estén activados y se muestren en la tienda.
Braintree
-
Braintree ha dejado de ofrecer la integración de protección contra el fraude KOUNT, que se ha eliminado del código de Magento Open Source.
-
Se ha añadido al Admin la opción Always request 3DS.
PWA Studio
PWA Studio v.12.5.x es compatible con Magento Open Source 2.4.5.
Las nuevas funcionalidades de esta versión incluyen:
-
En la tienda de PWA Studio se recopilan datos sobre el comportamiento de los compradores para los servicios de analÃtica web. Los comerciantes ya pueden suscribirse a estos eventos y ampliarlos según sus necesidades.
-
Los comerciantes ya pueden seleccionar desde el Admin un servicio para desplegar (Google Tag Manager).
Para obtener información sobre mejoras y correcciones de errores, consulte las versiones de PWA Studio. Consulte Compatibilidad de versiones para ver la lista de versiones de PWA Studio y las versiones del núcleo de Magento Open Source compatibles.
Problemas corregidos
Hemos corregido cientos de problemas en el código principal de Magento Open Source 2.4.5.
Instalación, actualización y despliegue
- Ahora puede cambiar el nombre de un parche de datos y añadir el nombre de clase anterior como alias en la tabla
patch_listde la base de datos. Ahora se comprueba si los alias del parche de datos ya existÃan en la base de datos antes de aplicar el parche. Anteriormente, Magento Open Source generaba un error en estas condiciones. - Magento Open Source ya no genera una excepción al intentar cambiar desde el Admin la URL del Admin por una URL personalizada. Anteriormente, tras cambiar la URL del Admin, no era posible iniciar sesión. GitHub-35416
- Los comerciantes ya pueden actualizar correctamente un despliegue de Magento Open Source 2.4.2 con Klarna a Magento Open Source 2.4.3. GitHub-33760
- La ruta a Magento Open Source Analytics ya no está fijada en el código. Anteriormente, esta ruta fija provocaba conflictos cuando se instalaban varias instancias de Magento Open Source en un mismo servidor. GitHub-29373
Accesibilidad
- El botón Shopping bag ahora ofrece una indicación programática o textual de su estado. Los usuarios de lectores de pantalla reciben aviso de que al hacer clic en este botón se desplegará otro contenido, o de que el contenido asociado está desplegado o contraÃdo. Anteriormente, este botón no ofrecÃa ninguna indicación programática o textual de su estado.
- Los elementos de texto o imágenes de texto de la opción de tarjeta de crédito en la información de pago ahora cumplen la relación de contraste mÃnima de 4.5:1 exigida por WCAG 2.0 para texto estándar de 18pt (24px) o de 14pt (19px) en negrita. Anteriormente, no alcanzaban la relación de contraste esperada.
- Los indicadores de foco personalizados de Address book > Communication > Account information ahora ofrecen una relación de contraste de al menos 3:1 respecto al color de fondo.
- El texto de los botones Filter y Sort ahora cumple la relación de contraste mÃnima de 4.5:1 exigida por WCAG 2.0 para texto estándar de 18pt (24px) o de 14pt (19px) en negrita. Anteriormente, los botones de navegación de los carruseles no cumplÃan estos requisitos mÃnimos de contraste.
- Los lectores de pantalla anuncian la palabra âVeniaâ una sola vez al navegar a las cabeceras y pies de página de Venia. Anteriormente, la misma palabra se anunciaba dos veces seguidas.
- Los botones que abren menús desplegables ahora proporcionan a los lectores de pantalla información sobre su estado desplegado o contraÃdo y nombres accesibles.
- Los usuarios de lectores de pantalla reciben aviso cuando se muestra una nueva vista de página. Anteriormente, cuando cambiaba el tÃtulo de una página, el cambio no se anunciaba.
Adobe Stock
- Los usuarios ya pueden cerrar sesión correctamente en Adobe Stock.
Productos agrupados (bundle)
- Ahora puede usar el endpoint
PUT /V1/productspara actualizar los atributos de precio de un producto en un sitio web concreto. Anteriormente, si algunos atributos del producto se habÃan sobrescrito para una vista de tienda concreta, no se podÃa actualizar un atributo de precio de ese producto en esa misma vista de tienda. - Magento Open Source ahora calcula correctamente el total del carrito para un producto bundle cuando se aplica la regla Product Subselect.
Caché
- La caché de página completa ya no aparece como desactivada en el Admin cuando se vacÃa la caché de Magento Open Source y
use_stale_cacheestá activado. - Los marcadores de despliegue de New Relic ahora funcionan como se espera al vaciar la caché. GitHub-32649
Carrito y proceso de pago
- La ventana emergente de búsqueda de direcciones en el paso de facturación del proceso de pago ya no provoca errores en el DOM.
- La mutación
addProductsToCartahora funciona correctamente con varios productos. Anteriormente, esta consulta devolvÃa el primer producto con un subtotal correcto, pero un subtotal de 0 para los demás productos. - Ahora se gestionan las excepciones de permisos para los productos restringidos que se añaden por SKU. Los compradores reciben un mensaje adecuado en la tienda y el campo de cantidad de la tabla de errores se desactiva. Anteriormente, Magento Open Source generaba una excepción como esta:
There has been an error processing your request. - Se ha optimizado la consulta SQL que actualiza los presupuestos afectados tras desactivar una regla de precios del carrito, para evitar bloquear toda la tabla de presupuestos.
- En un despliegue multisitio con la compra como invitado desactivada, los compradores con cuentas compartidas globalmente ya no tienen que volver a iniciar sesión en un sitio web secundario. Los datos del cliente ahora se cargan cuando el comprador navega al subdominio. Ya no se le pide que vuelva a iniciar sesión y se muestra el contenido anterior del carrito.
- En un proceso de pago con varias direcciones, los valores del desplegable de direcciones ya no cambian para los artÃculos restantes de un presupuesto cuando se elimina un artÃculo de dirección con cantidad única. Anteriormente, al eliminar un producto de un presupuesto durante el pago con varias direcciones, el valor del desplegable de direcciones volvÃa al predeterminado para todos los productos.
- La consulta
cartya no devuelve respuestas nulas cuando un producto está agotado. Se ha añadido a la respuesta un nuevo elementoerrorsque contiene el mensaje de error. Anteriormente, al ejecutar una consulta con un producto agotado, Magento Open Source mostraba un valornullen la secciónitemsde la respuesta. Consulte consulta cart. - Los métodos de envÃo ya están disponibles como se espera cuando un comprador invitado crea una cuenta después de añadir un producto al carrito y antes de pasar al proceso de pago. Anteriormente, cuando un invitado añadÃa un producto al carrito antes de crear una cuenta, no habÃa métodos de envÃo disponibles durante el pago. Tras añadir otros productos al carrito, los métodos de envÃo pasaban a estar disponibles.
- Los compradores ya pueden añadir productos al carrito cuando no se ha seleccionado ninguna opción en el campo Allow Countries.
- El contenido del carrito y el estado de inicio de sesión ahora se recargan como se espera tras caducar una sesión cuando Enable Persistence está configurado como Yes. GitHub-35182
- Los subtotales del minicarrito ahora se actualizan correctamente cuando un comprador pasa de la página de envÃo a la página del carrito durante el proceso de pago de un pedido con varias direcciones de envÃo. Anteriormente, el subtotal se duplicaba.
- El minicarrito ahora muestra los productos añadidos previamente tras caducar una sesión cuando Enable Persistence está activado. GitHub-35183
- Los comerciantes ya pueden crear una factura rectificativa en la que Refund Shipping (Incl. Tax) esté configurado en -0.01 y ahora pueden fijar este importe en 0. Anteriormente, no se podÃa crear la factura rectificativa en estas condiciones.
Regla de precios del carrito
- El ámbito de atributo
Parent Onlyahora se utiliza correctamente en la condición de la regla del carrito.
Catálogo
- Las claves URL de los productos ya no cambian al actualizar el nombre del producto mediante
PUT /V1/products/para una vista de tienda. Anteriormente, se generaba una nueva clave URL basada en el nuevo nombre y se asignaba al producto, sobrescribiendo la clave URL de esa vista de tienda. - Añadir un producto a una categorÃa desde el widget de productos de Page Builder en modo carrusel ya no provoca la recarga de la página.
- Los productos configurados como Not Visible Individually ya no aparecen en los resultados de la búsqueda avanzada del catálogo.
- Los atributos dinámicos de bundle ahora se actualizan correctamente en la página de actualización masiva de atributos. Anteriormente, el atributo Dynamic SKU seguÃa configurado como Yes aunque se hubiera desactivado en la página de actualización masiva.
- Las reglas de catálogo ahora se aplican correctamente mediante indexadores incrementales en lugar de una reindexación completa.
- Ahora puede alternar correctamente entre la vista de lista y la de cuadrÃcula en listados de productos de varias páginas. Anteriormente, al ir a la última página de un listado de productos en vista de lista y cambiar a la vista de cuadrÃcula, Magento Open Source mostraba este error:
Unfortunately there are no products in this category on our website currently. - Los informes del Admin Action Log ahora muestran como se espera los ID de producto actualizados y la información de estado actualizada.
- Los triggers ahora se restauran como se espera en la tabla
catalogrule_product_pricetras una reindexación completa. Anteriormente, los triggers se eliminaban de la tablacatalogrule_product_pricetras una reindexación completa decatalogrule_ruleocatalogrule_product. - Las reglas de categorÃa que se utilizan para asignar productos a categorÃas ya no cambian aleatoriamente.
- Un administrador con acceso restringido por ámbito ya no puede actualizar categorÃas de forma global. Anteriormente, cuando varios sitios web usaban la misma categorÃa con productos distintos y un administrador con permisos limitados a una tienda cambiaba los productos de la categorÃa, la selección de productos también cambiaba en las demás tiendas.
- La página de detalles del producto ahora muestra el precio correcto cuando se utiliza una divisa no predeterminada para una configuración regional concreta. Anteriormente, los números no se localizaban como se esperaba en la tienda.
- La API y la tienda ahora muestran el mismo mensaje de error al intentar obtener los precios escalonados de un producto con registros duplicados. Anteriormente,
PUT /V1/products/tier-pricesdevolvÃa un mensaje de error incorrecto. - Magento Open Source ahora muestra mensajes de error de validación al intentar añadir una clave URL de producto que termina en guion. También hay disponible un texto de ayuda informativo.
- El nuevo campo
ConfigurableWishlistItem.configured_variantha sustituido al campoConfigurableWishlistItem.child_sku. Este último provocaba un error interno cuando la lista de deseos de un cliente contenÃa un producto configurable sin configurar. - Durante la actualización masiva de atributos para cambiar la visibilidad de los productos, las reescrituras de URL ahora se generan solo para las tiendas seleccionadas. Anteriormente, la actualización masiva creaba una reescritura de URL para la tienda equivocada.
- Cuando el ajuste
Synchronize widget products with backend storageestá activado, Magento Open Source añade los datos de los productos vistos recientemente a la tablacatalog_product_frontend_actionde la base de datos, incluyendo el ID del cliente o del visitante al añadir registros. La secciónrecently_viewed_productde la respuesta ahora está vacÃa si el ID de cliente y el ID de visitante son nulos. Como resultado, cuando se envÃa la solicitud Ajaxcustomer/section/load, Magento Open Source puede filtrar correctamente los productos vistos recientemente según el ID de cliente o de visitante. Anteriormente, la respuesta incluÃa todos los datos disponibles en la tablacatalog_product_frontend_actionporque no se comprobaba si el ID de cliente o de visitante estaba vacÃo. - Los administradores ya pueden cambiar las opciones de productos configurables en el carrito de un comprador desde el panel deslizante del Admin. Anteriormente, el panel deslizante no funcionaba correctamente.
- La caché de página ahora se borra como se espera para el producto configurable padre cuando se guardan cambios en un producto hijo. Anteriormente, como la caché no se borraba, los cambios no se reflejaban en la página del producto configurable en la tienda. GitHub-34508
- Los listados de productos ahora se muestran correctamente en el Admin. Anteriormente, el listado no se mostraba y Magento Open Source mostraba este error:
Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "<ID>" already exists. GitHub-33145 - En despliegues multitienda, los precios de los productos ahora coinciden en la página de detalles del producto y en la búsqueda de la tienda después de cambiar el ámbito de precios del catálogo de website a global. Anteriormente, la página de resultados de búsqueda del catálogo mostraba el precio global y la página de detalles del producto mostraba el precio de website. GitHub-34074
- La navegación por capas ahora muestra como se espera los productos de precio más alto cuando Price Navigation Step Calculation está configurado como Manual.
- Ahora puede cambiar el lÃmite de productos por página que se muestra en una categorÃa cuando Remember Category Pagination está activado. Anteriormente, el
form_keyde la cookie y elform_keyde la interfaz no coincidÃan, y Magento Open Source mostraba este error:Invalid Form Key. Please refresh the page. - El indexador EAV ahora procesa los ID de producto como tipo
intpara evitar posibles problemas de rendimiento. - Ahora se genera correctamente una nueva caché de producto después de añadir a un producto una imagen cuyo nombre contiene â.â, guardar el producto y limpiar la caché de imágenes. GitHub-32699
-
Magento Open Source ahora muestra un mensaje de error como se espera al intentar crear un atributo desde la página del producto sin completar el campo Admin. GitHub-33099
-
Las valoraciones de productos ahora son correctas en todos los listados de productos del catálogo cuando la página de inicio contiene varios listados. GitHub-33867
Productos configurables
- Magento Open Source ahora muestra el precio correcto de un producto configurable con una opción seleccionada tras cambiar su cantidad en la página de detalles del producto. Anteriormente, el precio volvÃa al valor inicial al cambiar la cantidad.
- La consulta
productsahora obtiene precios de productos configurables que reflejan con precisión el ajuste de configuración Display Out Of Stock. Anteriormente, la consulta no devolvÃa precios exactos. - Las opciones configurables ahora se vinculan a los productos configurables creados en el Admin mediante
POST /V1/configurable-products/configurable1/child. - Los atributos de selección múltiple ahora se guardan correctamente al editar un producto. Anteriormente, al guardar un producto, Magento Open Source guardaba la opción predeterminada tanto para los atributos no seleccionados como para los seleccionados.
- Magento Open Source ahora muestra los atributos configurables como se espera al crear atributos
selectglobales mediante un script de parche. Anteriormente, los atributos globales aptos quedaban ocultos. -
La mutación
addConfigurableProductsToCartya puede utilizarse para añadir productos configurables con opciones personalizadas. Anteriormente, Magento Open Source generaba este error:Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62. GitHub-28860 -
Ahora puede volver a pedir productos configurables con opciones personalizadas opcionales. Anteriormente, los intentos de repetir el pedido fallaban y se mostraba este error:
Some of the selected options are not currently available. GitHub-35409 - La mutación
addConfigurableProductsToCartahora funciona como se espera con varios productos. Anteriormente, se devolvÃa información de producto incorrecta o un mensaje de error no válido. GitHub-30948
Cliente
- Magento Open Source ahora muestra correctamente en la tienda los atributos de sistema EAV predefinidos según la configuración del sitio web. Anteriormente, los atributos de cliente de nivel de sitio web que estaban activados en un sitio y desactivados en otro se mostraban como activados en ambos.
Productos descargables
- Ahora puede eliminar enlaces y archivos de muestra de un producto descargable. GitHub-31887
Correo electrónico
- Los correos electrónicos emitidos por el sistema ahora se envÃan correctamente a destinatarios cuya dirección contiene â.-â.
- Los clientes ahora reciben los recordatorios por correo electrónico de sus carritos abandonados según la programación correcta. La nueva función SQL
TIMESTAMPDIFF(DAY, ,)ha sustituido a la funciónTO_DAYS()y calcula la diferencia entre las marcas de tiempo teniendo en cuenta la fecha y la hora. Anteriormente, los recordatorios no se enviaban según lo programado debido al cálculo incorrecto de dos valores de fecha y hora: el del abandono del carrito (cualquier zona horaria) y la hora del servidor (UTC). - Magento Open Source ahora muestra un mensaje de error en la página de envÃo cuando un comprador introduce un formato de correo electrónico no válido y hace clic en Place Order. Anteriormente, el mensaje de error se mostraba en la página de pago. [GitHub-33590](https://github.com/magento/magento2/issues/33590
Frameworks
- El comando
bin/magento setup:config:setya no sobrescribe los prefijos de ID de caché ya definidos enapp/etc/env.php. - El comando
bin/magento setup:static-content:deploy -s compactahora incluye como se espera los estilos de los temas hijos. Anteriormente, los archivos CSS del tema no aparecÃan en la tienda tras el despliegue. - Se ha añadido un nuevo sniff que comprueba si se utilizan barras de cierre en los elementos
void. - Magento Open Source ya no genera un error SQL tras asignar una nueva fuente a un producto y cambiar su cantidad. GitHub-35262
- El orden de clasificación de los atributos ahora funciona según lo especificado en el archivo
di.xmltras la actualización. - La función
updateCartCurrencyahora asigna una cadena en lugar de un objeto dentro del objeto del carrito. Anteriormente, Magento Open Source no cargaba un presupuesto mediantegetQuoteporque la funciónupdateCartCurrencyasignaba un objeto en lugar de una cadena dentro del objeto del carrito. GitHub-34199 - Ya no aparecen avisos de obsolescencia en las pruebas unitarias debido a
\DateTimeFormatter::formatObject(). Este método ahora funciona como se espera con valores numéricos para$format. - Magento Open Source ya no muestra un error de
preg_replace()en el Admin. El tercer argumento ($subject) ahora es de tipoarray|stringen lugar debool. - El método
isFreeShippingahora devuelve un entero en lugar de un booleano.GitHub-35164 - Magento Open Source ya no genera el siguiente error al crear un plugin para cualquier método de la clase
vendor/magento/module-backend/Model/Menu.php:Error: Call to undefined method ReflectionUnionType::getName(). GitHub-35292 - Magento Open Source ahora devuelve un error 404 en lugar de un error 500 al acceder a
/checkout/sidebar/updateItemQty/?item_qty=erroren la tienda. Anteriormente, se generaba este error:Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69. GitHub-34380 - Magento Open Source ya no provoca el error
trim(): Passing null to parameter #1 ($string) of type string is deprecatedcuando la conexión AMPQ se configura sin SSL. - Se ha corregido la definición de base de datos
longblogalong blob. GitHub-35108 - El texto de Knockout que contiene comillas simples ahora se puede traducir. GitHub-34319
- Se ha corregido un
TypeErrorenmagento2/app/code/Magento/Security/Model/AdminSessionsManager.php, deintastring. GitHub-34415 - Se ha añadido
.htpasswda las ubicaciones prohibidas en el archivo de configuración denginx. GitHub-35150 - Se ha mejorado el tiempo de carga de las páginas de listado de productos por categorÃa añadiendo
Magento_Ui/js/core/appcomodepsenapp/code/Magento/Ui/view/frontend/requirejs-config.js. GitHub-34847 - El método
ProductRepository.php:getahora devuelve las claves de caché una sola vez. Anteriormente, se devolvÃan dos veces. GitHub-34958 - Se ha añadido un mensaje de error a una nueva excepción creada en el gestor de excepciones de las tareas cron. GitHub-34941
- Se han actualizado los archivos ReadMe de los módulos
GraphQl-GroupedProductGraphQl. GitHub-34951 - Las páginas de impresión de pedidos, facturas y facturas rectificativas de la tienda ya no muestran el logotipo predeterminado de Luma en lugar del logotipo configurado para el sitio web. GitHub-34942
Correcciones generales
- Configurar el tamaño máximo de sesión en 0 (Admin Store > Settings > Configuration - Advanced) ya no cierra la sesión del administrador. GitHub-35312
- Al añadir desde el Admin una nueva dirección de cliente asignada a un sitio web no predeterminado, los ajustes de configuración de los atributos de dirección del cliente ahora se cargan correctamente según el sitio web al que está asignado el cliente.
- Magento Open Source ya no genera una excepción al añadir un producto bundle mediante Page Builder.
- Ahora puede crear una cuenta de cliente en un dispositivo iOS con el apóstrofo inclinado (â) en el nombre, segundo nombre o apellido. Anteriormente, solo se permitÃa el apóstrofo recto, y usar el apóstrofo inclinado predeterminado de iOS 11+ provocaba el error
Name is not valid!. - La consulta
productsahora devuelve información de producto que refleja con precisión la configuración âShow Related Productsâ. Los camposrelated_products,upsell_productsycrosssell_productsde ProductInterface en GraphQL ahora se resuelven según la configuración de Show Related Products, Show Upsell Products y Show Cross-Sell Products, respectivamente. - El atributo Set Product as New From Date ahora muestra la fecha correcta cuando el atributo Set Product as New se configura mediante una actualización masiva de productos. Anteriormente, Set Product as New From Date se mostraba como Jan 1, 1970.
- A los usuarios con roles restringidos ya no se les concede acceso automáticamente a los nuevos módulos.
- Las condiciones de las reglas de productos relacionados ahora funcionan como se espera con productos que contienen atributos
multiselect. - Los comerciantes ya pueden añadir un atributo de precio escalonado (
tier_price) a las comparaciones de productos. Anteriormente, la página de comparación de productos fallaba cuando el ajuste Comparable on storefront de este atributo estaba activado. GitHub-35244 - Magento Open Source ahora muestra un mensaje de error cuando se configura un dominio de cookie no válido (Store > Configurations > Web > Default Cookie Settings Cookie Domain). Anteriormente, el sitio web dejaba de funcionar. GitHub-35048
- Magento Open Source ya no genera un error cuando un administrador con roles limitados a un único sitio web añade un producto a Content Elements con PageBuilder. Anteriormente, Magento Open Source generaba un error SQL.
- Se ha añadido validación a la segunda lÃnea de la dirección en las páginas de edición y creación de direcciones. Ahora se aplican las longitudes mÃnima y máxima de texto especificadas para la segunda lÃnea.
- Magento Open Source ya no genera el siguiente error al crear una regla de catálogo en el Admin tras la actualización:
A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later. - Magento Open Source ya no genera un error al marcar la casilla Check here to link an RSS feed to your Wish List antes de hacer clic en Share Wish list. GitHub-34998
- El tÃtulo de la casilla Show Password (formularios Customer Login, Customer Registration, Customer Edit [sección Change Password] y Customer Set New Password) ahora se puede traducir. GitHub-34857
- Se han actualizado las etiquetas y las descripciones de los comentarios en
app/code/Magento/NewRelicReporting/etc/adminhtml/system.xml. GitHub-31947 - Se han eliminado archivos
csp_whitelist.xmlinnecesarios. GitHub-30607
GraphQL
- Se ha añadido el atributo
price_rangeque faltaba al tipoBundleItemOptionde GraphQL. GitHub-35010 - La consulta
productsya no devuelve atributos como agregación cuando el ajuste de navegación por capas Use in Search Results está desactivado. GitHub-33318 - Se ha añadido un campo
price_including_taxaCartItemPrices. GitHub-29057 - Los campos
new_from_dataynew_to_datefieldsdeProductInterfaceya no están obsoletos. GitHub-34783 - La consulta
categoriesya no genera una excepción al obtener una lista de categorÃas en la que una de ellas contiene una imagen que no se encuentra en el sistema de archivos. Anteriormente, Magento Open Source generaba esta excepción:Category image not found. GitHub-34266 - La consulta
productsahora devuelvecategory_uidcomo agregación, tal como se espera. GitHub-32557 - La mutación
updateCartItemsahora elimina productos como se espera cuando el stock del producto ha alcanzado la cantidad máxima. GitHub-30220 - La consulta
urlResolverahora resuelve correctamente el delimitador de ruta (/) cuando varias páginas de inicio tienen el mismo identificador. Anteriormente, la consulta no resolvÃa el delimitador y devolvÃa null. GitHub-33615 - Las consultas
customerahora obtienen como se espera las opciones de selección múltiple de los productos bundle al consultar pedidos. GitHub-34717 - Las sesiones de Magento Open Source ya no finalizan tras realizar una solicitud GraphQL. Anteriormente, el plugin
ClearCustomerSessionAfterRequestcerraba la sesión del comprador. GitHub-34550 - El rango de precios de los productos configurables en las respuestas de la consulta
productsahora se calcula correctamente cuando el ajuste Display Out of Stock Products está activado. Anteriormente, las opciones desactivadas se tenÃan en cuenta en el cálculo del precio mÃnimo y máximo. - La consulta
productsahora devuelve varias categorÃas correctamente filtradas al ordenar por posición. - Las solicitudes
setShippingAddressesOnCartahora validan correctamente los ID de región. Anteriormente, Magento Open Source generaba un error al usar el ID de región en lugar del código de región. - Las consultas
productsahora devuelven solo las categorÃas asociadas a la tienda indicada en la solicitud. - La consulta
categoryListahora devuelve resultados que reflejan la categorÃa raÃz de la tienda consultada cuando la tienda se especifica en la cabecera. Anteriormente, se incluÃan en los resultados categorÃas de la categorÃa raÃz predeterminada aunque se hubiera especificado otra tienda en la cabecera. - La consulta
productsya no devuelve atributos como agregación cuando el ajuste Use in Search Results Layered Navigation está desactivado. GitHub-33318 - La consulta
cartahora devuelve un único método de pago para los pedidos gratuitos. Anteriormente, la respuesta de la consulta incluÃa todos los métodos de pago activos. GitHub-34036 - Las consultas
productsya no devuelven valores deprice_rangepara productos configurables afectados por variantes desactivadas. GitHub-33629 - Se ha añadido un plugin antes de la llamada a
collectQuoteTotalspara garantizar que el crédito de tienda no se aplique varias veces. - La mutación
generateCustomerTokenAsAdminahora obtiene los tokens de cliente como se espera. Anteriormente, no se devolvÃan tokens y se devolvÃa este error:Customer email provided does not exist. - El esquema GraphQL ahora es válido cuando se define un atributo de producto personalizado
type. Anteriormente, el esquema no era válido porque el atributo personalizadotypesobrescribÃa el atributotypede los tipos de producto. GitHub-34929 - Los clientes añadidos o actualizados con las mutaciones
createCustomer,createCustomerV2,updateCustomeroupdateCustomerV2ahora se añaden con suscripciones activas al boletÃn. Anteriormente, los clientes quedaban dados de baja del boletÃn aunque la solicitud contuviera los parámetros de entrada correctos. GitHub-33599 - En un despliegue multisitio, la consulta
productspara una vista de tienda concreta ahora devuelve solo las categorÃas que pertenecen a la categorÃa raÃz de ese sitio web. Anteriormente, la consulta devolvÃa categorÃas de las categorÃas raÃz de otros sitios web. GitHub-34570 - La consulta
productsahora devuelve solo la subcategorÃa del ID de categorÃa proporcionado. Anteriormente, devolvÃa todas las categorÃas. GitHub-35220 - La consulta
customerOrdersahora responde como se espera cuando se especifica el objetogift_messageen la respuesta pero no existe ningún mensaje de regalo. Anteriormente, la consulta devolvÃa este mensaje:Can't load gift message for order is returned. GitHub-28957 - Se ha corregido un error del indexador
catalog_category_productque hacÃa que la consultaproductsdevolviera categorÃas de otra tienda. GitHub-31253 - La mutación
generateCustomerTokenahora crea como se espera una entrada encustomer_logtras generar un token de cliente. GitHub-33378
Google Analytics
- Se ha añadido al código el módulo Google Tag, que facilita la transición a Google Analytics 4 en julio de 2023. Por ahora puede seguir usando y recopilando datos nuevos en sus propiedades de Google Universal Analytics, pero Google Universal dejará de funcionar en julio de 2023. GitHub-35204, GitHub-35376
Imagen
- Las imágenes de las páginas de detalles del producto ya no parpadean y permanecen centradas como se espera. Anteriormente, cuando una página de detalles del producto terminaba de cargar una imagen, esta se desplazaba visiblemente hacia abajo.
Importación/exportación
- La posición de los productos relacionados, de venta adicional (upsell) y de venta cruzada (cross-sell) en el CSV de exportación ahora es correcta tras eliminar desde el Admin un producto de venta cruzada antes de volver a generar el archivo CSV. Anteriormente, las posiciones de los productos de venta cruzada no se recalculaban tras eliminar uno de ellos, y el orden de posiciones era incorrecto.
- Magento Open Source ahora comprueba si existe una vista personalizada antes de filtrar las columnas al exportar informes. Anteriormente, los informes exportados no tenÃan en cuenta las vistas personalizadas y las columnas exportadas eran incorrectas.
- Magento Open Source ahora importa correctamente imágenes con nombres de archivo largos. Anteriormente, Magento Open Source no importaba la imagen y generaba este error:
Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):. - Los atributos de ID de categorÃa ya están disponibles en los filtros de exportación programada.
- Los productos bundle cuyo tÃtulo de opción contiene un signo de interrogación (?) ya se pueden importar correctamente gracias a las mejoras en el generador de consultas del método
populateExistingOptions. El tÃtulo de la opción también se muestra correctamente. Anteriormente, tras la importación inicial, las importaciones sucesivas provocaban un comportamiento corrupto y opciones duplicadas, y los compradores tampoco podÃan añadir el producto al carrito. - Se ha añadido validación de los nombres de categorÃa durante la importación. Anteriormente, Magento Open Source no validaba los nombres de categorÃa, lo que provocaba errores cuando superaban los 255 caracteres.
- Los registros existentes en la tabla
catalog_url_rewrite_product_categoryahora se eliminan antes de insertar los nuevos. Anteriormente, se producÃa el siguiente error durante la importación de productos en varias tiendas:SQLSTATE[23000]: Integrity constraint violation. GitHub-34210
Infraestructura
- Se ha eliminado de la lista de plugins un plugin obsoleto de menú contextual.
- Se ha actualizado la lógica relacionada con la barra de herramientas del editor TinyMCE en el módulo Page Builder, tras la introducción de la lógica
delayedRenderpara la barra de herramientas en TinyMCE. - Las condiciones de carrera ya no interrumpen la creación del listener del evento
contentUpdated. GitHub-32068 - La función
getTypeIDahora devuelve el ID del tipo de producto y no el ID del producto. GitHub-35458 -
Se ha corregido el mapeo del slider de jQuery UI y de
SelectMenuenvendor/magento/module-theme/view/base/requirejs-config.js. -
Los observers situados en
sales_order_state_change_beforeahora permiten obtener datos del objeto del pedido. Se ha actualizado el argumentoeventdesales_order_state_change_before. GitHub-26789 - Se ha refactorizado
indexer:resetpara que llame a$indexer->invalidate(). GitHub-34988 - Ahora puede usar el sÃmbolo de dos puntos en el valor de un atributo
htmlClass, lo que permite utilizar componentes adicionales como Tailwind UI. GitHub-34430
Registro (logging)
- Las acciones sobre clientes, direcciones de clientes y pedidos ahora se registran correctamente en el informe de acciones del Admin. Anteriormente, Magento Open Source no registraba las acciones si no se habÃa especificado el gestor
postDispatchen la configuración.
MFTF
Grupos de acciones
Las acciones repetitivas se han sustituido por grupos de acciones en estas pruebas:
AdminConfigurableProductChildrenOutOfStockTest GitHub-32378 AdminCreateStoreViewTest GitHub-34631
Nuevas pruebas
AdminUnlockAdminUserEntityTest GitHub-34836
StorefrontNewsletterSubscriptionWithEnabledNeedToConfirmConfigTest GitHub-33344
Pruebas refactorizadas
AdminCancelTheCreatedOrderWithCashOnDeliveryPaymentMethodTest GitHub-33692
BoletÃn
- Los clientes con sesión iniciada ya no aparecen como invitados en Admin > Marketing > Newsletter Subscribers.
- El correo de confirmación de suscripción al boletÃn ahora muestra la dirección de correo correcta y especÃfica de la tienda en el campo From si el cliente está asignado a una tienda no predeterminada y se le suscribe o da de baja desde el Admin. Anteriormente, el cliente recibÃa un correo con la dirección predeterminada en la cabecera From. GitHub-34963
- La URL de baja de la plantilla de correo del boletÃn ahora funciona como se espera. GitHub-33310
Pedidos
- Los datos de los clientes invitados ahora se guardan correctamente tras editar un pedido. Anteriormente, se perdÃan algunos datos del cliente, como
customer_firstnameycustomer_lastname, x_forwarded_for. - Los comerciantes ya no pueden crear una factura rectificativa con una cantidad total decimal cuando Decimal qty está desactivado a nivel de producto o de configuración global. Anteriormente, los comerciantes podÃan crear una factura rectificativa con una cantidad total decimal cuando no correspondÃa.
- El filtro por fecha ahora funciona correctamente en las cuadrÃculas de facturas, envÃos, facturas rectificativas, páginas CMS y bloques CMS cuando la zona horaria configurada en las preferencias difiere de la del ordenador local. Anteriormente, la fecha se interpretaba de forma incorrecta y los resultados filtrados incluÃan datos fuera del rango de fechas establecido.
- Magento Open Source ya no cambia las direcciones de correo personalizadas asignadas a los pedidos cuando se modifica la dirección de correo principal del cliente en la página de edición de la cuenta del Admin. Anteriormente, al editar la dirección de correo principal de un cliente, la nueva dirección se asignaba a todos los pedidos creados para ese cliente.

