Notas de la versión de Adobe Commerce 2.4.3

Adobe Commerce 2.4.3 incorpora mejoras en el rendimiento y la seguridad, además de mejoras significativas en la plataforma. Las mejoras de seguridad incluyen la expansión de la cobertura de reCAPTCHA y la inclusión de una limitación de velocidad integrada. Las dependencias del compositor principal y las bibliotecas de terceros se han actualizado a las últimas versiones compatibles con PHP 8.x.

Esta versión incluye más de 370 nuevas correcciones del código principal y 33 mejoras de seguridad. Todos los problemas conocidos identificados en las notas de la versión 2.4.2 de Adobe Commerce se han corregido en esta versión.

NOTE
Las versiones de Adobe Commerce pueden contener cambios incompatibles con versiones anteriores (BIC). Para revisar los cambios incompatibles con versiones anteriores, consulte Referencia de BIC. Los principales problemas incompatibles con versiones anteriores se describen en resaltados de BIC. No todas las versiones introducen BIC importantes.

Consulte las notas de la versión de Adobe Commerce 2.4.2-p2 para obtener información sobre Adobe Commerce 2.4.2-p2.

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, B2B, Page Builder y 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.

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 a Adobe Commerce 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. Adobe Commerce 2.4.3 no admite 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.

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.

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.

NOTE
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.

  • La versión 2.4.3 se ha probado y confirmado que es 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. Adobe Commerce 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.

Live Search con tecnología de Adobe Sensei ofrece una experiencia de búsqueda intuitiva mediante inteligencia artificial y algoritmos de aprendizaje automático para realizar un análisis profundo de los datos agregados de visitantes. Ver Notas de la versión de Live Search.

GraphQL

Esta versión agrega compatibilidad con GraphQL para las siguientes funciones:

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

B2B

La versión 2.4.3 presenta B2B v1.3.2. Esta versión incluye varias correcciones de errores. Ver Notas de la versión B2B.

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 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.

Actualizaciones de Cloud Managed Services

Esta versión incluye mejoras en nuestra compatibilidad con Amazon Simple Storage Service (AWS S3) y los servicios administrados en la nube de Amazon Aurora. Proporciona compatibilidad certificada con AWS ElastiCache, AWS Elasticsearch y AWS Managed Queues (Rabbit MQ). (Hemos probado la funcionalidad, el rendimiento y la integración de estos servicios con Adobe Commerce).

Integración de Adobe Stock

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

Extensiones desarrolladas por el proveedor

Consulte los siguientes temas 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 reglas de precios de carro de compras creadas anteriormente ahora se muestran en la página del panel Ensayo de contenido después de actualizar una implementación de Magento Open Source 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

AdminGWS

  • El GWS de administración ahora usa valores de int para la condición SQL website_id en las colecciones de administración para administradores con permisos personalizados.

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 artículos deseados. Anteriormente, en lugar de actualizar el elemento de la lista de artículos deseados, esta mutación eliminaba el elemento y creaba uno nuevo, que cambiaba el ID del elemento.
  • Ahora puede establecer los atributos del paquete required_options y has_options como se espera al crear o actualizar un producto del paquete mediante el extremo POST /V1/product/:sku. Anteriormente, estos atributos personalizados se establecían en 0 (cero) a pesar de los esfuerzos por establecerlo en 1 (uno).
  • Los datos de producto del paquete que faltaban anteriormente ahora se incluyen en el proceso de ensayo. Esto resuelve las incoherencias en el comportamiento del producto cuando los compradores compraron un producto agrupado desde la página de lista de productos en lugar de agregarlo directamente desde una página de producto.

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

Carro y cierre de compra

  • La aplicación ahora tiene en cuenta las ubicaciones decimales específicas de la configuración regional al convertir y actualizar la cantidad de productos en el carro de compras.
  • Los pedidos ya no omiten un nombre de cliente proporcionado con una dirección de envío. Anteriormente, los nombres se omitían porque el indicador same_as_billing no se guardaba en la base de datos.
  • Los vínculos a los registros de regalos ahora persisten como se espera cuando edita un producto en el carro de compras. Anteriormente, estos vínculos desaparecían al hacer clic en el botón Actualizar carro.
  • Todos los mensajes en cola del consumidor quoteItemCleaner ahora cambian su estado a complete como se espera después de la eliminación de varios productos. Anteriormente, solo un mensaje para este consumidor cambiaba su estado a complete y el resto cambiaba su estado a in progress.
  • La aplicación ahora muestra el mensaje de validación de Términos y condiciones en el bloque correspondiente solo cuando un comprador hace clic en el botón Realizar pedido. Anteriormente, la aplicación mostraba este mensaje en el bloque Aplicar código de descuento cada vez que un comprador cambiaba el método de pago en el flujo de trabajo de pago: The order wasn't placed. First, agree to the terms and conditions, then try placing your order again.
  • Ahora se le redirigirá a la página de cierre de compra como se espera después de agregar un producto agrupado al carro de compras desde una vista previa de Programar actualización y hacer clic en el carro de compras. GitHub-447
  • La aplicación ahora descarta los cambios en el formulario de dirección de facturación en el paso de pago de cierre de compra si el comprador no hace clic en el botón Actualizar y vuelve al paso de envío.
  • La aplicación ahora muestra un mensaje de error informativo y no actualiza la cantidad del producto cuando un comprador agrega una cantidad de producto no válida y hace clic en el botón Actualizar artículos y cantidades de la página Administrar carro de compras. Anteriormente, la aplicación actualizaba la cantidad de productos y no mostraba un mensaje de error. GitHub-459
  • Los productos con una opción personalizable (File) ahora incluyen vínculos activos según lo esperado a lo largo del proceso de cierre de compra de envío múltiple. Anteriormente, faltaba este vínculo. GitHub-31095
  • El carro de compras Administrador ahora muestra los precios de los productos en las monedas correctas para las tiendas que admiten varias monedas. Anteriormente, los precios se convertían a la moneda especificada más de una vez: primero, cuando se agregaban productos al carro de compras desde la tienda y, después, cuando el pedido se procesaba posteriormente en el administrador.
  • La aplicación ahora vacía el carro de compras como se espera después de que un administrador complete un pedido del administrador creado por un comprador en la tienda. Anteriormente, cuando el cliente volvía a iniciar sesión después de que el administrador completara el pedido, el carro de la tienda seguía conteniendo contenido del pedido. GitHub-30262
  • Los compradores ahora pueden agregar un producto al carro de compras cuyo precio mínimo anunciado (MAP) exceda su precio normal del producto.
  • Los compradores ahora pueden cambiar correctamente su dirección de facturación del flujo de trabajo de cierre de compra al realizar el cierre de compra con varias direcciones.
  • Todas las transacciones de pago creadas por los invitados ahora se guardan en la base de datos y son visibles en el Administrador según lo esperado. Anteriormente, solo se guardaba un pequeño subconjunto de pedidos simultáneos en la base de datos y la mayoría de los pedidos se perdían debido a los tiempos de espera resultantes de los bloqueos de la base de datos. GitHub-25862
  • La aplicación ahora muestra correctamente los mensajes de bienvenida en línea que contienen caracteres especiales cuando un invitado coloca un producto en el minicarrito. Anteriormente, la aplicación no agregaba el producto al minicarrito ni mostraba el mensaje de bienvenida. GitHub-32250
  • La página de envío del flujo de trabajo de cierre de compra ahora se carga correctamente cuando la entrega en tienda está activada. Anteriormente, la aplicación arrojaba un error de JavaScript y la página de cierre de envío no se representaba completamente.
  • Se agregó el argumento itemResolvers al archivo de catálogo di.xml. Como resultado, el cierre de compra ya no se interrumpe si los módulos de producto configurables y agrupados están desactivados. GitHub-30860
  • La aplicación ahora muestra los botones de opción en la sección Información de pago y envío, tal como se espera durante el flujo de trabajo de reorganización del administrador. GitHub-30257
  • La aplicación ahora aplica correctamente las reglas de precio del carro de compras con un descuento fijo de nivel de carro de compras cuando el carro de compras contiene un producto agrupado con varias opciones. Anteriormente, la regla de precio del carro de compras no se aplicaba completamente al pedido. GitHub-30952
  • El botón Agregar al carro de la vista de lista de categorías ahora funciona según lo esperado. GitHub-32232
  • Ahora puede usar el POST /V1/carts/mine/items para agregar una cantidad personalizada de productos agrupados a un carro de compras. GitHub-26909
  • La aplicación ya no rellena el área de la dirección de facturación del flujo de trabajo de cierre de compra con la dirección de envío. Anteriormente, cuando el campo Estado/Provincia de la dirección de facturación estaba vacío y las direcciones de envío y facturación diferían, la aplicación rellenaba el campo de la dirección de facturación Estado/Provincia con información de la dirección de envío. GitHub-31608
  • La actualización masiva de los atributos Habilitar incrementos de cantidad y Incrementos de cantidad ahora funciona según lo esperado. GitHub-29544
  • Ahora puede duplicar correctamente un catálogo compartido que contenga SKU solo numéricas. Anteriormente, la aplicación generaba un error al intentar duplicar un catálogo compartido porque la clase \Magento\Catalog\Model\ProductIdLocator no funcionaba correctamente con SKU de solo número.
  • La aplicación ya no genera un error de JavaScript después de habilitar la sincronización de productos recientes con el administrador. Anteriormente, la aplicación mostraba este error de JavaScript: Cannot read property 'status' of undefined.
  • Las actualizaciones del diseño del tema personalizado ahora se aplican según lo esperado. Anteriormente, las actualizaciones de diseño de temas personalizados se omitían.
  • La caché de categoría de producto ahora se borra según lo esperado por cron durante la ejecución de indexer_update_all_views. Anteriormente, los recuentos de productos en la página Categoría después de la reindexación eran incorrectos.
  • Los valores de atributo ahora permanecen inalterados cuando no se especifica un atributo en una solicitud de API de REST de actualización de producto para una vista de tienda. Anteriormente, si no se especificaba un atributo, la aplicación restablecía el valor del atributo a su valor de ámbito predeterminado.
  • La cuadrícula Productos de administración (Administración Catálogo > Productos) ahora muestra el recuento de productos correcto cuando los productos se filtran por SKU.
  • La aplicación ahora muestra un estado de stock preciso cuando se agrega un producto a una página de CMS cuando los permisos de categoría están habilitados y evita la visualización del precio para el grupo del cliente especificado. Anteriormente, todos los productos se mostraban agotados, independientemente del estado real de las existencias.
  • El campo de entrada de precio del bloque de precios del grupo de clientes de precios avanzados ahora tiene una anchura mínima de cinco dígitos. Anteriormente, solo se veían dos símbolos en este campo en pantallas de baja resolución.
  • La aplicación ahora elimina correctamente una imagen multimedia del producto después de eliminar un producto. Anteriormente, la imagen multimedia del producto permanecía en la carpeta después de eliminar correctamente el producto.
  • El diseño de la página ahora se actualiza según lo esperado al crear o editar un producto en el Administrador y, a continuación, crear una actualización de diseño de programación. GitHub-32007
  • Ahora, un atributo de producto personalizado con un valor de cero se puede guardar correctamente como en blanco. Anteriormente, la aplicación no actualizaba este valor a en blanco.
  • Los archivos de actualización de diseño de categoría personalizada ahora se aplican a los productos según lo esperado. Anteriormente, el identificador del archivo de actualización (catalog_category_view_*) no coincidía con el identificador del producto. GitHub-27285
  • Se ha deshabilitado la ordenación para la columna Impuesto de producto fijo (FPT) de la lista Productos de administración. Anteriormente, la página Productos no se podía volver a cargar después de ordenar la columna FTP.
  • La vista previa del widget de productos de Page Builder ahora funciona como se espera en una implementación de varios sitios web cuando los productos coincidentes tienen un precio diferente en cada sitio web.
  • La ordenación por posición en la búsqueda de productos mediante el GET /rest/V1/products/?searchCriteria[filterGroups] ahora funciona según lo esperado. Anteriormente, la colección de productos no tenía un valor de campo position para ordenar. GitHub-31591
  • Los usuarios administradores ahora pueden ver espacios dobles en los campos Nombre y SKU de la cuadrícula del producto. Anteriormente, la aplicación contraía varios espacios en uno solo.
  • Los productos ahora aparecen como agotados en la tienda cuando la cantidad vendible en el administrador es 0. Anteriormente, estos productos estaban disponibles en la tienda y la aplicación mostraba un botón Agregar al carro activo. GitHub-31117
  • Los administradores ahora pueden agregar productos con opciones personalizables (File) a la cuadrícula Artículos pedidos desde la sección Carro de compras (columna Actividades del cliente) de la página Administrador - Cliente. Anteriormente, la aplicación no agregaba el elemento a la lista porque el valor no tenía el formato correcto antes de insertarse en \Magento\Catalog\Model\Product\Type\AbstractType::_prepareOptions.
  • La aplicación ya no pide a los compradores que seleccionen una opción de producto para un producto agrupado que solo tiene una opción.
  • La aplicación ahora muestra todas las subcategorías en las actualizaciones de diseño (categorías de anclaje y no anclaje) durante la creación de un nuevo widget.
  • La consulta product ya no sobrescribe los valores predeterminados de todas las vistas de tienda en una implementación de varias tiendas cuando se actualiza un nombre de producto solo para una vista de tienda. GitHub-31083
  • Adobe Commerce actualiza el recuento total de páginas según lo esperado cuando cambia el valor por página de la lista Productos relacionados con el administrador, Aumentar ventas y Realizar ventas cruzadas. GitHub-31059
  • Los administradores ahora pueden agregar productos con dos o más opciones personalizables (File) a un pedido por SKU.
  • La aplicación ya no genera un error cuando un administrador con permisos restringidos agrega un widget de producto a una página de CMS en el Administrador. Anteriormente, la aplicación arrojaba este error cuando el administrador hacía clic en el botón Guardar: We are sorry, an error has occurred while generating the content.
  • Las páginas de detalles del producto ahora se abren con la opción personalizable de fecha rellenada con la fecha del pedido anterior en que Usar JavaScript Calendar está habilitado. El solucionador de valores de la opción de fecha personalizada ahora vuelve a un formato alternativo si el valor no tiene un formato basado en la configuración actual. Anteriormente, el valor de la opción de fecha personalizada estaba vacío.
  • La aplicación ahora solo muestra un error en el carro de compras cuando el producto está agotado. Anteriormente, la aplicación mostraba mensajes redundantes. GitHub-27469
  • Los administradores ahora pueden agregar un producto con una opción personalizable (File) a un pedido por SKU. GitHub-30285
  • Ahora puede guardar un producto y un precio sin especificar type_id. GitHub-13639
  • Los productos de grupo ahora están disponibles en la tienda como se espera cuando se usa una solicitud REST PUT /V1/products/:sku/links para asociar un nuevo producto secundario con un nuevo producto de grupo. Anteriormente, los productos no se indexaban correctamente después de ejecutar bin/magento cron:run.
  • Ya no puede crear un producto con un valor de SKU NULL. Anteriormente, se podía crear un producto sin un valor de SKU a través de un importador personalizado o directamente en la base de datos, pero cuando se intentaba editarlo desde el administrador, la aplicación arrojaba un error. GitHub-27411, GitHub-32525
  • Al añadir las opciones personalizadas necesarias a un producto simple, ya no se eliminará de los productos compuestos principales sin previo aviso. La aplicación ahora muestra una advertencia informativa y no guarda el producto. Anteriormente, la aplicación guardaba los cambios del producto y no mostraba una advertencia. GitHub-30492
  • La consulta products devuelve ahora los valores actuales cuando se aplica una regla de precio de catálogo a un artículo. GitHub-26738
  • Las tablas temporales que comienzan con catalogrule_product__temp ahora se eliminan como se espera cuando la reindexación falla después de que caduque una regla de carro de compras o catálogo, esté deshabilitada o quede inactiva. GitHub-22273
  • Ahora las zonas horarias se aplican del mismo modo en \Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexById y \Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIds. GitHub-29549

Contenido de CMS

  • Las imágenes grandes ahora cambian de tamaño según lo esperado durante la carga cuando el ajuste de configuración Habilitar cambio de tamaño de front-end está habilitado.
  • Se ha corregido el control de errores del controlador de guardado de páginas de CMS. Anteriormente, cuando se arrojaba un objeto Error en el evento cms_page_prepare_save, la aplicación pasaba este objeto a la función addExceptionMessage, rompiendo su contrato porque esta función espera un Exception. Esto se resolvió agregando un mensaje de error mediante la función addErrorMessage. GitHub-30149
  • Ahora puede asignar una nueva página a varios nodos desde la pestaña CMS Editar jerarquía de página. Anteriormente, se producía una infracción de restricción única al intentar asignar la página a un nodo. GitHub-363

Productos configurables

  • La aplicación ya no duplica miniaturas de productos en la galería de imágenes de un producto cuando hace clic en las opciones configurables de un producto.
  • La ventana emergente de configuración que la aplicación muestra cuando edita un producto configurable desde una lista de artículos deseados ahora se cierra como se espera cuando hace clic en el botón Aceptar.
  • La aplicación ahora genera correctamente facturas para pedidos que contienen solo un producto configurable. GitHub-31143
  • Los compradores ahora pueden agregar productos configurables al carro de compras desde una vista de tienda no predeterminada. Anteriormente, cuando el comprador de una vista de tienda no predeterminada intentaba agregar un producto configurable, la aplicación mostraba este error: Could not add item to cart. Please check required options and try again. GitHub-31660

Política de seguridad de contenido (CSP)

  • La directiva de seguridad de contenido ahora admite la carga de imágenes y fuentes codificadas en Base64 mediante data: scheme.

cron

  • Las consultas de limpieza de Cron se han refactorizado para reducir o eliminar los siguientes problemas de rendimiento: cron trabajos permanecen atascados en un estado pendiente, consultas MySQL cada vez más lentas y un aumento en el uso de la CPU. GitHub-26507
  • cronjobs que han estado en estado running durante más de 24 horas ahora se cambian automáticamente al estado error. Como resultado, se puede volver a ejecutar una nueva instancia de ese trabajo y no es necesario cambiar manualmente el estado del trabajo cuando un trabajo permanece establecido incorrectamente en el estado running. Anteriormente, si un(a) cronjob estaba bloqueado(a) en el estado running, la aplicación impedía que se iniciaran nuevas instancias del mismo trabajo y tenía que cambiar manualmente el estado del trabajo. GitHub-8933
  • cron trabajos ahora se completan según lo esperado y ya no arrojan este error de serialización: [Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28'). GitHub-18409
  • indexer_update_all_views trabajos cron ahora se ejecutan como se esperaba después de un error anterior. La ejecución fallida se marca como un error en cron_schedule schedule, y la ejecución posterior no falla automáticamente. Anteriormente, la tabla cron_schedule se llenaba con trabajos pendientes y el trabajo cron indexer_update_all_views no se ejecutaba. GitHub-23054
  • cron interbloqueos ya no se producen como resultado de cron que intenta establecer un bloqueo en implementaciones grandes en las que los grupos se superponen. GitHub-8933
  • cron interbloqueos ya no se producen en la tabla cron_schedule después de que se hayan ejecutado unos pocos cron trabajos. GitHub-22438

Atributos del cliente personalizados

  • El campo Estado de la libreta de direcciones de la cuenta de cliente de la tienda ahora se carga como y sigue siendo un elemento de página desplegable. El botón Enviar ahora está deshabilitado hasta que todos los elementos de la página se hayan cargado por completo. Anteriormente, la aplicación cargaba este campo como un cuadro de texto antes de procesarlo como un elemento desplegable y los compradores podían introducir y guardar valores en el campo de texto, lo que posteriormente provocaba un error durante la desprotección.
  • La aplicación ahora muestra correctamente los atributos de dirección del cliente personalizados en las páginas de la tienda y del pedido del administrador. Anteriormente, la opción seleccionada del atributo desplegable no aparecía en la sección Información de dirección y el valor del atributo de entrada contenía el código de atributo. GitHub-508
  • La aplicación ya no genera un error cuando se guarda un atributo de dirección del cliente con un archivo adjunto en el campo Dirección del cliente del administrador al cargar archivos. Esto se produjo debido a la falta de una instrucción return en la acción del controlador. Anteriormente, la aplicación arrojó este error: Something went wrong while saving the file.
  • Las llamadas a la API del carro de GET de REST ahora devuelven valores de atributo personalizados correctos para las direcciones de facturación y envío. Anteriormente, los atributos de direcciones personalizadas se mostraban incorrectamente en la página de detalles de pedidos de la página Mi tienda de cuentas y en el Administrador.
  • La aplicación ahora administra correctamente archivos que contienen atributos de dirección de cliente con tipo de entrada file (attachment). Anteriormente, la aplicación arrojó este error durante la carga del archivo adjunto: Something went wrong while saving the file.

Cliente

  • El correo electrónico de crédito de almacenamiento ahora tiene en cuenta el ámbito seleccionado y se envía desde la dirección de correo electrónico correcta.
  • El filtrado por fecha de creación de cuenta ahora produce resultados que cumplen con la configuración de zona horaria configurada y que capturan todas las cuentas creadas relevantes.
  • El filtro de cuadrícula de cliente ahora utiliza una opción de sitio web correcta para un usuario restringido si los datos se almacenaron en caché anteriormente. Anteriormente, el filtro de cuadrícula del cliente recuperaba parámetros de sitio web de la caché e incluía datos incorrectos para usuarios restringidos.
  • La aplicación ya no genera una excepción en la página Admin Customers cuando se elimina un sitio web en una implementación de varios sitios web. Anteriormente, cuando un administrador intentaba obtener acceso a la lista completa de clientes, la aplicación no mostraba todos los clientes y mostraba este error: The website with id 2 that was requested wasn't found. Verify the website and try again.
  • Los administradores con permiso ahora pueden reasignar clientes a distintos sitios web desde la pestaña Información de la cuenta del cliente.
  • Ahora puede cargar un archivo correctamente al crear un atributo de dirección de cliente con un tipo de entrada de (File). Anteriormente, al intentar cargar y guardar un archivo, la aplicación arrojaba este error: Something went wrong while saving the file.

Segmento de cliente

  • La aplicación ahora muestra productos relacionados basados en segmentos de clientes en la tienda, según lo esperado. Anteriormente, la aplicación no mostraba esta sección cuando se creaba una regla de productos relacionada para segmentos de clientes específicos.
  • Los bloques dinámicos ahora se muestran para los clientes registrados en sus carros de compras cuando el segmento de clientes correspondiente se aplica tanto a los invitados como a los clientes registrados. Anteriormente, la aplicación solo mostraba el bloque para invitados.
  • Los segmentos de clientes ahora se actualizan automáticamente después de realizar un pedido desde el administrador. Anteriormente, después de crear un pedido de administración, el usuario administrador tenía que actualizar manualmente los datos de segmentos relacionados navegando a segmentos de clientes relacionados y haciendo clic en el botón Actualizar datos de segmentos.
  • La aplicación ahora muestra bloques dinámicos en el carro de compras para todos los clientes en los segmentos de clientes relevantes. Anteriormente, los invitados no veían un bloque incluso cuando el segmento de clientes incluía clientes y clientes registrados.
  • Se han resuelto los problemas de rendimiento de la base de datos que resultan de las reglas de segmentación de clientes que utilizan la condición Product was Ordered.
  • SOAP Se ha añadido un observador de eventos de segmentos de clientes para la API de REST/. SOAP Como resultado, los segmentos de clientes ahora se actualizan automáticamente según lo esperado si los criterios definidos en los segmentos coinciden cuando los pedidos se realizan a través de la API de REST/.
  • Se ha agregado un procesador de eventos de segmentos de clientes para las solicitudes de GraphQL. Anteriormente, los descuentos de regla de precios de carro de compras no se aplicaban al carro de compras cuando se usaba un segmento de cliente en una condición de regla de precios de carro de compras. GitHub-371

Directorio

  • La aplicación ya no genera una excepción cuando un comprador introduce un código postal no válido durante la sección de envío del flujo de trabajo de cierre de compra. GitHub-23371

Descargable

  • La aplicación ahora muestra vínculos a productos descargables en el correo electrónico Nuevo pedido cuando el pedido contiene un producto descargable y un producto configurable con una opción descargable. Anteriormente, la aplicación mostraba el vínculo al producto descargable independiente, pero no el vínculo al producto configurable con una opción descargable.

Bloque dinámico (anteriormente banner)

  • Los bloques dinámicos ahora solo se muestran en la página especificada. Anteriormente, la aplicación mostraba todos los titulares asignados al widget en todas las páginas si no se especificaba ningún bloque dinámico.
  • Ahora puede guardar bloques dinámicos con contenido vacío.

EAV

  • Los valores de fecha de atributo de dirección del cliente ahora se guardan en formato de cuatro dígitos en lugar de formato de dos dígitos.

Correo electrónico

  • El vínculo para restablecer la contraseña en la página de restablecimiento de contraseña de administrador ahora funciona según lo esperado. Anteriormente, cuando se utilizaba una plantilla personalizada para la página Restablecer contraseña de administrador, la aplicación mostraba este mensaje cuando un administrador hacía clic en el vínculo dentro del correo electrónico: Your password reset link has expired. Esto ocurría porque la plantilla de correo electrónico personalizada contenía la variable incorrecta para el ID de usuario.
  • El envío de correos electrónicos de clientes desde el administrador ahora funciona correctamente cuando se habilita en el nivel de vista de tienda. Anteriormente, la aplicación no enviaba correos electrónicos a los clientes cuando la configuración de las notificaciones por correo electrónico se habilitaba en el nivel de vista de tienda, pero no en el nivel global.
  • La aplicación ahora envía correos electrónicos como se espera en implementaciones de varios sitios en las que no todos los sitios web han habilitado el envío asincrónico de correos electrónicos. Anteriormente, si al menos un sitio web tenía esta configuración deshabilitada, no se enviaba correo electrónico desde ningún sitio web, incluso cuando estaba habilitada. Los correos electrónicos de factura, envío y nota de abono tenían problemas similares. Sin embargo, los correos electrónicos Comentarios sobre pedidos, Comentarios sobre facturas, Comentarios sobre envíos y Comentarios sobre notas de abono se han enviado correctamente. GitHub-31950
  • El mensaje de correo electrónico que envía la aplicación cuando comparte un registro de regalos del administrador contiene ahora un vínculo válido a la ubicación del registro. Anteriormente, este vínculo provocaba un error 404. GitHub-504
  • Las facturas y los PDF de facturas ahora incluyen los mismos precios para los productos agrupados que se espera. Anteriormente, los PDF de facturas incluían el precio incorrecto de los productos agrupados. GitHub-12856
  • La conversión de cadenas se ha agregado al método de filtro de la plantilla de correo electrónico para garantizar que el valor devuelto sea un string. Anteriormente, cuando se detectaba una excepción sin estar en modo de desarrollador, la aplicación devolvía un objeto phrase. Esto a su vez desencadenó un Uncaught TypeError irrecuperable. GitHub-32671
  • Los correos electrónicos de confirmación de pedido ahora se envían según lo esperado cuando se habilita el envío asincrónico (Tiendas > Configuración > Ventas > Correos electrónicos de ventas > Configuración general > Envío asincrónico) en un sitio web en una implementación de varios sitios. GitHub-31950
  • La aplicación ahora registra un error como se espera cuando se produce una excepción cuando un cliente intenta enviar un correo electrónico desde el formulario de contacto. GitHub-23645

Marcos

  • Ahora se comprueba la existencia de anotaciones docblock en las clases principales del administrador junto con la clase original y las interfaces heredadas. Anteriormente, como las clases principales no se comprobaban, la realización de cualquier acción relacionada con el cliente en el Administrador que activaba un evento provocaba un error. La aplicación registró este error en el registro de excepciones: report.CRITICAL: Method's return type must be specified using @return annotation..
  • La aplicación ya no genera un error grave cuando el servidor Redis se detiene en una implementación en la que el almacenamiento en caché de páginas Redis está habilitado.
  • La aplicación ahora cumple la configuración Excluir la carpeta multimedia de la copia de seguridad cuando la copia de seguridad está habilitada con bin/magento config:set system/backup/functionality_enabled 1. Anteriormente, se hizo una copia de seguridad de la carpeta de medios a pesar de esta configuración porque la ruta de acceso a /magento se formó incorrectamente con un // doble.
  • La aplicación ahora traduce todas las cadenas traducibles como se espera para la página del carro de administración. Anteriormente, la carga de traducción se producía demasiado tarde y omitía todos los observadores suscritos a la acción de controlador antes del envío. GitHub-31849
  • La validación del formulario en la página Crear nueva cuenta de cliente ahora funciona correctamente cuando la configuración de la extensión de habilitación de Iniciar sesión como cliente está deshabilitada. Anteriormente, la aplicación arrojaba un error de JavaScript.
  • El uso de bin/magento setup:db-schema:split-sales para mover tablas de base de datos ahora funciona según lo esperado. Ahora, las tablas se crean y rellenan correctamente con datos. Anteriormente, debido a que la comprobación de la existencia de la tabla era incorrecta, la aplicación arrojó SQLSTATE errores al ejecutar bin/magento setup:db-schema:split-sales.
  • Se ha mejorado la administración de excepciones para los procesos secundarios bifurcados por ProcessManager. Cuando ahora se produce una excepción, se sale del proceso principal y se muestra un mensaje de error solo una vez. Anteriormente, se registraban varios errores de indizador y se mostraban varios mensajes. GitHub-30622
  • Los complementos de Adobe Commerce globales (por ejemplo, webapi_rest y graphql ) ya no se activan para un nuevo tipo de área personalizada cuando el di.xml de este archivo de área no contiene complementos registrados.
  • Las excepciones que se producen durante la inicialización ya no se almacenan en caché y ahora almacenan en déclencheur un código de respuesta 500.
  • Los comerciantes ahora pueden asignar o eliminar una imagen desde y hacia un evento de catálogo según la vista de la tienda. Anteriormente, cuando se cambiaba la vista de la tienda al editar un evento de catálogo, la casilla de verificación Eliminar imagen no estaba activa y la aplicación mostraba este error: Uncaught ReferenceError: toggleValueElements is not defined at HTMLInputElement.onclick. GitHub-364
  • El último controlador combinado en un archivo communication.xml ya no invalida todos los controladores creados anteriormente. GitHub-29528

Correcciones generales

  • La aplicación ahora muestra el número correcto de estrellas en la página Mis críticas de producto y en la página Mi cuenta revisiones recientes. Anteriormente, la aplicación solo aplicaba las estrellas de revisión a la primera revisión y dejaba sin protagonizar las demás revisiones de la página.
  • Los vínculos de cuenta en los encabezados ahora siguen los estándares WCAG. Anteriormente, los vínculos de cuenta en los encabezados contenían ID duplicados, lo que provocaba que fallara la validación de WCAG.
  • La aplicación ahora guarda las fechas de los eventos del catálogo en las zonas horarias UTC. Anteriormente, la aplicación guardaba las fechas de eventos de catálogo en el huso horario del usuario.
  • La aplicación ya no genera errores generados por el registro del sistema cuando un comprador invitado utiliza una dirección no válida. Anteriormente, la aplicación mostraba este error intermitentemente en lugar de procesar la página: No such entity with addressId. GitHub-15115
  • El proceso de cambio de tamaño de la imagen ya no se detiene para las imágenes en formato no compatible. Anteriormente, cuando catalog:images:resize encontraba un formato de imagen no compatible, el proceso se detuvo y la aplicación mostró este error: bin/magento catalog:images:resize Unsupported image format.
  • Se ha agregado compatibilidad con WEBP y AVIF para imágenes de logotipo al administrador. GitHub-32495
  • Ya no puede cambiar el ámbito del atributo media_gallery. Anteriormente, cuando se volvía a cambiar el ámbito del atributo media_gallery a global, la aplicación arrojaba un error.
  • Los productos relacionados que se agregaron como una actualización programada ya no se muestran en la página de productos de una tienda después de la fecha de finalización de la actualización. GitHub-469
  • La aplicación ahora muestra un mensaje informativo y preciso cuando hace clic en Administrar elementos en la página Registro de regalos de Mi cuenta y los productos del Registro no están disponibles. Anteriormente, la aplicación arrojó este error: Error: Call to a member function getId() …. GitHub-490
  • Ahora puede agregar una página de CMS desde la página Agregar nueva página a la jerarquía raíz del sitio web según lo esperado.
  • El filtrado ahora funciona como se espera en la lista de exportaciones programadas cuando se selecciona el tipo de entidad. Anteriormente, el filtro no funcionaba y la aplicación arrojaba un error de JavaScript. GitHub-361
  • Las imágenes de categoría ahora se copian como se espera del directorio catalog/tmp/category al directorio catalog/category cuando las categorías se guardan mediante el método de almacenamiento de la base de datos. La fila de imagen de la tabla media_storage_file_storage ahora también tiene el directory_id correcto. GitHub-11995
  • Ahora se notifica a los comerciantes sobre las cachés invalidadas según lo esperado después de enviar cambios a la jerarquía de CMS. Anteriormente, la aplicación no invalidaba las cachés al guardar la jerarquía de CMS.
  • AJAX Se han reducido las solicitudes de redundantes a la sección del carro de compras. Anteriormente, la aplicación no cargaba correctamente el subtotal del carro de compras, lo que activaba la recarga de nuevo.
  • En implementaciones que ejecutan PHP 7.4, la aplicación devuelve ahora un error 404 cuando la configuración Generar reescrituras de URL de "categoría/producto" se establece en No, y un comprador intenta acceder a una ruta de categoría inexistente. Anteriormente, la aplicación devolvió un error 500 que indica: Trying to access array offset on value of type bool. GitHub-31984
  • Ahora puede editar correctamente un producto que se creó con un conjunto de atributos del cual se quitaron Grupo de diseño y actualización de diseño de programación grupos. Anteriormente, al intentar editar un producto creado a partir de ese conjunto de atributos, la aplicación arrojaba un error grave. GitHub-44
  • nowdoc ha reemplazado a heredoc en el conmutador de almacén Magento_Backend. GitHub-32262
  • Ahora se redirige directamente a los administradores a la página de administración solicitada después de iniciar sesión. Anteriormente, cuando un administrador iniciaba sesión, se le redirigía al tablero de administración (o a cualquier página configurada como página de inicio) y tenía que desplazarse manualmente a su destino. GitHub-31042
  • Se agregaron las regiones Argentina, Bolivia, Chile, Ecuador, Guyana, Paraguay, Perú, Surinam y Venezuela a la tabla directory_country_region. GitHub-31169
  • Se agregaron las regiones de Albania, Dinamarca, Grecia, Islandia, Portugal y Suecia a la tabla directory_country_region. GitHub-31040
  • Los mensajes ahora se marcan como errores en la cola de mensajes de MysqlMQ cuando se producen excepciones. GitHub-18140
  • La aplicación ahora hace referencia al objeto de clase correcto al cargar la información de impuestos para las páginas de nota de abono de administrador y factura. GitHub-31197
  • La integración de Royal Mail Click & Drop ahora funciona según lo esperado. Anteriormente, la aplicación arrojó este error cuando intentó activar esta integración: Sorry! Something went wrong. Please try again later. GitHub-28996
  • La aplicación ahora muestra un mensaje de error informativo cuando se pasa un envío, una nota de abono o un ID de factura incorrectos en una dirección URL. Anteriormente, la aplicación arrojaba un error grave. GitHub-30424
  • Se ha eliminado la recursión en la ubicación de los archivos estáticos. La aplicación ahora muestra una página 404 en lugar de un error 500. Anteriormente, un error en la configuración predeterminada de NGINX provocaba una recursión infinita. GitHub-31530
  • El nombre del archivo cms_index_noroute.xml se ha corregido a cms_noroute_index.xml. GitHub-31300
  • El archivo .editorconfig se ha refactorizado para corregir el formato automático de db_schema_whitelist.json archivos. GitHub-31171
  • El cambio de tamaño de una ventana del explorador ya no almacena en déclencheur los eventos de lupa de enlace duplicados. GitHub-30788
  • La aplicación ya no emite una excepción SQL al filtrar Magento\Users\Model\ResourceModel\Users\Collection por user_id. GitHub-31216

Tarjetas de regalo

  • Los cargos por pago pendiente ahora se eliminan de una tarjeta regalo como se espera cuando se cancela una tarjeta regalo. Anteriormente, la aplicación arrojaba un error cuando cron se ejecutaba después de que se eliminara la tarjeta regalo.
  • Los compradores ahora pueden retirar tarjetas de regalo de un pedido en la página Revisar pedido al realizar el registro con varias direcciones. Anteriormente, la aplicación no quitaba la tarjeta regalo del pedido cuando el comprador seleccionaba la tarjeta y luego hacía clic en Quitar.
  • La aplicación ahora muestra el nuevo precio de una tarjeta de regalo en el carro de compras cuando cambia el valor de la tarjeta después de agregarla al carro de compras.
  • Se ha añadido la lógica de validación de intervalo de precios a la página de creación de tarjetas regalo. Anteriormente, un administrador podía crear una tarjeta con un valor mínimo que superara el valor máximo. GitHub-493
  • La consulta addRequisitionListItemsToCart ahora devuelve la cantidad de una tarjeta regalo personalizada como se espera cuando la solicitud no contiene un valor para allow_open_amount.

Mensaje de regalo

  • La mutación setGiftOptionsOnCart ahora crea correctamente mensajes de regalo. GitHub-388

Registro de regalos

  • Los valores de Fecha del evento ahora son iguales en la tienda y en el administrador durante la creación o edición del registro de regalos. Anteriormente, cada vez que editaba y guardaba el registro de regalos, la aplicación ajustaba la fecha del evento un día hacia atrás tanto en la tienda como en el administrador. GitHub-466
  • La aplicación ya no muestra los productos desactivados en los registros de regalos. Anteriormente, si un producto se deshabilitaba después de agregarse a un registro de regalos, la aplicación mostraba este mensaje cuando un comprador tenía acceso al registro: Error: Call to a member function getId() …. GitHub-510

Envoltorio para regalos

  • La traducción de las etiquetas de los envoltorios para regalos para las vistas de la tienda ahora funciona según lo esperado.
  • El envoltorio para regalos ahora se aplica como se espera a los pedidos que se envían a varias direcciones.
  • La aplicación ahora elimina los cargos por envoltorio para regalos del carro de compras cuando se han eliminado todos los productos.
  • Los totales de nota de abono ahora son correctos cuando la nota de abono contiene envoltorio para regalos y cargos configurables por productos. Anteriormente, el importe de impuestos del envoltorio para regalos no siempre se incluía en el total de la nota de abono. GitHub-34

Google Analytics

  • La aplicación ya no genera un error cuando un administrador intenta cargar una página en la tienda cuando los Google Analytics están activados. AJAX Se ha agregado una entrada CSP para connect-src para permitir solicitudes de to www.google-analytics.com. GitHub-30880

Google Tag Manager

  • El componente IU para la dirección de facturación en la página de pago del flujo de trabajo de cierre de compra ahora utiliza correctamente la dirección de oferta cuando Google Tag Manager está habilitado. Anteriormente, se producía un error de JavaScript en la página de pago.

GraphQL

  • La consulta de GraphQL products ahora devuelve opciones de atributo que se ordenan en el mismo orden utilizado en la página de edición de atributos.
  • La respuesta a la solicitud de GraphQL { category(id: 2){ children { name children { name } } } } ahora incluye un árbol de categorías ordenado correctamente.
  • El objeto CartItemPrices ahora contiene el nuevo campo de GraphQL fixed_product_taxes, que devuelve una matriz de los impuestos fijos sobre productos que se aplican a un elemento del carro de compras. Anteriormente, los impuestos de producto fijos aplicados a un elemento del carro de compras no se incluían en la consulta del carro de compras.
  • Las solicitudes vacías a GraphQL ahora emiten el código de respuesta 200 en lugar de 500. Anteriormente, el analizador de GraphQL arrojaba una excepción antes de que se generara el resultado de la consulta.
  • La mutación applyRewardPointsToCart ahora actualiza el total general de un carro de compras para reflejar con precisión el valor de los puntos de recompensa deducidos. GitHub-486
  • Los productos desactivados ya no se incluyen en la respuesta de GraphQL cuando GraphQL se utiliza para vincular productos de ampliación de venta.
  • Los comerciantes ahora pueden usar el método GraphQL setShippingAddressesOnCart para establecer las direcciones de facturación y envío para el carro de compras de un comprador cuando se deshabilita el cierre de compra de un invitado.
  • La consulta categoryList ya no genera una excepción cuando contiene varios fragmentos en el objeto CategoryTree. GitHub-31086
  • La consulta de GraphQL product ahora devuelve los precios correctos del grupo de clientes.
  • La respuesta de consulta products de GraphQL ahora ordena las agregaciones según la posición del atributo del producto.
  • La aplicación ya no emite errores de tipo durante las consultas de GraphQL cuando los sufijos de URL de productos y categorías contienen valores nulos. GitHub-30909
  • El objeto CustomizableDateValue ahora contiene el atributo type. Su valor es una enumeración que se puede establecer en DATE, DATE_TIME o TIME.
  • La consulta dynamicBlocks devuelve el contenido de bloques dinámicos que coinciden con los filtros especificados.
  • La solicitud del POST V1/products/special-price-delete ahora elimina solamente el precio con un store_id especificado según lo esperado. Anteriormente, la llamada eliminaba todos los precios especiales para el SKU especificado de todas las tiendas. GitHub-25907
  • Se ha corregido un error con el atributo country_code en la mutación createGiftRegistry.
  • Se han corregido problemas con el atributo giftRegistryUid de la mutación updateGiftRegistryItems.
  • Se ha agregado una comprobación adicional para evitar que la mutación updateGiftRegistryRegistrants se use para agregar personas aleatorias como inscritos a un registro de regalos.
  • La mutación addConfigurableProductsToCart devuelve ahora la miniatura correcta del producto especificado. Anteriormente, devolvía la miniatura del producto principal.
  • La consulta products ya no expone el precio especial de un producto cuando el período de precio especial está establecido para una fecha futura. GitHub-30210, GitHub-29631
  • La respuesta a la consulta customer ahora incluye el atributo total_giftcard como parte del objeto OrderTotal.
  • Se ha corregido un problema que hacía que la consulta products devolviera información errónea acerca de los niveles de precios en artículos que no tienen establecidos precios de nivel. GitHub-32279

Imagen

  • Ahora puede establecer los atributos del paquete required_options y has_options como se espera al crear o actualizar un producto del paquete mediante el extremo del POST /V1/product/:sku. Anteriormente, estos atributos personalizados se establecían en 0 (cero) a pesar de los esfuerzos por establecerlo en 1 (uno).

Importar/exportar

  • El filtro ID de categoría para entidades de producto en la cuadrícula Exportar atributos de entidad de la página ahora funciona según lo esperado.
  • El estado de existencias de productos agrupados ahora se actualiza, según lo esperado, cuando todos los productos secundarios están agotados. GitHub-32647
  • El estado de stock de producto configurable ahora se actualiza automáticamente según lo esperado cuando el estado de stock de producto secundario se actualiza mediante la importación. Anteriormente, el estado de existencias del producto no se actualizaba automáticamente cuando el estado de existencias del producto secundario se actualizaba mediante la importación.
  • Ahora puede guardar valores vacíos en una exportación programada. Anteriormente, la aplicación actualizaba los valores de filtro vacíos después de crear o guardar la exportación. Los valores no y not specified se representaban con cero en la base de datos, y se anuló un valor de not selected con no.
  • El proceso de exportación ahora tiene en cuenta el ámbito de la función del usuario al exportar productos, fuentes de stock y entidades del cliente. Anteriormente, el proceso de exportación ignoraba el ámbito de la función de usuario, que permitía la exportación de entidades de exportación de función de usuario privadas.
  • La aplicación ahora establece la clase de impuestos del producto en None si se importa un producto con tax_class_name valores None o 0. Anteriormente, si product tax_class_name era None en el archivo CSV, la aplicación creaba una nueva clase de impuestos None, que duplicaba la clase de impuestos existente. Si product tax_class_name eran 0 en el archivo CSV, la aplicación ignoró ese valor y la clase de impuestos del producto no cambió después de la importación.
  • Los administradores ahora pueden cambiar correctamente el name de bundle_values de un producto del paquete desde el administrador. Anteriormente, la aplicación mostraba el producto agotado en la tienda después de cambiar el nombre del administrador. Los productos también se combinaron con el mismo SKU en una sola sección de opción de paquete.
  • La aplicación ahora tiene en cuenta el ámbito del usuario al exportar los datos del cliente. Anteriormente, al intentar exportar clientes, la aplicación exportaba datos de clientes de todos los sitios web.
  • La aplicación ahora elimina las relaciones de producto entre las ventas ascendentes, las ventas cruzadas y los productos relacionados durante la importación del archivo CSV, tal como se espera cuando se especifica __EMPTY__VALUE__ en el archivo CSV.
  • La exportación de datos de direcciones personalizadas para muchos clientes (Administrador Sistema > Exportar) ya no provoca un error de memoria de forma rutinaria. Anteriormente, al exportar los datos de direcciones personalizadas, la aplicación intentaba cargar todos los datos del cliente, lo que provocaba un agotamiento de la memoria, y la aplicación arrojaba un error de no asignación de memoria.
  • Los precios de nivel duplicados ya no se importan durante el proceso de importación CSV predeterminado. Anteriormente, faltaba validación para evitar la importación de precios de nivel duplicados y, cuando se producían precios de nivel duplicados, los comerciantes no podían guardar los productos. Los comerciantes también vieron este error cuando intentaron programar un cambio de producto: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry….
  • Todas las imágenes de productos se validan durante la importación. Anteriormente, la aplicación solo validaba la primera imagen cuando un producto tenía varias imágenes. GitHub-28236
  • Ahora puede eliminar una región de una dirección de cliente como se espera durante la importación. Anteriormente, la región asignada no cambiaba cuando se importaba una dirección de cliente con una región vacía.
  • Los productos con contenido JSON o de HTML como atributos de producto adicionales ahora se exportan correctamente a un archivo CSV. Anteriormente, el archivo CSV contenía cadenas de datos superpuestas en campos incorrectos.

Índice

  • Process Manager ahora se cierra con un error cuando falla un proceso secundario. Anteriormente, Process Manager siempre se cerraba correctamente si el número de funciones que se le pasaban (por ejemplo, dimensiones del indizador) era inferior al valor de la variable de entorno MAGE_INDEXER_THREADS_COUNT. GitHub-30964
  • Los productos ahora están disponibles según lo esperado en los resultados de búsqueda de la tienda al vincular productos con una solicitud de PUT REST /V1/products/:sku/links cuando el modo de indizador está establecido en Actualizar al guardar.
  • El indizador de reglas de precios de catálogo ahora funciona como se espera cuando el modo de indizador está establecido en Actualizar al guardar. GitHub-370
  • La eliminación de una categoría deshabilitada que no incluye un producto ahora no afecta a la búsqueda en el catálogo ni a las tablas de índice plano de categorías. Anteriormente, al eliminar una categoría inactiva se activaba un reindexado completo. GitHub-23297
  • Los indexadores personalizados ahora pueden utilizar nombres de columna de entidad diferentes para las suscripciones. Anteriormente, el déclencheur de la base de datos utilizaba el nombre de columna del indizador establecido por última vez en Actualizar por programación en lugar del indizador designado. GitHub-21853
  • AJAX La aplicación ya no envía solicitudes de para volver a cargar secciones de datos de clientes (Magento_Customer/js/section-config) que no se vean afectadas por la solicitud. GitHub-31948
  • Los siguientes indizadores ya no se invalidan después de agregar, quitar o reordenar productos en una categoría: catalog_category_product y catalogsearch_fulltext (y sus dependientes). Anteriormente, estas eliminaciones involuntarias desencadenaban una reindexación completa de los sitios. Ahora se impide una reindexación completa en estas condiciones cuando el catálogo plano no está habilitado.

Infraestructura

  • La dependencia pelago/emogrifier se ha actualizado de la versión 3.1.0 a la 5.0.0. Esta actualización resultó en la introducción de cambios incompatibles con versiones anteriores en la clase Magento\Email\Model\Template\Filter. El código modificado se ejecuta durante el procesamiento de las plantillas de correo electrónico. Consulte Referencia de BIC.
  • Se ha corregido un problema con \Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::getCategoryIdsByProductIds que impedía guardar un nuevo producto.
  • 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.
  • La aplicación ya no genera un error Invalid header value detected en el formulario Contáctenos cuando un comprador introduce una dirección de correo electrónico que contiene marcas diacríticas francesas (como "é", "è"). La aplicación ahora convierte letras UTF-8 en el nombre de usuario a codificación ASCII. Anteriormente, las letras UTF-8 no se convertían a codificación ASCII en la sección única de la dirección de correo electrónico.
  • La aplicación ya no genera un error grave de PHP cuando se añade un complemento a una clase principal. GitHub-31291
  • Se han actualizado los archivos README.md para estos módulos: Magento_Msrp, Magento_MsrpConfigurableProduct, Magento_MsrpGroupedProduct, Magento_Multishipping, Magento_MysqlMq. GitHub-32577
  • phpcpd se ha actualizado a la versión 6.0.3 para garantizar la compatibilidad con PHP 8.
  • colinmollenhour/php-redis-session-abstract se ha actualizado a la versión 1.4.4 para garantizar la compatibilidad con PHP 8. GitHub-32709
  • Se corrigió una combinación no válida de tabulaciones y espacios en el archivo phpstan.neon. GitHub-31239
  • Se ha eliminado el uso de la propiedad obsoleta $_isScopePrivate en toda la base de código. GitHub-30506
  • Los diseños de página ya no están codificados en Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container. Como resultado, la función getPageLayouts() devuelve ahora la lista real de diseños de página declarados por los diferentes módulos según lo esperado. Anteriormente, solo devolvía diseños codificados. GitHub-31168
  • El archivo composer.lock se ha actualizado a la última versión de Coding Standard. GitHub-31152
  • Se agregó una dependencia que falta en el paquete web-token/jwt-framework al magento/module-jwt-framework-adapter. GitHub-32578
  • Se han agregado agentes de escucha pasivos a la biblioteca fotorama.js para mejorar la puntuación de las métricas de Lightthouse. GitHub-31140
  • Se ha actualizado el archivo README.md para el módulo Google Analytics. GitHub-32616
  • El Administrador de procesos ahora gestiona las excepciones correctamente en los procesos bifurcados. El proceso principal ahora se cierra y la aplicación muestra un mensaje de error solo una vez. Además, las excepciones de los procesos bifurcados ahora se gestionan cuando se inician en el proceso principal. Anteriormente, la aplicación registraba varios errores de indizador y mostraba varios mensajes de error. GitHub-30622
  • La aplicación ya no emite un error cuando se añade un complemento a una clase principal. (El parámetro optionsProvider ahora se declara después de getContentIdentities en Assest.php). Anteriormente, la aplicación arrojó este error: Error: Cannot instantiate interface Magento\Framework\Data\OptionSourceInterface. GitHub-31291
  • Al ejecutar Magento\Framework\Filesystem\Io\Ftp::ls() en una carpeta vacía, ahora se devuelve una matriz vacía como se esperaba. Anteriormente, la aplicación arrojó esta excepción: Invalid argument supplied for foreach() in vendor/magento/framework/Filesystem/Io/Ftp.php…. GitHub-31288
  • El método update tanto para el Rol como para las Reglas se ha marcado como obsoleto en app/code/Magento/Authorization/Model/Role.php. GitHub-30756
  • Se ha corregido la concatenación de los parámetros de cookie de SameSite. Anteriormente, una concatenación incorrecta adjuntaba el sufijo lex a value, domain y otros parámetros. GitHub-26377, GitHub-32440
  • allure-framework/allure-phpunit se ha actualizado a la versión 1.3.1 en toda la base de código. Anteriormente, la aplicación mostraba este error: Warning: Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP) in /var/www/html/src/vendor/allure-framework/allure-phpunit/src/Yandex/Allure/Adapter/AllureAdapter.php:74. GitHub-24635
  • La aplicación ahora muestra más errores informativos cuando se producen errores al ejecutar comandos bin/magento en el modo de producción. Anteriormente, la aplicación no mostraba mensajes de error o mostraba mensajes sin información. GitHub-32786
  • El objeto PHP ArrayIterator se ha actualizado para que funcione según lo esperado con PHP 7.4. GitHub-32088
  • La aplicación ya no genera un error cuando un cliente intenta completar un pedido cuando no hay transportistas disponibles. En su lugar, muestra la página de cierre de compra y este mensaje: Sorry, no quotes are available for this order at this time. Anteriormente, la aplicación mostraba una página de desprotección en blanco y registraba este mensaje en el registro de excepciones: array_keys() expects parameter 1 to be array, null given. GitHub-30830
  • La aplicación ya no registra cada cookie como un contexto independiente. La matriz $_COOKIE también se ha convertido en una cadena. Anteriormente, debido a que cada cookie se registraba como un contexto independiente, cuando el número de cookies superaba las 50, la aplicación registraba este mensaje: Unable to send the cookie. Maximum number of cookies would be exceeded. GitHub-31334

Factura

  • Al crear nuevas facturas en el Administrador, la casilla de verificación Copia de correo electrónico de ahora funciona según lo esperado. Anteriormente, la casilla de verificación se ignoraba si la configuración global para enviar correos electrónicos de factura estaba habilitada en Correos electrónicos de ventas. Ahora es coherente y funciona del mismo modo que las páginas de creación de envío y nota de abono. GitHub-28511

Galería de medios

  • XMP bin/magento media-gallery:sync ahora falla como se espera al procesar imágenes PNG que carecen de información de la.
  • Las entradas de la tabla catalog_product_entity_media_gallery se quitan según lo esperado cuando se eliminan productos relacionados. GitHub-17727
  • Los detalles de la imagen ahora se pueden actualizar en la Galería multimedia cuando la minificación de JavaScript está habilitada. Anteriormente, los detalles de la imagen no se guardaban y la aplicación mostraba este error: TypeError: Cannot read property 'call' of undefined in jquery.validate. GitHub-31633

MFTF

Las nuevas características y las correcciones de errores principales de MFTF se describen en Registro de cambios del marco de pruebas funcionales.

  • Los comandos magento indexer:reindex y cache:flush y el grupo de acción AdminReindexAndFlushCache se han eliminado de las pruebas para mejorar la ejecución de los siguientes módulos: Bundle, Catalog, CatalogRule, CatalogRuleConfigurable, CatalogUrlRewrite, Downloadable, Indexer, Paypal y Sales. GitHub-31031
  • AdminSubmitCategoriesPopupActionGroup se ha agregado a las pruebas para evitar errores en las pruebas. GitHub-31251
  • Las pruebas se han refactorizado con StorefrontCheckQuickSearchStringActionGroup y StorefrontAssertProductNameOnProductMainPageActionGroup (grupos de acción existentes). GitHub-31251

Pruebas refactorizadas

Las siguientes pruebas se han refactorizado para mejorar el tiempo de ejecución:

AddOutOfStockProductToCompareListTest

AdminApplyTierPriceToProductWithPercentageDiscountTest

AdminCheckingCreditMemoTotalsTest

AdminCheckDashboardWithChartsTest

AdminConfigDefaultProductLayoutFromConfigurationSettingTest

AdminCreateInvoiceTest

AdminCreateOrderAddProductCheckboxTest

AdminMassOrdersCancelCompleteAndClosedTest

AdminMassOrdersCancelProcessingAndClosedTest

AdminMassOrdersHoldOnCompleteTest

AdminMassOrdersHoldOnPendingAndProcessingTest (reemplazo de AdminMassOrdersHoldOnPendingAndProcessingTest obsoleto)

AdminMassOrdersUpdateCancelPendingOrderTest

AdminMassProductPriceUpdateTest

AdminMassUpdateProductAttributesMissingRequiredFieldTest

AdminOrdersReleaseInUnholdStatusTest

AdminPanelIsFrozenIfStorefrontIsOpenedViaCustomerViewTest

AdminSortingByWebsitesTest

AdminUpdateSimpleProduct

AdminUpdateSimpleProductWithRegularPriceInStockEnabledFlatTest

AdminValidateShippingTrackingNumberTest

CancelOrdersInOrderSalesReportTest

ProductsQtyReturnAfterOrderCancelTest

StorefrontConfigurableProductBasicInfoTest

Grupos de acción

Las acciones repetitivas se han sustituido por grupos de acciones en estas pruebas:

AdminCheckConfigurableProductPriceWithDisabledChildProductTest

AdminConfigurableProductCreateTest

AdminConfigurableProductRemoveAnOptionTest

AdminCreateProductDuplicateUrlkeyTest

AdminCreateSimpleProductNegativePriceTest

AdminCreateSimpleProductZeroPriceTest

AdminCreateVirtualProductFillingRequiredFieldsOnlyTest

AdminUpdateSimpleProductWithRegularPriceInStockDisabledProductTest

AdminUpdateSimpleProductWithRegularPriceInStockNotVisibleIndividuallyTest

AdminUpdateSimpleProductWithRegularPriceInStockVisibleInCatalogOnlyTest

Nuevos grupos de acción

AdminClearFiltersOnGridActionGroup

AdminClickAddNewPageOnPagesGridActionGroup

AdminClickInsertWidgetActionGroup

AdminClickRefundOfflineOnNewMemoPageActionGroup

AdminFillAccountInformationOnCreateOrderPageActionGroup

AdminGoToOrderStatusPageActionGroup

AdminOpenCMSPagesGridActionGroup

AdminSelectAttributeSetOnEditProductPageActionGroup

AssertAdminProductIsAssignedToCategoryActionGroup (reemplaza la cuadrícula de productos de filtrado por SKU y hace clic en la primera fila (para reducir el tiempo de ejecución de la prueba)

AssertLinkActionGroup

AssertStorefrontCartDiscountActionGroup

ClickPlaceOrderActionGroup

SaveCmsPageActionGroup

StorefrontAssertProductNameIsNotOnProductMainPageActionGroup

StorefrontGuestCheckoutProceedToPaymentStepActionGroup

StorefrontHoverProductOnCategoryPageActionGroup

StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup

Grupos de acciones eliminados

  • Se quitó CliIndexerReindexActionGroup (o se cambió el valor) de las pruebas para mejorar el tiempo de ejecución de los módulos Backend, Bundle, BundleImportExport, Catalog, CatalogRule, CatalogSearch, Checkout, Downloadable, Elasticsearch, Elasticsearch6, Indexer, LayeredNavigation, LoginAsCustomer, Newsletter, Sales, SalesRule, Search, Store, Swatches, UrlRewrite, Weee y Wishlist.
  • Se eliminaron CliCacheFlushActionGroup de Catalog, CatalogUrlRewrite, Checkout, Config, ConfigurableProduct, Contact, Cookie, CurrencySymbol, Customer, Downloadable, Elasticsearch, Elasticsearch6, Fedex, Indexer, LayeredNavigation, LoginAsCustomer, Msrp, Multishipping, Sales, Swatches, Translation, UrlRewrite, Vault, Weee y Wishlist módulos.

Newsletter

  • La aplicación ya no envía correos electrónicos de newsletter a un cliente que se ha dado de baja de la newsletter en el periodo de tiempo entre la creación de la cola de la newsletter y el envío de la newsletter. GitHub-32116
  • La aplicación respeta ahora la configuración de habilitación de boletines informativos (Tiendas > Configuración > Configuración > Clientes > Boletín > Opciones generales). Anteriormente, esta configuración siempre se recuperaba del ámbito predeterminado en implementaciones de varias tiendas. GitHub-31188
  • La GET de llamadas REST /V1/customers/search devuelve ahora la información correcta para los clientes suscritos a varios boletines. GitHub-31168
  • El estado de suscripción de almacenamiento en caché se ha eliminado del complemento de newsletter. GitHub-19345

Pedido

  • La aplicación ahora calcula correctamente un saldo de cliente facturado al devolver el crédito de tienda a una cuenta de cliente para un pedido parcialmente facturado.
  • La aplicación guarda ahora un pedido modificado como se espera cuando guarda un saldo de cliente reembolsado. GitHub-393

Métodos de pago

  • La aplicación ahora procesa bloques de pago en frontend independientemente del área desde la que se envió el correo electrónico. (El área actual ahora se emula como frontend antes de que se represente el bloque de pago). Anteriormente, los bloques de pago se representaban en el área desde la que se enviaba el correo electrónico. Como resultado, tanto si el correo electrónico de ventas se activó desde el administrador como desde la API de REST, las direcciones URL de los recursos intentaron cargarlos desde un área incorrecta (webapi_rest o adminhtml).
  • La aplicación ahora envía el vínculo de un producto descargable a la dirección de correo electrónico especificada durante el cierre de compra. Anteriormente, cuando un comprador invitado utilizaba el Pago y envío de PayPal Express e introducía diferentes direcciones de correo electrónico para enviar el pedido y para pagar, la aplicación enviaba el vínculo de producto descargable a la primera dirección.
  • La aplicación ahora muestra un valor preciso para el crédito de tienda disponible en la página Método de pago en implementaciones que admiten varias monedas.
  • La lista de métodos de pago ahora se actualiza según lo esperado cuando un comprador invitado cambia la dirección de envío de un pedido a un país diferente durante el cierre de compra. Anteriormente, el cambio de la dirección de facturación no almacenaba en déclencheur una actualización de los posibles métodos de pago.

PayPal

  • Los compradores ahora pueden realizar correctamente un pedido de PayPal Payflow Pro con una dirección de envío que contenga caracteres especiales. Anteriormente, la aplicación rechazaba el pago de estos pedidos.
  • Ahora se redirige a los compradores a la página de éxito del pedido después de un pago realizado correctamente con PayPal. Anteriormente, se redirigía a los compradores a una página en blanco porque se perdían datos de sesión.

Rendimiento

  • Se ha mejorado el rendimiento de la búsqueda de SKU de administrador en catálogos grandes. Las sugerencias del optimizador de consultas ahora fuerzan el uso del índice durante la ejecución de la consulta.
  • Se ha mejorado el rendimiento del proceso catalog_product_alert cron al ejecutarse en tablas grandes (varios millones de filas). Anteriormente, catalog_product_alert cargaba todas las alertas de producto, lo que provocaba una excepción de memoria insuficiente.
  • La aplicación ya no carga todas las páginas de CMS cuando solo se necesita una página de edición para procesar un formulario de administrador. Estas páginas ahora se cargan más rápido. GitHub-30936
  • Los valores numéricos de las expresiones WHERE IN ahora se convierten en números, no en cadenas, lo que mejora el rendimiento de las consultas en algunas versiones de MariaDB. GitHub-31135

  • 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. Cuando este modo no está habilitado, debe restablecer manualmente el indexador tras producirse un error. Consulte Uso del modo de bloqueo de aplicación para reindexar procesos.

Precio

  • La aplicación ahora actualiza correctamente el precio de un producto con precios agrupados cuando un comprador actualiza la cantidad del producto en la tienda. GitHub-32669
  • Los productos agrupados ahora se pueden guardar cuando se ha asignado un precio de nivel a los productos y se utiliza Magento\Framework\Api\ExtensibleDataObjectConverter para convertir los datos del producto. Anteriormente, cuando se usaba Magento\Framework\Api\ExtensibleDataObjectConverter para convertir datos de producto en una matriz al guardar un producto, la aplicación no lo guardó y mostró este error: Notice: Undefined index: price in app/code/Magento/Catalog/Model/Product/Type/Price.php on line 382.
  • Las actualizaciones de precios programadas ahora se aplican a productos que ya están en el carro de compras de un comprador. GitHub-356
  • El precio de nivel ahora se aplica a un producto como se espera cuando los incrementos de cantidad están activados y el inventario decimal es inferior a 1. Anteriormente, la cantidad mínima de precio de nivel se establecía en 1.

Vídeo del producto

  • Ahora puede usar el botón Agregar vídeo (Administrador Catálogo > Productos) para agregar varios vídeos de forma consecutiva. Anteriormente, los campos de vídeo conservaban los detalles del vídeo anterior.
  • La introducción del modo de pantalla completa para un vídeo de producto en una página de producto ahora funciona como se espera en dispositivos móviles. Anteriormente, al entrar en modo de pantalla completa, el vídeo se pausaba antes de salir del modo de pantalla completa.
  • Los botones de flecha de navegación (Siguiente y Anterior) ahora están visibles como se espera en los vídeos de productos de tienda.
  • Los comerciantes ahora pueden agregar videos de Vimeo usando el botón Insertar video en la página del producto según lo esperado. Anteriormente, la aplicación mostraba un error 404. GitHub-31753

Cita

  • La llamada a /V1/guest-carts/examplecartid/items ahora devuelve la vista de almacén solicitada. Anteriormente, devolvía la primera vista de tienda de la tienda, no la solicitada.
  • El envío de facturas ahora se puede configurar. Anteriormente, el envío de facturas no se podía configurar y la aplicación siempre enviaba una factura después de crearla. Los correos electrónicos de factura y pedido se enviaron en el ámbito de un observador. Los observadores independientes ahora rigen el envío del correo electrónico de pedido y el correo electrónico de factura. GitHub-27656

Informes

  • Ahora, todos los informes del sistema se pueden ver y descargar desde el proyecto de infraestructura de Adobe Commerce en la nube. Anteriormente, no se podían descargar informes del sistema para Registros, Datos, Diseño o Tiendas.
  • La fecha de la última revisión en Administración Informes > Revisiones > Por productos ahora muestra la fecha de revisión correcta. Anteriormente, la aplicación mostraba la fecha de creación del producto en lugar de la fecha de revisión.

Autorizaciones de devolución de mercancía (RMA)

  • El atributo RMA resolution ya no se muestra como obligatorio cuando el valor del campo de atributo required se establece en no.
  • Ahora puede seleccionar varios pedidos para la devolución desde el administrador. Anteriormente, la aplicación generaba un error al hacer clic en Enviar después de seleccionar varias devoluciones y seleccionar Cierre en el menú desplegable Acciones.
  • La aplicación ahora envía notificaciones por correo electrónico a los clientes según lo esperado después de cambiar el estado de una devolución mediante la API de REST.
  • La aplicación ahora filtra los registros según los valores de filtro en la cuadrícula Administrador que devuelve el cliente. Anteriormente, la aplicación lo dirigía a la página Administrar todos los clientes y al hacer clic en el botón Restablecer filtro también se redirigía a esta página. GitHub-436

Críticas

  • Las estrellas de clasificación de revisión de productos ahora se calculan correctamente en la sección Detalles de revisión de la página Mi cuenta.
  • Las secciones Clasificación promedio del producto y Clasificación del producto de la página de detalles de revisión del producto ahora se representan correctamente. Anteriormente, el ID de revisión no se establecía cuando la aplicación calculaba la clasificación de tiendas y la plantilla de revisión de producto no se representaba correctamente.
  • El vínculo Sea el primero en revisar este producto ahora cambia según lo esperado a un recuento de revisiones después de que un administrador apruebe una revisión.
  • Los administradores ahora pueden ordenar las revisiones de producto en la sección Revisiones de producto de la página de edición de productos según lo esperado. GitHub-30270
  • Las revisiones ahora se guardan con el ID de almacén correcto después de que un administrador apruebe y guarde la revisión desde un dominio diferente al del almacén. GitHub-17510

Recompensas

  • Los comerciantes ahora pueden cancelar un pedido que se haya realizado total o parcialmente con puntos de recompensa después de que el cliente que ha realizado el pedido se haya eliminado del sistema.
  • Los comerciantes ahora pueden eliminar los puntos de recompensa de las reglas de precios del carro de compras. Anteriormente, cuando un comerciante intentaba establecer puntos de recompensa en 0 al crear una regla de precio del carro de compras, el valor anterior de la cantidad de puntos de recompensa persistió.
  • Los puntos de recompensa por las críticas de productos ahora están asociados con el sitio web correspondiente cuando se aprueban múltiples críticas desde la cuadrícula del administrador Marketing > Revisiones pendientes. Anteriormente, los puntos de recompensa no se mostraban en la tienda y no estaban vinculados al sitio web correspondiente en el Administrador.
  • La aplicación ahora actualiza la lista de métodos de pago cuando un comprador que ha cerrado la compra con varias direcciones comprueba o desmarca la opción Crédito de tienda (puntos de recompensa).

Ventas

  • Los usuarios administradores ahora pueden realizar pedidos de artículos sin existencias cuando la opción Pedidos no satisfechos está habilitada (Tiendas > Configuración > Catálogo > Inventario > Opciones de productos). Anteriormente, la aplicación arrojaba un error.
  • Los compradores ahora pueden encontrar un pedido en la página Pedidos y devoluciones cuando el apellido termina en un espacio en blanco.
  • Las facturas ahora se crean con el total general correcto cuando se aplica una regla de precio del carro de compras que asigna un descuento del 100% a un pedido que también está sujeto a impuestos de descuento y productos del catálogo y que cumple los requisitos para el envío gratuito. Anteriormente, el pedido tenía el precio correcto, pero la factura no. GitHub-30853
  • Filtrar los pedidos por fecha ahora devuelve resultados precisos. Anteriormente, la aplicación no devolvía un pedido realizado después de las 00:00 UTC cuando se filtraban los pedidos por fecha de pedido.
  • La cuadrícula de notas de crédito ahora muestra el símbolo de moneda correcto cuando se usa el ámbito Sitio web para un atributo Price en una implementación de varias tiendas.
  • Los botones de opción Métodos de pago ya no desaparecen en la sección Información de pago y envío del flujo de trabajo de cierre de compra después de volver a cargar la página Crear nuevo pedido del administrador. GitHub-32106
  • El texto en árabe ahora se muestra correctamente en las facturas.
  • La aplicación ahora calcula correctamente los totales de impuestos de la nota de abono parcial para las notas de abono que se basan en un pedido o en una factura en tiendas que implementan PayPal Payment Pro como pasarela de pago. Anteriormente, para pedidos con varias facturas, la aplicación aplicaba todo el impuesto de ese pedido para la cancelación parcial de la factura en la nota de abono.
  • La aplicación ya no crea interbloqueos de base de datos aleatorios al enviar nuevos correos electrónicos de pedido a los clientes. Anteriormente, se producían interbloqueos porque la aplicación guardaba todo el objeto y sus objetos relacionados en lugar de columnas SQL actualizadas. La aplicación mostró este tipo de error: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction. GitHub-31090
  • La página de detalles de pedido de tienda ahora muestra la cantidad de producto enviada correctamente. Anteriormente, las cantidades de productos eran incorrectas porque la plantilla de la página Envío de pedidos procesaba Cantidad enviada como int. Esto se cambió a float.
  • La aplicación ya no envía copias por correo electrónico de una factura de pedido cuando el botón Enviar copia por correo electrónico de la factura está desmarcado. Anteriormente, la aplicación enviaba un correo electrónico a Cliente y Enviar copia del correo electrónico de factura a. GitHub-28511
  • La aplicación ya no crea entradas de direcciones duplicadas para una cuenta de cliente al crear un nuevo pedido desde el administrador para un cliente existente. Se cambió el nombre de la casilla de verificación Guardar en la libreta de direcciones a Agregar a la libreta de direcciones y ahora está desactivada de forma predeterminada en el administrador.
  • La aplicación ahora usa el logotipo que se ha cargado en la configuración de Logotipo para la vista impresa del HTML cuando los compradores imprimen un pedido desde su cuenta. Anteriormente, la aplicación mostraba el logotipo de LUMA en lugar del logotipo cargado.
  • El localizador de artículos de la tienda ahora funciona como se espera cuando el número de artículos supera los 20. Anteriormente, el localizador tenía en cuenta productos secundarios y el recuento total era incorrecto.
  • La aplicación muestra ahora los símbolos de divisa correctos para los valores de subtotal y envío y gestión en las cuadrículas de la página Pedido y de la página Nota de Abono. GitHub-22662
  • Los administradores que utilizan Safari ahora pueden añadir correctamente un producto a un pedido del administrador. Anteriormente, cuando el administrador hacía clic en el botón Agregar productos seleccionados al pedido, la aplicación mostraba el icono de carga giratoria y la página se bloqueaba. GitHub-30265

Regla de ventas

  • La aplicación ahora aplica las reglas de precio del carro de compras con Descuento de cantidad máxima aplicado a o Paso de cantidad de descuento (comprar X) condiciones correctamente cuando se aplican varias reglas de precio del carro de compras. Anteriormente, si se aplicaba una regla de precio del carro de compras con Descuento de cantidad máxima a o Paso de cantidad de descuento (comprar X) después de otra regla de precio del carro de compras, el descuento total se reducía al valor configurado para Descuento de cantidad máxima se aplica a o Paso de cantidad de descuento (comprar X) veces el precio del producto.
  • El informe Coupon ahora refleja con precisión la actividad de los cupones en implementaciones en las que se implementa una base de datos dividida.
  • Las reglas de precios del carro de compras que contienen la condición Categoría IS NOT se aplican ahora según lo esperado a productos simples o secundarios configurables que no están asignados a una categoría pero cuyos productos principales están asignados.
  • La consulta de GraphQL cart ahora devuelve el total general correcto para el paso de facturación de un carro de compras cuando se aplica un cupón al pedido.

Buscar search-heading

  • La página de categoría ya no contiene estos identificadores de elemento de HTML duplicados: modes-label, mode-list, toolbar-amount, sorter, limiter.
  • Los resultados parciales de búsqueda de palabras ya no incluyen coincidencias inesperadas o irrelevantes, y las búsquedas producen resultados coherentes tanto en la tienda como en el administrador. La aplicación ahora utiliza un analizador diferente sin un simulador para las búsquedas parciales de palabras. Anteriormente, los resultados de búsqueda mostraban productos que no incluían palabras clave de búsqueda. (Anteriormente, el analizador predeterminado incluía un analizador y, como se utilizó el mismo analizador en el momento de la búsqueda para la búsqueda de palabras parciales, el resultado de la búsqueda podría producir coincidencias inesperadas o irrelevantes).
  • La búsqueda rápida ahora devuelve resultados si la consulta de búsqueda tiene varias palabras y el nombre del producto está configurado como no se puede buscar. Anteriormente, si el nombre del producto estaba configurado como no se puede buscar, la aplicación arrojaba una excepción de consulta en consultas de búsqueda con varias palabras.
  • Los resultados de búsqueda ahora incluyen el atributo weight como se espera cuando se configura como un atributo en el que se puede buscar.
  • La aplicación ya no genera un error cuando se ve una página de categoría vacía con el Elasticsearch habilitado. En su lugar, procesa la página según lo esperado y muestra un mensaje informativo. Anteriormente, un índice de texto completo vacío activaba una excepción en una página de categoría.
  • La función de autocompletar el campo de búsqueda ahora funciona como se espera si un comprador hace clic fuera del campo de búsqueda después de comenzar su búsqueda. Las sugerencias de autocompletar ahora vuelven a aparecer cuando el comprador reanuda la escritura. Anteriormente, la aplicación no mostraba sugerencias de autocompletar y al hacer clic en el cuadro de búsqueda no se volvían a ver las sugerencias de búsqueda (aunque sí se volvían a escribir cartas adicionales).
  • Al buscar un producto en función de su SKU total o parcial en Búsqueda avanzada, ahora se devuelve el producto esperado.
  • Los filtros de navegación por capas ahora muestran recuentos de productos precisos. Anteriormente, los valores de recuento de productos del Elasticsearch no se filtraban con permisos de catálogo.
  • El Elasticsearch ya no genera un error cuando el parámetro de página de URL de categoría supera la paginación. GitHub-23843
  • Ahora puede agregar un asignador de campos de Elasticsearch personalizado a Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\CompositeResolver. GitHub-24350
  • Los desarrolladores ahora pueden cambiar las asignaciones de Elasticsearch. Anteriormente, las plantillas dinámicas enviadas al servidor de Elasticsearch en las asignaciones predeterminadas estaban codificadas, lo que impedía a los desarrolladores indexar en Elasticsearch cualquier dato adicional asociado a un módulo personalizado. GitHub-24363
  • Los campos de búsqueda (minibúsqueda de formularios) ahora funcionan según lo esperado cuando las sugerencias de búsqueda están desactivadas. GitHub-30584

Envío

  • La aplicación ahora actualiza el precio de envío como se espera cuando un comprador vuelve a la página del carro de compras después de eliminar un producto durante el cierre de compra con varias direcciones.
  • La solicitud ahora muestra el precio de envío ajustado correcto cuando algunos artículos del carro cumplen los requisitos para el envío gratuito. Anteriormente, cuando un subconjunto de artículos del carro de compras cumplía los requisitos para el envío gratuito, la aplicación no ajustaba el precio de envío y mostraba el precio de envío completo al comprador.
  • Los administradores restringidos a un sitio web específico ahora pueden crear un envío para un pedido realizado en el mismo sitio web. Anteriormente, la aplicación arrojaba esta excepción cuando un administrador que no tenía permiso para acceder a la vista de almacén predeterminada intentaba enviar un pedido colocado en una vista de almacén a la que el administrador tenía acceso: Notice: Undefined offset: 1 in /app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php on line 293.
  • La aplicación ahora tiene en cuenta los descuentos pertinentes en la regla de precio de carro de compras al determinar si un pedido cumple las condiciones para el envío gratuito de DHL.
  • Las etiquetas de envío ahora utilizan la divisa base como se espera en lugar de la divisa de pedido en tiendas que admiten varias divisas cuando se realiza un pedido en una divisa no base. GitHub-31891
  • La aplicación ahora muestra el subtotal de pedido correcto cuando un comprador vuelve a la página del carro de compras durante el cierre de compra después de salir de la página de envío múltiple. GitHub-31889
  • La edición de la información de facturación durante la creación del pedido de administración ya no cambia la información de envío para los clientes con diferentes direcciones de envío y facturación predeterminadas. GitHub-31786
  • La aplicación ya no desmarca la casilla de verificación Anexar comentarios cuando un comprador hace clic en Obtener métodos y tarifas de envío y selecciona un método de envío al crear un pedido desde el administrador. GitHub-30256
  • Los compradores ahora pueden usar el botón Atrás del navegador para volver a la página Seleccionar método de envío mientras retiran un pedido con varias direcciones. Anteriormente, la aplicación mostraba una página Seleccionar método de envío dañada. GitHub-30268
  • La cantidad de productos ahora permanece sin cambios según lo esperado después de que un comprador cambie la cantidad en la página Enviar a varias direcciones y haga clic en el botón Atrás del explorador. GitHub-31956
  • Los cargos por método de envío de tarifa única ya no se convierten en cero cuando se aplica una regla de precio de carro de compras durante el cierre de compra. GitHub-21832
  • La aplicación ya no genera un error cuando un comerciante intenta enviar un pedido mediante DHL cuando la casilla de verificación Crear etiqueta de envío está habilitada y el nombre del producto contiene caracteres Unicode. Anteriormente, la aplicación mostraba este error al solicitar la creación de etiquetas: The response is in wrong format. GitHub-31032
  • Puede realizar correctamente un pedido del administrador en una implementación de varios sitios en la que United States está habilitado en un sitio web y Disable all countries está habilitado como el ámbito predeterminado en el otro sitio web. Anteriormente, la aplicación no realizó el pedido y mostró este error: Please check the shipping address information. "regionId" is required. Enter and try again. GitHub-30577

Ensayo

  • La función Programar actualización de bloques ahora funciona según lo esperado en implementaciones que implementan Fastly. Anteriormente, la aplicación no actualizaba el contenido del bloque porque las etiquetas de caché de Fastly no se invalidaban y Fastly seguía ofreciendo contenido obsoleto.
  • La previsualización de ensayo de la regla de precio del carro de compras ahora se carga en el sitio web adecuado cuando se asigna a varias vistas de tienda de sitios web. Anteriormente, la previsualización de ensayo de la regla de precios del carro de compras se cargaba en la vista de tienda predeterminada independientemente de los sitios web asignados.
  • Los precios especiales de los productos en la vista de tienda no predeterminada ahora se establecen en el valor predeterminado como se espera después de que haya finalizado una actualización programada.
  • Los comerciantes ahora pueden guardar correctamente un producto descargable con una muestra vinculada de la página de producto descargable después de crear una actualización de ensayo futura con una fecha de finalización. Anteriormente, la aplicación no guardó el producto y mostró este mensaje: The downloadable sample isn't related to the product. Verify the link and try again. GitHub-488
  • La aplicación ya no ejecuta consultas de base de datos grandes que incluyen todos los ID de producto durante la vista previa de una actualización de programación de una categoría. En su lugar, el filtro de categoría se aplica a la colección de productos para crear una tabla temporal para las vistas previas de ensayo de la categoría. Anteriormente, la aplicación insertaba todos los productos en una tabla temporal para la vista previa de ensayo, lo que reducía el rendimiento.
  • El módulo Magento_SalesRuleStaging ya no almacena en déclencheur los errores durante la actualización desde la versión 2.3.x.
  • La aplicación ahora muestra las condiciones de regla de catálogo con los datos correctos cuando visualiza una actualización de programación. Anteriormente, si se veía una actualización de programación creada con condiciones, la aplicación no mostraba condiciones ni mostraba condiciones con datos incorrectos.
  • La casilla de verificación Usar valor predeterminado para un producto permanece marcada después de que una actualización programada esté desmarcada antes de la actualización.
  • Las reglas de precios de catálogo ahora se aplican según lo esperado a los productos con valores de atributo no definidos. Anteriormente, los descuentos creados mediante una regla de precios de catálogo no se aplicaban a productos con atributos no definidos. GitHub-461
  • Las reglas de catálogo ahora funcionan como se espera en implementaciones de varios sitios web con tiendas en diferentes zonas horarias. Anteriormente, la aplicación aplicaba o desactivaba reglas de catálogo en todos los sitios web al mismo tiempo.
  • Los precios de nivel ya no se eliminan cuando se crea una actualización de programación para un sitio web específico.
  • Ahora puede guardar un producto desde la página Producto descargable después de crear una actualización de ensayo futura con una fecha de finalización. Anteriormente, la aplicación no guardó el producto y mostró este mensaje: The downloadable link isn't related to the product. Verify the link and try again. GitHub-474

Almacenar

  • La aplicación ya no trata una cadena de 0 como un valor vacío al mostrar una página principal de la tienda. Anteriormente, la aplicación trataba un valor entero al principio de una ruta de solicitud como un ID de almacén, lo que tenía efectos no deseados en la SEO.
  • Los complementos para \Magento\Framework\App\ActionInterface en lib/internal/Magento/Framework/App/Action/Plugin se han quitado para seguir la guía de que los complementos se deben usar para personalizar el comportamiento de un módulo desde otro módulo. GitHub-28050
  • La aplicación ahora muestra este mensaje cuando intenta seleccionar Website como predeterminado cuando Store View está deshabilitado durante la creación del sitio web: Please enable your Store View before using this Web Site as Default. Anteriormente, el sitio web se bloqueaba y la aplicación no mostraba una alerta.

Impuestos

  • La aplicación ahora tiene en cuenta los impuestos ocultos durante la validación del importe mínimo del pedido.
  • La aplicación ahora muestra Impuestos fijos sobre productos (FPT), tal como se espera cuando un comprador regresa a su carro de compras y continúa con el cierre de compra después de agregar productos agrupados al carro de compras. GitHub-30250
  • La aplicación ahora rellena previamente los campos de entrada Número de IVA para las direcciones de facturación y envío de la sección Información de dirección de la página de nuevo pedido del administrador con números de IVA guardados cuando un administrador crea un pedido para un cliente existente. GitHub-31846
  • La aplicación ahora muestra el campo Número de IVA en la página de registro del cliente cuando customer/create_account/vat_frontend_visibility está habilitado. GitHub-31326

Prueba

  • Los entornos de prueba se han actualizado a Redis 6.0.12.
  • Se eliminó CacheCleaner::cleanAll(); de las pruebas de integración. GitHub-31074
  • Se ha añadido una prueba para este escenario: Los usuarios administradores pueden editar una cuenta de cliente cuando el cliente está suscrito a un boletín informativo en cola. GitHub-30645
  • Se eliminó el comando cache:flush de las pruebas para mejorar el tiempo de ejecución de los módulos Catalog, CatalogUrlRewrite y LoginAsCustomer. GitHub-31056
  • Se eliminaron los parámetros redundantes y se cambió el POST a la GET donde era necesario en \Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShipping.

Tema

  • La página de inicio de sesión del cliente ya no muestra este mensaje cuando la configuración de Mover código JS al final de la página (Almacenar > Configuraciones > Avance > Desarrollador > Configuración de JavaScript) y las cookies están habilitadas: The store will not work correctly in the case when cookies are disabled.
  • Los vínculos de cuenta en los encabezados ahora siguen los estándares WCAG. Anteriormente, los vínculos de cuenta en los encabezados contenían ID duplicados, lo que provocaba que fallara la validación de WCAG.
  • La aplicación ahora prioriza la configuración de la tienda para una imagen de logotipo de tienda sobre la configuración del diseño. Anteriormente, el tamaño de las imágenes de logotipo era fijo y no variaba según el almacén.
  • La aplicación ahora muestra los elementos de página de forma coherente en las páginas de tienda que utilizan temáticas estándar de Adobe Commerce. Anteriormente, no todos los estilos se aplicaban en la temática en blanco, por lo que no todos los elementos de página se mostraban en las páginas que utilizaban esta temática. (Por ejemplo, no había ningún icono de lupa en el campo de búsqueda de la página Mis pedidos).

Traducción y configuraciones regionales

  • Los corchetes que se agregan a las cadenas ya no se escapan cuando se configura la traducción en línea. Anteriormente, el método escapeHtmlAttr convertía los corchetes en códigos de entidad de HTML. GitHub-32000
  • Las frases que no se pueden traducir en el administrador ahora se pueden traducir. (Esta solicitud de extracción contribuye a los esfuerzos continuos para que todas las cadenas de administrador sean localizables). GitHub-11175
  • Ahora se pueden traducir las cadenas de texto de la plantilla que se usan para administrar los métodos de pago almacenados (Mi cuenta > Métodos de pago almacenados ). GitHub-31211
  • Solicite los correos electrónicos enviados desde el administrador ahora usan la configuración regional del almacén, no la configuración regional asociada a la cuenta del administrador. GitHub-26521

IU

  • El pie de página del administrador ahora muestra la versión del producto correcta.
  • La paginación para orígenes está ahora presente como se espera durante la creación del envío de administración.
  • El filtro de cuadrícula de producto ahora funciona correctamente cuando utiliza atributos de fecha personalizados para filtrar productos y la configuración regional del usuario administrador es en_GB.
  • Los gestos de pellizco y zoom ahora funcionan según lo esperado en la lupa de la galería de imágenes de la página de productos en dispositivos iOS.
  • La paginación de los resultados de búsqueda de la cuadrícula de productos de administración ahora comienza en la página uno para cada búsqueda según lo esperado.
  • Se han resuelto las anomalías con la visualización del carro de compras al ampliar o reducir. Anteriormente, los elementos de visualización se superponían al ampliar esta página.
  • Se han resuelto los problemas de alineación con las fichas de la página de invitaciones de administración (Administración Marketing > Ventas privadas > Invitaciones). Anteriormente, la visualización de pestañas para invitaciones aceptadas por un cliente estaba desalineada. GitHub-333
  • La página de revisión de pedidos que se muestra durante el cierre de compra con PayPal Express Checkout ahora se carga correctamente. Anteriormente, la plantilla contenía el botón Actualizar método de entrega que no se usaba y que el script solo ocultaba parcialmente durante la representación de la página. GitHub-32006
  • Las estrellas de clasificación y el texto de revisión de la sección de revisiones del cliente de la página del producto ahora se separan correctamente cuando hay nombres de clasificación largos. GitHub-31890
  • Las opciones ahora se muestran según lo esperado en la lista desplegable Acciones de las páginas Archivar Facturas, Envíos y Notas de Abono.
  • La aplicación ahora muestra un valor de tiempo correcto cuando la opción datetime componente timeOnly está establecida en yes. GitHub-23157
  • Ahora puede quitar una actualización de diseño después de crear un widget nuevo en Administración Contenido > Widgets. GitHub-29936
  • El botón Eliminar actualización de diseño ahora funciona como se espera en cualquier diseño que haya agregado desde Administración Contenido > Widgets. Anteriormente, este botón no funcionaba en ningún diseño distinto del primero seleccionado al agregar varios diseños. GitHub-30286
  • La aplicación utiliza ahora el título de página definido en el archivo de diseño como título de la página del explorador para el archivo de edición de cuentas de cliente. Anteriormente, la acción del controlador Magento\Customer\Controller\Account\Edit aplicaba el valor del título de página a Account Information. GitHub-30724
  • Se han añadido a estas páginas las casillas de verificación que permiten a los comerciantes alternar entre mostrar y ocultar contraseñas:

    • Inicio de sesión del cliente
    • Registro de cliente
    • Edición de clientes (sección Cambio de contraseña)
    • El cliente estableció la nueva contraseña GitHub-31557
  • Se ha eliminado un encabezado redundante en las celdas de la cuadrícula que aparecía cuando un administrador añadía un producto a un conjunto de productos agrupado después de cambiar el conjunto de atributos. GitHub-30911
  • La aplicación ahora muestra un filtro DateRange en el área de Inicio de sesión de la página Cliente > Inicio de sesión. Anteriormente, la aplicación mostraba un filtro Text. GitHub-30328
  • JavaScript se ha eliminado de los archivos de plantilla y se ha movido a archivos independientes para reducir los problemas de procesamiento en las páginas de administración. Anteriormente, las páginas de administración no se representaban correctamente en implementaciones en las que se había habilitado la minificación de HTML. La aplicación mostró este error: An error has happened during application run. See exception log for details. GitHub-32454
  • El widget dropdownDialog ahora carga solamente los fragmentos jquery-ui arrastrables y redimensionables que necesita. Anteriormente, cargaba grandes cantidades de código innecesario, lo que inflaba el tiempo de carga y reducía el rendimiento. GitHub-32810

Reescrituras de URL

  • Las reescrituras de URL de productos para un sitio web específico en una implementación de varios sitios ahora se generan tal como se espera después de que los productos se asignen a un sitio web mediante una actualización masiva.
  • La aplicación ahora genera correctamente la ruta de URL para las categorías secundarias cuando la casilla de verificación Usar valor predeterminado para la clave URL está habilitada para la categoría principal. Anteriormente, al mover una categoría en la jerarquía, se producía un valor url_path incorrecto al usar claves de URL diferentes en una implementación de vista de varias tiendas. GitHub-16202
  • La aplicación ahora actualiza url_path de la categoría asignada a todo el ámbito de almacén cuando se mueve una categoría en la jerarquía de categorías. Anteriormente, al mover una categoría en la jerarquía, se producía un(a) url_path incorrecto.
  • Las redirecciones de URL creadas desde el administrador mediante una URL personalizada ahora funcionan correctamente. Anteriormente, GraphQL almacenaba en caché la respuesta de una consulta de GraphQL urlResolver y devolvía el valor antiguo después de actualizar la reescritura de la URL.
  • Las reescrituras de URL del producto ahora se eliminan según lo esperado cuando se elimina un producto de un sitio web. GitHub-24184
  • Se agregó una referencia main_table a store_id en la función addStoreFilter de la colección app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php. Anteriormente, se producían problemas cada vez que se agregaba un(a) join a la colección en una tabla que también contiene una columna store_id. GitHub-31853
  • El extremo REST PUT /V1/products/:sku ahora vuelve a generar las reescrituras de URL del producto según lo esperado. Anteriormente, el extremo generaba de nuevo los valores de producto url_key, pero no reescribía las direcciones URL. GitHub-30316

Usuario

  • Ahora puede guardar una nueva función de usuario efectiva (Administrador Sistema > Permisos > Funciones de usuario) con todo el árbol Catalog seleccionado excluyendo Edit Product Design (Catálogo > Inventario > Productos > Editar diseño de producto). Anteriormente, la aplicación no guardó los cambios de producto realizados por un usuario con esta función y mostraba este error: Not allowed to edit the product's design attributes. GitHub-31973
  • La aplicación ahora utiliza la plantilla de correo electrónico personalizada correcta al generar correos electrónicos para nuevos administradores. Anteriormente, la aplicación utilizaba la plantilla predeterminada antigua, que omitía el nombre y los apellidos del administrador.
  • La aplicación ahora utiliza la plantilla de correo electrónico correcta al enviar correos electrónicos a los nuevos usuarios. Anteriormente, la aplicación utilizaba la plantilla predeterminada incluso cuando se seleccionaba una plantilla personalizada.

VersionCMS

  • La aplicación ahora aplica la temática correcta a una página de CMS después de cambiar su diseño. Anteriormente, la aplicación cambiaba el tema asignado a Luma después de guardar los cambios de diseño, independientemente del tema asignado a la página.
  • Los administradores con funciones restringidas ahora pueden agregar, actualizar o duplicar correctamente las páginas a las que tiene acceso y que están asignadas a un nodo de jerarquía. Anteriormente, la aplicación arrojaba un error grave en estas condiciones.

Vídeo

  • Los vídeos ya están disponibles en la galería de productos como se espera cuando se habilita y utiliza el agrupamiento avanzado de JavaScript. GitHub-32501
  • Los vídeos de YouTube para productos simples que pertenecen a un producto configurable ahora funcionan según lo esperado. Anteriormente, las imágenes se ordenaban por ID en lugar de por posición. En consecuencia, algunos videos fueron tratados como imágenes. GitHub-29690

Visual Merchandiser

  • Se ha mejorado el rendimiento de las cargas de páginas de categorías de administración con Visual Merchandiser. La carga de páginas de categoría Administrador ya no genera consultas de base de datos de gran tamaño.

Marco de API web

  • La API de catálogo ahora actualiza correctamente los valores de opciones personalizadas de un producto añadiendo nuevos valores y eliminando valores antiguos. Anteriormente, la API no eliminaba los valores antiguos.
  • El POST /V1/guest-carts/:cartId/billing-address ahora devuelve el identificador de dirección como un número entero, no como una cadena.

Restricción de sitio web

  • Ahora se redirige a los compradores a la página a la que intentaban acceder antes de que se les pidiera que iniciaran sesión. Anteriormente, en implementaciones en las que las restricciones de sitios web estaban habilitadas y el modo de restricción estaba establecido en Ventas privadas: Iniciar sesión solo, se redirigía a los compradores a la página principal de la tienda.

Widget

  • Un administrador ahora puede eliminar todas las actualizaciones de diseño de un widget. Anteriormente, cuando un widget tenía varias actualizaciones de diseño, un administrador solo podía eliminar la primera.
  • Al hacer clic en el botón Agregar al carro en el widget del producto, ya no se volverá a cargar la página. Anteriormente, al hacer clic en el botón Agregar al carro de un widget de productos, se volvía a cargar una página actual antes de que se agregara el producto al carro de compras.
  • El widget de vínculo de nodo de jerarquía CMS en TinyMCE ahora procesa los vínculos de jerarquía como se espera cuando el campo Anclar texto personalizado está vacío.

Lista de deseos

  • La aplicación ya no restablece los ajustes de configuración de un producto configurable cuando hace clic en el botón Editar elemento para el producto de una lista de artículos deseados. GitHub-32119
  • La aplicación ahora muestra el precio de producto correcto cuando actualiza un producto con una opción de archivo personalizable en la lista de deseos. Anteriormente, la aplicación mostraba el precio de producto incorrecto y no mostraba un vínculo al archivo cargado.
  • El recuento total de productos en una lista de artículos deseados para un cliente con varias listas de artículos deseados ahora coincide con el número de artículos en la lista de artículos deseados. Anteriormente, el recuento total de productos incluía productos sin existencias.
  • La aplicación ahora elimina un producto de una lista de artículos deseados después de añadirlo a un pedido. GitHub-30260
  • Los compradores ahora pueden añadir productos relacionados a su carro de compras desde una lista de deseos. Anteriormente, la aplicación solo agregaba el producto configurable, no el producto configurable y sus productos relacionados, cuando un comprador hacía clic en el vínculo Seleccionar todo de la sección Productos relacionados. GitHub-32274

Problemas conocidos

Problema: Error de JavaScript cuando reCAPTCHA está deshabilitado. Si reCAPTCHA está deshabilitado para la desprotección, esta continúa, pero la aplicación muestra un error Uncaught TypeError en el registro de la consola. Este problema se solucionará en una versión posterior.

Problema: Error de la directiva de seguridad de contenido. La tienda muestra el siguiente error en el registro de la consola: The Content-Security-Policy directive frame-ancestors does not support the source expression unsafe-inline. El rendimiento de la tienda no se ve afectado.

Problema: Anomalías en la visualización de los importes de las tarjetas de regalo con crédito PayPal. Cuando se activa el crédito de PayPal y se configuran varios importes de tarjetas regalo, si un comprador cambia el importe por el valor de una tarjeta regalo, la tienda no actualiza el importe para los pagos a plazos. Se incluirá una corrección para este problema en Adobe Commerce 2.4.4 y en el Magento Open Source 2.4.4.

Problema: El botón Agregar al pedido ​no funciona para los productos agregados al carro de compras por SKU. la aplicación muestra este mensaje de error cuando hace clic en el botón Agregar al pedido después de agregar productos al pedido por SKU: An error has happened during application run. Los productos no se añaden al carro de compras. Solución alternativa: use la característica Agregar productos.

Problema: las consultas de GraphQL category y categoryList omiten los permisos de categoría que determinan si las categorías de un catálogo compartido están ocultas o expuestas. En este momento, la tienda muestra todas las categorías que se han asignado o dejado de asignar al catálogo compartido. Esto afecta a las implementaciones de Adobe Commerce 2.4.3 que implementan una tienda de PWA para la que se han habilitado los catálogos compartidos B2B.

Contribuciones comunitarias

Agradecemos a la comunidad Magento Open Source en general y quisiéramos agradecer sus aportaciones a esta versión.

El equipo de ingeniería de la comunidad Colaboradores Magento mantiene una lista de las principales personas y socios que aportan contribuciones por mes, trimestre y año. Desde esa página de colaboradores, puede seguir los vínculos a sus PR fusionadas en GitHub.

Contribuciones de socios

En el cuadro siguiente se destacan las contribuciones de los asociados. Esta tabla enumera el socio que contribuyó con la solicitud de extracción, la solicitud de extracción externa y el número de problema de GitHub asociado a ella (si está disponible).

Socio
Solicitudes de extracción
Problemas relacionados con GitHub
Atwix
magento/magento2#31228, magento/magento2#31025, magento/magento2#30996, magento/magento2#31128, magento/magento2#31053, magento/magento2#30837, magento/magento2#31433, magento/magento2#31079, magento magento2#31013, magento/magento2#31261, magento/magento2#31016, magento/magento2#30986, magento/magento2#31241, magento/magento2#31243, magento/magento2#31221, magento/magento2#31123 🔗, magento/magento2#31147, magento/magento2#31097, magento/magento#31287, magento/magento#31099, 🔗magento/magento2#41}, magento/magento2#31420, magento/magento2#45},, 6}magento/magento2#31320🔗, magento/magento2#, 🔗magento/magento2#51}, 🔗magento/magento#53}, magento/magento#2,, magento/magento#2, magento/magento#2, 🔗magento/magento#magento2 2 02200000000000000000000000000000000000000000000000000000000000000000000000000 3077661}, magento/magento2#31564, 🔗magento/magento2#65}, 🔗magento/magento2#67}, 🔗magento/magento2#69}, magento/magento2#, 🔗magento/magento2#73}, 🔗magento/magento2#75}magento2}, magento/magento2#31827, magento/magento2#, 🔗magento/magento2#81}, 🔗magento/magento2#83}, 🔗magento/magento2#85}, 🔗magento/magento2#87}, magento/magento2#89}, {90 magento/magento2#31592, magento/magento2#, magento/partners-magento2ee#280, 🔗magento/magento2#97}, magento/magento2#, 🔗magento/magento2#102}magento2 3}, magento/magento2#31634, 🔗magento/magento2#107}, 🔗magento/magento2#109}, 🔗magento/magento2#111}, 🔗magento/magento2#13}, 🔗magento/magento2#1115}, {111222222222222222222222222222222222222222222222222222222222222222222222222222222222, magento/magento2#31436, magento/magento2#, 🔗magento/magento2#121}, 🔗magento/magento2#123}, 🔗magento/magento#125}, magento/magento2#127}, {127 11212212222222220222222222200000000000000000000000000000000000000000000000000000 128}magento/magento2#, 🔗magento/magento2#131}, 🔗magento/magento2#133}, 🔗magento/magento#135}, 🔗magento/magento#137}, magento#139}, {137 231371 40}magento/magento2#, 🔗magento/magento2#143}, 🔗magento/magento2#145}, 🔗magento/magento2#147}, 🔗magento/magento2#149}, magento/magento2#151}, {149 2}magento/magento2#31323, magento/magento2#, 🔗magento#157}, 🔗magento/magento2#159}, 🔗magento/magento#161}, magento/magento2#164}, {16331057 {164 magento/magento2#31009 31595 31452 31458 31487 31418 31240 31603 31601 31394 31247 31508 31449 31776 31788 29047 32071 31936 31924 31918 31859 31864 31604 31510 31512 31502 31488 31454 31507 31164 31568 31569 31851 32078 31953 31961 30850 31395 31390 31451 32467 32477 32524 32517 32463 32498 32288 32353 32539 32465 32295 32759 31938 32356 30623, magento/magento2#, 🔗magento/magento2#169}, 🔗magento/magento2#171}, 🔗magento/magento2#173}, magento/partners-magento#539, , magento/partners-magento2ee#540 🔗 🔗 🔗 🔗 🔗 🔗 🔗
magento/magento2#31233, magento/magento2#31031, magento/magento2#31056, magento/magento2#31130, magento/magento2#31074, magento/magento2#30858, magento/magento2#31438, magento/magento2#31160, magento magento2#31034, magento/magento2#31168, magento/magento2#31033, magento/magento2#31039, magento/magento2#31250, magento/magento2#31249, magento/magento2#31234, magento/magento2#31129 , magento/magento2#31153, magento/magento2#31132, magento/magento#31290, magento/magento#31131, 🔗magento/magento2#41}, magento/magento2#31440, magento/magento2#45},, 6}magento/magento2#31327, magento/magento2#, magento/magento2#51}, magento/magento#53}, magento/magento#2,, magento/magento#2, magento/magento#2, 🔗magento/magento#magento2 2 02200000000000000000000000000000000000000000000000000000000000000000000000000 3078461}, magento/magento2#31575, 🔗magento/magento2#65}, 🔗magento/magento2#67}, 🔗magento/magento2#69}, magento/magento2#, 🔗magento/magento2#73}, 🔗magento/magento2#75}magento2}, magento/magento2#31844, magento/magento2#, 🔗magento/magento2#81}, 🔗magento/magento2#83}, 🔗magento/magento2#85}, 🔗magento/magento2#87}, magento/magento2#89}, {90 magento/magento2#, magento/partners-magento2ee#, 🔗magento/partners-magento2ee#95}, 🔗magento/partners-magento2ee#97}, 🔗magento/partners-magento2ee#99}, magento/magento2#, magento/magento2#102, magento/magento2#31628, 🔗magento/magento2#107}, 🔗magento/magento2#109}, 🔗magento/magento2#111}, 🔗magento/magento#112}, magento/magento#12, magento/magento2#, 🔗magento/magento2#119}, 🔗magento/magento2#121}, 🔗magento/magento2#123}, magento/magento#22,magento/magento#2 🔗, magento/magento2#, magento/magento2#, 🔗magento/magento2#133}, 🔗magento/magento2#135}, 🔗magento/magento2#138}magento/magento2#139}, magento/magento2#31437, magento/magento2#, 🔗magento/magento2#145}, 🔗magento/magento2#147}, 🔗magento/magento#149}, 🔗magento/magento2#151}, {1449 8222222222222222222222222222222222222222222222222222222222222222222222222222222magento/magento2#31442 31325 31073 31036 31627 31632 31522 31521 31441 31251 31624 31626 31403 31248 31516 31524 31801 28522 28586 31435 31560 31561 32072 31937 31902 31860 31865 31623 31515 31514 31519 31520 31517 31075 31574 31573 31852 32079 31954 31962 30855 30645 31523 32505 32504 32583 32518 32507 32569 32502 32379 32279 32568 32506 32377 32577 29631 30210 32574 32928, magento/magento2#, 🔗magento/magento2#157}, 🔗magento/magento#159}, magento/magento#161},magento/magento2#163}, {162 2000000000000000000000000000000000000000000000000000000000000000000000000000000magento/magento2#, magento/magento2#4451, 🔗magento/magento2#169}, magento/magento2#171},magento/magento2#172}, 🔗magento/magento2002 1 75}, magento/partners-magento2ee# 🔗 🔗 🔗 🔗 🔗
Blue Acorn iCi
magento/magento2#31022, magento/magento2#28926, magento/magento2#30992, magento/magento2#30881, magento/magento2#30938, magento/magento2#31621
magento/magento2#30265, magento/magento2#29528, magento/magento2#30286, magento/magento2#30880, magento/magento2#29690, magento/magento2#27678
Cedcommerce
magento/magento2#30410, magento/partners-magento2ee#444, magento/magento2#31736, magento/magento2#31584, magento/partners-magento2ee#449
magento/magento2#30424, magento/partners-magento2ee#31111, magento/magento2#31660, magento/partners-magento2ee#31331
Krish TechnoLabs
magento/magento2#31142, magento/magento2#29991, magento/magento2#31208, magento/magento2#29804
magento/magento2#30911, magento/magento2#29936, magento/magento2#31188, magento/magento2#29365, magento/magento2#29805
EY
magento/magento2#31369, magento/magento2#30615, magento/magento2#31490, magento/partners-magento2ee#445
magento/magento2#4451, magento/magento2#29302, magento/partners-magento2ee#31196
TechDivision
magento/magento2#30943
magento/magento2#30936
AYKO
magento/magento2#32389
magento/magento2#32088
Gato blanco rápido
magento/magento2#31157, magento/magento2#31886
magento/magento2#30724, magento/magento2#30471
Ojo De Peces
magento/magento2#30695
magento/magento2#30788
Vaimo
magento/magento2#30626
magento/magento2#30622
Ziffity
magento/partners-magento2ee#451, magento/magento2#31482
magento/magento2#31557
MRM COMMERCE
magento/magento2#32612, magento/magento2#32610
magento/magento2#32578, magento/magento2#32658
Asesoría inteligente
magento/magento2#30910
magento/magento2#30909

Contribuciones de colaborador individual

La siguiente tabla identifica las contribuciones de los miembros de nuestra comunidad. En esta tabla se enumeran las solicitudes de extracción externas, el número de problema de GitHub asociado a ellas (si está disponible) y el miembro de la comunidad que contribuyó con la solicitud de extracción.

Miembro de la comunidad colaborador
Solicitudes de extracción
Problemas relacionados con GitHub
dhaecker
#31045
sagar1dahiwala
#31101
501
zaximus84
#31022
30265
ihor-sviziev
#31151
31152
AnnaAPak
#31079
31160
AnnaAPak
#31013
31034
aligent-lturner
#30910
30909
thomas-kl1
#30822
30830
gwharton
#30868
28511
sky-hub
#30953
30952
pawel-siejba
#30626
30622
Chandresh22
#30477
30270
matiashidalgo
#28926
29528
shawnabramson
#27845
26909
engcom-Golf
#31189
31090
engcom-Echo
#31066
31095
vovayatsyuk
#31275
31291
serie-v
#31228
31233
korovitskyi
#31261
31168
zaximus84
#30881
30880
serie-v
#30996
31056
AnnaAPak
#31016
31033
AnnaAPak
#30986
31039
serie-v
#31025
31031
zaximus84
#30992
30286
ilnytskyi
#31098
31135
saphaljha
#31142
30911
saphaljha
#29991
29936
AnnaAPak
#31147
31153
serie-v
#31128
31130
DmitryFurs
#31165
31239
AnnaAPak
#31221
31234
AnnaAPak
#31241
31250
AnnaAPak
#31243
31249
AnnaAPak
#31123
31129
Usik2203
#30837
30858
AnnaAPak
#31097
31132
Usik2203
#31053
31074
vpsnak
#31021
31032
mrtuvn
#30634
30584
driskell
#28007
8933, 18409, 22438, 23054, 25634, 26507, 26809
AnnaAPak
#31287
31290
AnnaAPak
#31099
31131
GovindaSharma
#30410
30424
kate-kyzyma
#31433
31438
AnnaAPak
#31420
31440
DmitryFurs
#31166
31171
Bartlomiejsz
#31157
30724
elisei
#31212
31211
nikolalardev
#30959
31040
kandy
#30990
31038
viniciusbordinhao-blueacorn
#30938
29690
engcom-Golf
#31368
30964
SmVladyslav
#31352
30284
SmVladyslav
#31422
30256
mrtuvn
#31330
31445
serie-v
#31320
31327
AnnaAPak
#31436
31437
AnnaAPak
#31371
31442
aleksinoleg
#31334
31471
vovayatsyuk
#31162
31170
serenón
#31198
31197
AnnaAPak
#31323
31325
AnnaAPak
#31057
31073
Usik2203
#30776
30784
Nazar65
#31308
31288
AnnaAPak
#31009
31036
engcom-Golf
#31563
30250
engcom-Golf
#31594
23843
AnnaAPak
#31452
31632
serie-v
#31564
31575
AnnaAPak
#31595
31627
ihor-sviziev
#31542
engcom-Kilo
#31629
31591
engcom-Echo
#31501
26214
engcom-Echo
#31553
22662
AnnaAPak
#31240
31251
chiranjeevi-cj
#31369
AnnaAPak
#31418
31441
AnnaAPak
#31458
31522
AnnaAPak
#31487
31521
AnnaAPak
#31601
31626
AnnaAPak
#31603
31624
AnnaAPak
#31394
31403
vovayatsyuk
#31321
31326
AnnaAPak
#31247
31248
saphaljha
#31208
31188
aapokiso
#30950
31042
nikunjkotecha
#21857
21853
engcom-Kilo
#31646
11995
mrtuvn
#31793
7231
navar
#31621
27678
kate-kyzyma
#31827
31844
serie-v
#31592
31628
serie-v
#31634
31647
mrtuvn
#31754
30506
AnnaAPak
#31508
31516
AnnaAPak
#31449
31524
nikolalardev
#31158
31169
AnnaAPak
#31488
31520
AnnaAPak
#31454
AnnaAPak
#31510
31515
AnnaAPak
#31502
31519
AnnaAPak
#31512
31514
engcom-Charlie
#31485
25907
AnnaAPak
#31604
31623
MellenIO
#31636
31641
AnnaAPak
#31507
31517
serie-v
#31788
31801
serie-v
#31776
mrtuvn
#30871
30882
MuelleW
#31299
31300
larsroettig
#30943
30936
edspc
#30883
31530
ravi-chandra3197
#29804
29365, 29805
dineshvb
#30615
29302
victorpetryk
#31892
31890
engcom-Echo
#31957
31891
shikhamis11
#31736
31660
SmVladyslav
#32120
32119
victorpetryk
#32107
32106
serie-v
#31859
31860
serie-v
#31864
31865
engcom-Charlie
#31875
26521
achatpc
#31815
31853
serie-v
#31936
31937
serie-v
#31924
31902
kate-kyzyma
#31918
engcom-Charlie
#32095
28996
serie-v
#32071
32072
AnnaAPak
#31569
31573
AnnaAPak
#31568
31574
maksymz
#31804
11175, 31873
engcom-Hotel
#31750
30802
dorupetruc
#31205
31216
rain2o
#27315
12584
engcom-Kilo
#32217
27285
engcom-Kilo
#32239
31950
mastiuhin-olexandr
#32002
32000
engcom-Charlie
#32009
30316
serie-v
#32078
32079
engcom-Charlie
#32082
23297
Den4ik
#32187
31608
ihor-sviziev
#32299
32313
fnogatz
#32249
32262
Bartlomiejsz
#31886
30471
serie-v
#31953
31954
ihor-sviziev
#31933
31948
serie-v
#31851
31852
AnnaAPak
#31451
31523
AnnaAPak
#31390
30645
AnnaAPak
#31395
engcom-Charlie
#31645
30492
AnnaAPak
#30850
30855
ajithkumar-maragathavel
#31482
31557
edenduong
#30329
30328
SmVladyslav
#32275
32274
engcom-Kilo
#32301
32232
engcom-Kilo
#32326
31849
engcom-Kilo
#32363
30149
ihor-sviziev
#32462
26377, 32440
gixid192
#32393
30257
gixid192
#32398
31633
engcom-Charlie
#32212
30756
engcom-Charlie
#32186
32116
serie-v
#31961
31962
engcom-Charlie
#32273
17727
mamífero
#32389
32088
bogutsky
#30755
30577
AntonEvers
#28973
29549
zakdma
#32580
27656
engcom-Kilo
#32650
31956
mastiuhin-olexandr
#32194
32102
quisse
#27012
22273
sivaschenko
#32710
32709
hostep
#32639
32644
engcom-Foxtrot
#32646
32647
engcom-Charlie
#32254
19345
Estornudo craneal
#32298
32671
kate-kyzyma
#32288
32379
en sesión
#32400
32495
mrtuvn
#32434
32454
ihor-sviziev
#32532
27411, 32525
kate-kyzyma
#32498
32502
kate-kyzyma
#32463
32507, 32569
serie-v
#32517
32518
kate-kyzyma
#32524
32583
kate-kyzyma
#32477
32504
kate-kyzyma
#32467
32505
charles-tychons
#32448
32616
bgorski
#32612
32578
bgorski
#32610
32658
ProkopovVitaliy
#31938
32577, 4451
mrtuvn
#31080
31140
fredden
#30695
30788
thomas-kl1
#30823
30860
engcom-Kilo
#32730
23645
kate-kyzyma
#32465
32506
ihor-sviziev
#32499
32501
kate-kyzyma
#32539
32568
Usik2203
#32353
32279
vlmed
#32356
martasiewierska
#32802
32810
DmitryTimmbal
#32759
hostep
#32145
32786
engcom-Foxtrot
#32099
32100
erfanimani
#31985
31984
kate-kyzyma
#32295
32377
vidyli
#31296
24635
engcom-Kilo
#32755
24363
ihor-sviziev
#32614
31777, 826
rogyar
#30623
29631, 30210

Requisitos del sistema

Nuestra pila de tecnología está construida sobre PHP y MySQL. Para obtener más información, consulte Requisitos del sistema.

Instrucciones de instalación y actualización

Puede instalar Adobe Commerce 2.4.3 con Composer.

Kits de herramientas de migración

La herramienta de migración de datos ayuda a transferir los datos del almacén de Magento 1.x existente al Magento 2.x. Esta interfaz de línea de comandos incluye funciones de verificación, seguimiento de progreso, registro y prueba. Para obtener instrucciones de instalación, consulte Instalar la herramienta de migración de datos. Considere la posibilidad de explorar o contribuir al repositorio de migración de datos.

El Kit de herramientas de migración de código ayuda a transferir las personalizaciones y extensiones de almacén de Magento 1.x existentes a Magento 2.x. La interfaz de línea de comandos incluye secuencias de comandos para convertir módulos y diseños de Magento 1.x.

recommendation-more-help
1d4eef6c-fef1-4e61-85eb-b58d7b9ac29f