Otra información de la versión

Aunque el código de estas funciones está empaquetado con versiones trimestrales , varios de estos proyectos (por ejemplo, Progressive Web Application (PWA) Studio) también se publican de forma independiente. Las correcciones de errores para estos proyectos se documentan en la información de versión independiente y específica del proyecto que está disponible en la documentación de cada proyecto.

Aplicar AC-3022.patch para seguir ofreciendo DHL como transportista

DHL ha introducido la versión de esquema 6.2 y dejará de utilizar la versión de esquema 6.0 en un futuro próximo. Adobe Commerce 2.4.4 y las versiones anteriores compatibles con la integración de DHL solo admiten la versión 6.0. Los comerciantes que implementen estas versiones deben aplicar AC-3022.patch lo antes posible para seguir ofreciendo DHL como transportista. Consulte el artículo de la base de conocimiento Aplicar un parche para seguir ofreciendo DHL como transportista para obtener información sobre cómo descargar e instalar el parche.

Aplique MC-43048__set_rate_limits__2.4.3.patch para solucionar el problema de limitación de velocidad de API

Esta revisión proporciona una solución para el problema en el que las API web no pueden procesar solicitudes que contengan más de 20 elementos en una matriz. Este problema afecta a las implementaciones que ejecutan el Magento Open Source 2.4.3, Adobe Commerce 2.4.3 o 2.3.7-p1. Se ha añadido una limitación de velocidad integrada a estas versiones para evitar ataques de denegación de servicio (DoS), y el máximo predeterminado se estableció en 20. Este parche revierte el límite predeterminado a un valor más alto. Si sospecha que su tienda está experimentando un ataque de denegación de servicio, Adobe recomienda reducir los límites de entrada predeterminados a un valor más bajo para restringir el número de recursos que se pueden solicitar. Consulte el artículo de la base de conocimiento API web no puede procesar solicitudes con más de 20 elementos en la matriz.

Aplique AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch para solucionar el error grave de PHP en la actualización

Durante la actualización al Magento Open Source 2.4.3 puede producirse el siguiente error grave:

PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74

Este error se debe al uso de la función str_contains, que es una función de PHP 8.x. La aplicación Open Source 2.4.3 no soporta PHP 8.x. Este hotfix reemplaza esta función con una función compatible con PHP 7.x. Consulte el artículo de la base de conocimiento Actualización de Adobe Commerce 2.4.3, 2.3.7-p1 Error irrecuperable de PHP.

Características destacadas

Busque los siguientes aspectos destacados en esta versión.

Mejoras sustanciales de seguridad

Esta versión incluye 33 correcciones de seguridad y mejoras de seguridad de la plataforma. Muchas de estas correcciones de seguridad se han trasladado a 2.4.2-p2 y 2.3.7-p1.

Treinta y tres mejoras de seguridad que ayudan a cerrar las vulnerabilidades de ejecución de código remoto (RCE) y ejecución de scripts en sitios múltiples (XSS)

Hasta la fecha no se han producido ataques confirmados relacionados con estos problemas. Sin embargo, es posible que se aprovechen ciertas vulnerabilidades para acceder a la información de los clientes o hacerse cargo de las sesiones de administrador. La mayoría de estos problemas requieren que un atacante obtenga acceso primero al administrador. Como resultado, le recordamos que tome todas las medidas necesarias para proteger a su administrador, entre las que se incluyen, entre otras, las siguientes: inclusión en la lista de permitidos de IP, autenticación de doble factor, uso de una VPN, uso de una ubicación única en lugar de /admin y buena higiene de la contraseña. Consulte Boletín de seguridad del Adobe para ver una discusión de estos problemas corregidos.

Mejoras de seguridad adicionales

Las mejoras de seguridad para esta versión mejoran el cumplimiento de las prácticas recomendadas de seguridad más recientes, que incluyen:

  • Un nuevo complemento de Compositor ayuda a evitar la confusión de dependencias e identifica paquetes malintencionados con los mismos nombres que los paquetes internos en el repositorio de paquetes públicos. Consulte el nuevo complemento de compositor de versiones de Adobe con la publicación de blog 2.4.3.

  • La limitación de velocidad está ahora integrada en las API para evitar ataques de denegación de servicio (DoS). Las API web ahora imponen restricciones en el tamaño o el número de recursos (el máximo predeterminado se establece en 20 y se puede configurar en un valor diferente según las necesidades comerciales) que un cliente puede solicitar. Consulte Limitación de velocidad para obtener información sobre cómo configurar estas restricciones.

  • Se ha ampliado la cobertura de ReCAPTCHA para incluir:

    • Las API web que tienen páginas de HTML correspondientes se tratan mediante ReCAPTCHA. (Esto excluye las API web a las que se accede mediante integraciones). La cobertura ReCAPTCHA protege los puntos finales de ataques de spam. Cuando un servicio de integración de terceros que utiliza OAuth tiene acceso a las API web, ReCAPTCHA se deshabilita.

    • La página de tienda Realizar pedido y las API web relacionadas con pagos. La protección ReCAPTCHA para estas páginas está desactivada de forma predeterminada y se puede activar desde el Administrador. Esta cobertura agrega un mecanismo de fuerza anti-bruta para proteger las tiendas de ataques de carding.

NOTA
A partir de la versión 2.3.2 de, asignaremos y publicaremos números de Vulnerabilidades comunes y exposiciones (CVE) indexados con cada error de seguridad que nos comuniquen partes externas. Esto permite a los usuarios identificar con mayor facilidad las vulnerabilidades sin solucionar en su implementación. Puede obtener más información sobre los identificadores CVE en CVE.

Mejoras de infraestructura

Esta versión incluye mejoras que mejoran la calidad del marco de trabajo y las siguientes áreas funcionales:

  • Cuenta del cliente

  • Catálogo

  • CMS

  • OMS

  • Importar/Exportar

  • Promociones y direccionamiento

  • Carro y cierre de compra

  • B2B

  • Ensayo y previsualización

PayPal más tarde ahora es compatible en implementaciones que incluyen PayPal. Esta función permite a los compradores pagar un pedido en cuotas quincenales en lugar de pagar el importe completo en el momento de la compra.

Nuevo modo de indización use_application_lock. El modo use_application_lock le permite habilitar la reindexación mediante el uso de variables de entorno o configurando el archivo app/etc/env.php. Ya no es necesario restablecer manualmente el indexador después de un error con este modo habilitado. Consulte Uso del modo de bloqueo de aplicación para reindexar procesos.

Mejoras de Platform

La versión 2.4.3 aún no es compatible con PHP 8.x, pero las siguientes actualizaciones de la plataforma nos acercan a la futura compatibilidad con PHP 8.x.

  • Las dependencias del Compositor principal y las bibliotecas de terceros se han actualizado a las últimas versiones compatibles con PHP 8.x.

  • La biblioteca KnockoutJS se ha actualizado a la versión 3.5.1 (la versión más reciente).

  • Se ha eliminado la biblioteca obsoleta TinyMCE v3. El módulo Magento_Tinymce3Banner y las pruebas MFTF relacionadas con TinyMCE v3.x se han eliminado de Adobe Commerce.

  • El Magento Open Source 2.4.3 ha sido probado y confirmado para ser compatible con Redis 6.0.12. (la versión 2.4.x sigue siendo compatible con Redis 5.x.)

  • Las dependencias de la biblioteca Laminas se han actualizado a versiones compatibles con PHP 8.x. Se han quitado algunas dependencias redundantes del archivo composer.json. El Magento Open Source 2.4.3 usa Laminas 3.4.0.

Mejoras de rendimiento

Esta versión incluye mejoras que reducen el tiempo de indexación de los indexadores Precio del producto y Regla de catálogo. Los comerciantes ahora pueden excluir un sitio web de un grupo de clientes o un catálogo compartido, lo que reduce el número de registros para la indexación y mejora los tiempos de indexación.

Integración de Adobe Stock

Esta versión incluye Adobe Stock Integration v2.1.1.

GraphQL

Esta versión añade cobertura de GraphQL para rutas compartidas. route query y RoutableInterface admiten solicitudes de enrutamiento en páginas de productos, categorías y CMS. La consulta urlResolver ha quedado obsoleta y su funcionalidad ha sido reemplazada por la consulta route.

Consulte la Guía para desarrolladores de GraphQL para obtener más información sobre estas mejoras.

Page Builder

Page Builder ya está disponible como extensión agrupada en Magento Open Source. Ahora es la herramienta de edición de contenido predeterminada para Adobe Commerce 2.4.3 y Magento Open Source 2.4.3. Puede reemplazar el editor WYSIWG con cualquier módulo de terceros.

Page Builder reemplaza el editor TinyMCE en las siguientes áreas de administración:

  • Página de CMS
  • Bloque de CMS
  • Descripción de categoría
  • Descripción del producto

Todo el contenido creado en TinyMCE se ha migrado a Page Builder como HTML.

PWA Studio

Para obtener información acerca de mejoras y correcciones de errores, consulte Versiones de PWA Studio. Consulte compatibilidad para obtener una lista de versiones de PWA Studio y sus versiones compatibles.

Actualizar herramienta de compatibilidad

El ámbito de la herramienta de compatibilidad de actualización se ha ampliado en función de los comentarios de la comunidad. Únase a nuestro canal de Slack #upgrade-compatibility-tool para obtener soporte del equipo de productos de Adobe y de la comunidad, así como para guiar la futura dirección de la herramienta.

Extensiones desarrolladas por el proveedor

Consulte los siguientes artículos para obtener actualizaciones sobre las funciones y los cambios de esta versión:

Problemas solucionados

Hemos corregido cientos de problemas en el código principal 2.4.3.

Instalación, actualización e implementación

  • El comando bin/magento setup:db:status devuelve ahora un mensaje que indica que todo está actualizado después de una actualización correcta. Anteriormente, la aplicación mostraba este error: Declarative Schema is not up to date.
  • Los valores de configuración ahora se conservan en la recarga del formulario cuando falla la creación de un nuevo producto configurable. Anteriormente, los valores se perdían durante la recarga del formulario y la aplicación mostraba este error: The value specified in the URL Key field would generate a URL that already exists. GitHub-32102
  • La aplicación ya no genera una excepción cuando ejecuta bin/magento setup:upgrade para actualizar desde una implementación de Magento Open Source con Redis a Adobe Commerce.
  • Las implementaciones que se ejecutan en Galera Cluster ahora admiten más clientes. GitHub-31038
  • Los administradores ahora pueden iniciar sesión correctamente en una implementación cuando la aplicación se haya instalado con la opción —use-rewrites=0 o con web/seo/use_rewrites establecido en 0 en core_config_data_table. GitHub-32100
  • Se actualizó la carga de sortOrder para AsyncCssPlugin. La aplicación ahora carga AsyncCssPlugin antes de JsFooterPlugin. GitHub-30882
  • Magento\Config\Model\Config\PathValidator ahora comprueba la ruta de acceso de visualización para determinar si existe un elemento y, si tiene una ruta de acceso de configuración, utiliza la ruta de acceso config.xml en su lugar para la validación. GitHub-27678
  • La compilación de archivos Less con Grunt o por compilación del lado del servidor ahora produce los mismos resultados. Anteriormente. .abs- styles, que extiende otros .abs- styles en _extends.less, no se generaron correctamente cuando se compilaron con Grunt. Esto resultaba en diferencias entre las implementaciones de producción y desarrollo. GitHub-7231

Integración de Adobe Stock

  • La aplicación ahora muestra un mensaje informativo y un vínculo a la página Administrador Tiendas > Configuración > Avanzado > Sistema en la página Buscar Adobe Stock cuando no se han establecido Clave de API (ID de cliente) y Secreto de cliente. Anteriormente, la aplicación mostraba este error: We couldn't find any records y ningún vínculo.

Servidor

  • Los administradores con acceso restringido (por ejemplo, a los que se les asigna acceso a un solo sitio web) ya no pueden editar las categorías configuradas como Ámbito global.
  • El informe del sistema generado (Sistema > Soporte técnico > Informe del sistema) ahora se representa correctamente. Anteriormente, el contenido del informe estaba desalineado.
  • La aplicación ahora desactiva la validación en el campo Price, como se espera cuando la configuración Dynamic price está habilitada durante la creación del paquete de productos. Anteriormente, la aplicación arrojaba un error de validación cuando se quitaba un valor del campo Precio cuando se habilitaba la configuración Precio dinámico. GitHub-26214
  • Las redirecciones infinitas ya no se producen cuando la URL del administrador difiere de la URL del sitio web predeterminado en implementaciones en las que la aplicación está configurada para ser accesible desde dos direcciones URL.

Paquete de productos

  • Ahora puede usar la mutación addProductsToCart para agregar un paquete de productos con más de una opción de casilla de verificación al carro de compras.
  • La indexación de precios de los productos agrupados ahora se ejecuta mediante tablas temporales, lo que evita el bloqueo de tablas de base de datos. Anteriormente, la aplicación utilizaba tablas físicas, lo que resultaba en tablas bloqueadas.
  • Ahora, el precio de un paquete de artículos se puede establecer en 0,00. Anteriormente, cuando se volvía a la página de edición después de establecer el precio en 0,00, el precio volvía a su valor predeterminado. GitHub-32383
  • Los detalles del pedido para pedidos que contienen productos agrupados ahora muestran el precio correcto para los productos agrupados si el precio se cambió antes de realizar el pedido.
  • El estado de stock del producto agrupado ahora se actualiza en función del estado de stock de sus productos secundarios. Anteriormente, los productos agrupados se mostraban como agotados cuando se eliminaba una opción del producto y el producto agrupado tenía dos opciones con el mismo SKU.
  • Un administrador ahora puede cambiar el valor del atributo Shipment Type de un producto agrupado después de que se haya movido a un grupo de atributos diferente. Anteriormente, este atributo siempre se guardaba con un valor Together si se movía a un grupo de atributos distinto del predeterminado en el conjunto de atributos.
  • La mutación setGuestEmailOnCart de GraphQL ahora actualiza correctamente el correo electrónico de invitado. Anteriormente, las tablas de direcciones de presupuesto y presupuesto no se actualizaban.
  • Añadir, eliminar o actualizar un producto secundario a un producto del paquete a través de llamadas a la API de REST ahora déclencheur la reindexación según lo esperado. Anteriormente, estas acciones no tenían déclencheur para volver a indexar y, como resultado, el producto del paquete no cambiaba su estado de stock hasta que se realizaba una reindexación manual.
  • La aplicación ahora muestra el rango de precios correcto para los productos agrupados con precios de nivel. GitHub-30284
  • La aplicación ahora muestra el mismo precio total que se espera en la página del carro de compras y en la etapa de envío del flujo de trabajo de cierre de compra después de que haya cambiado el precio de una opción de paquete.
  • Ahora puede configurar correctamente un producto agrupado accediendo a él desde un carro de compras del cliente. Anteriormente, la página Configurar producto nunca se cargaba completamente y no se podía guardar la configuración.
  • Los comerciantes ahora pueden asignar un precio único para un paquete de productos en cada vista de tienda de una implementación de varias tiendas. Los precios específicos del sitio web se guardan en la tabla catalog_product_bundle_selection_price. Anteriormente, la aplicación no basaba el precio de un producto agrupado en el ámbito del sitio web ni siquiera cuando Tiendas > Configuración > Catálogo > Catálogo > Precio > Ámbito del precio de catálogo se establecía en Website. No se guardaron precios específicos de sitios web en catalog_product_bundle_selection_price. GitHub-12584
  • Las facturas de los productos agrupados ahora muestran la cantidad correcta para los productos simples asociados cuando se deshabilita Asignación dinámica de precios. Anteriormente, los productos simples asociados con el producto agrupado tenían la cantidad del producto principal, no el producto agrupado). GitHub-30802
  • La mutación updateProductsInWishlist ahora actualiza correctamente los elementos que pertenecen a un paquete de productos en una lista de deseos. Anteriormente, en lugar de actualizar el elemento de la lista de deseos, esta mutación eliminaba el elemento y creaba uno nuevo, que cambiaba el ID del elemento.

Caché

  • El archivo varnish6.vcl se ha actualizado para omitir el almacenamiento en caché de la página del cliente.

CAPTCHA

  • CAPTCHA ahora valida correctamente los datos proporcionados por un comprador, y los campos CAPTCHA ahora se muestran como se espera después de los múltiples intentos fallidos de un comprador para pagar con PayPal Payflow Pro.
  • La validación CAPTCHA ya no falla aleatoriamente en la página de pago del flujo de trabajo de cierre de compra.
  • La aplicación ahora muestra los campos CAPTCHA como se espera después de superar el número de intentos de finalización fallidos. Anteriormente, aunque la aplicación le pedía que intentara volver a intentar el desafío CAPTCHA, no mostraba los campos CAPTCHA.
  • CAPTCHA ahora funciona como se espera en la página de cierre de compra. Anteriormente, después de que un comprador respondiera correctamente a un desafío CAPTCHA, el cargador de la página de pago nunca se completaba y la aplicación mostraba este error: captchaData[formId] is undefined. (Este error solo se producía cuando el comprador utilizaba el mismo explorador desde el que había accedido anteriormente a una implementación que ejecutaba 2.3.5-p1.)
  • _.isEmpty() comprobaciones en el archivo defaultCaptcha.js ahora se completaron correctamente. Anteriormente, estas comprobaciones no se completaban y, como resultado, la página de cierre de compra no se cargaba después de la actualización. GitHub-31641