[2.4.7-beta]{class="badge informative"}

Notas de la versión de Magento Open Source 2.4.7-beta3

IMPORTANT
Las versiones beta pueden contener defectos y se proporcionan "TAL CUAL" sin garantía de ningún tipo. Adobe no tiene obligación de mantener, corregir, actualizar, cambiar, modificar o admitir de otro modo (a través de los Servicios de soporte de Adobe o de otro modo) las versiones beta. Se recomienda a los clientes que tengan cuidado y no dependan en modo alguno del correcto funcionamiento o rendimiento de las versiones beta y/o de la documentación o los materiales adjuntos. Por lo tanto, cualquier uso de las versiones beta es totalmente bajo el propio riesgo del cliente.

Magento Open Source 2.4.7-beta3 presenta soporte para PHP 8.3. Incluye más de 150 correcciones y mejoras de calidad. Las dependencias del Compositor principal y las bibliotecas de terceros se han actualizado a las versiones más recientes disponibles.

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

Otra información de la versión

Aunque el código para estas funciones está empaquetado con versiones del código principal del Magento Open Source, varios de estos proyectos 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.

Magento Open Source 2.4.7-beta3

El Magento Open Source 2.4.7-beta3 se ha probado con las siguientes versiones de componentes:

  • Chrome 118
  • Composer 2.6 o la última versión compatible con PHP 8.3
  • Elasticsearch 8.11 o la última versión disponible
  • MariaDB 10.6
  • MySQL 8.0
  • Nginx 1,24
  • OpenSearch 2.12
  • PHP 8.3 y 8.2
  • RabbitMQ 3.13 o la última versión disponible
  • Redis 7.2
  • Barniz 7.4.1 o la última versión disponible

Nuestra pila de tecnología está construida sobre PHP y MySQL. Consulte Requisitos del sistema.

Aspectos destacados de Magento Open Source 2.4.7-beta3

Busque los siguientes aspectos destacados en esta versión.

Mejoras de seguridad

Esta versión incluye las mismas correcciones de seguridad y mejoras de seguridad de plataforma que se incluyen en Adobe Commerce 2.4.6-p5, 2.4.5-p7 y 2.4.4-p8. Consulte Boletín de seguridad del Adobe para conocer la última discusión de estos problemas corregidos.

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, incluidas, entre otras, las siguientes:

  • INCLUSIÓN EN LA LISTA DE PERMITIDOS IP
  • autenticación de doble factor
  • uso de una VPN
  • uso de una ubicación única en lugar de /admin
  • buena higiene de las contraseñas

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.

  • Cambios en el comportamiento de las claves de caché no generadas:

    • Las claves de caché no generadas para bloques ahora incluyen prefijos que difieren de los prefijos para las claves generadas automáticamente. (Las claves de caché no generadas son claves que se establecen mediante sintaxis de directiva de plantilla o la variable setCacheKey o setData métodos.)
    • Las claves de caché no generadas para bloques ahora solo deben contener letras, dígitos, guiones (-) y caracteres de subrayado (_).
  • Limitaciones en el número de códigos de cupones generados automáticamente. Magento Open Source ahora limita el número de códigos de cupones que se generan automáticamente. El máximo predeterminado es 250 000. Los comerciantes pueden utilizar el nuevo Code Quantity Limit opción de configuración (Stores > Settings:Configuration > Customers > Promotions) para evitar que el sistema se vea abrumado con muchos cupones.

  • Optimización del proceso predeterminado de generación de URL de administración. La generación de la URL de administrador predeterminada se ha optimizado para aumentar la aleatoriedad, lo que hace que las URL generadas sean menos predecibles.

  • Una nueva configuración de caché de página completa puede ayudar a mitigar los riesgos asociados con el protocolo HTTP {BASE-URL}/page_cache/block/esi punto final. Este punto de conexión admite fragmentos de contenido cargados dinámicamente y sin restricciones desde los controladores de diseño de Commerce y las estructuras de bloque. El nuevo Handles params size La configuración de establece el valor del punto de conexión handles , que determina el número máximo permitido de identificadores por API. El valor predeterminado de esta propiedad es 100. Los comerciantes pueden cambiar este valor desde el Administrador (Stores > Settings:Configuration > System > Full Page Cache > Handles params size). Consulte Configure la aplicación Commerce para utilizar Barniz.

  • Limitación de velocidad nativa para la información de pago transmitida a través de las API de REST y GraphQL. Los comerciantes ahora pueden configurar la limitación de velocidad para la información de pago transmitida mediante REST y GraphQL. Esta capa adicional de protección apoya la prevención de ataques de tarjeta y potencialmente disminuye el volumen de ataques de tarjeta que prueban muchos números de tarjeta de crédito a la vez. Se trata de un cambio en el comportamiento predeterminado de un extremo REST existente. Consulte Limitación de velocidad.

  • El comportamiento predeterminado del isEmailAvailable GraphQL query y (V1/customers/isEmailAvailable) El extremo REST ha cambiado. De forma predeterminada, la API ahora siempre devuelve true. Los comerciantes pueden activar el comportamiento original, que es devolver true si el correo electrónico no existe en la base de datos y false si existe.

Mejoras de Platform

Las actualizaciones de plataforma para esta versión mejoran el cumplimiento de las prácticas recomendadas de seguridad más recientes.

Magento Open Source 2.4.7-beta3 incluye las siguientes actualizaciones de plataforma:

  • Compatibilidad con PHP 8.3. Esta versión incorpora soporte para PHP 8.3. Magento Open Source ahora es compatible con PHP 8.3 y 8.2. PHP 8.2 será compatible hasta su fecha de fin de servicio (EOS) en diciembre de 2025. A partir de diciembre de 2025, todos los comerciantes que ejecuten implementaciones de 2.4.7 deberían migrar a PHP 8.3.

Magento Open Source 2.4.7-beta3 sigue siendo compatible con PHP 8.1 únicamente con fines de actualización. PHP 8.1 no es compatible y no se recomienda. El código principal Magento Open Source 2.4.7-beta3, todas las extensiones agrupadas, y todas las extensiones de propiedad del Adobe y servicios SaaS son compatibles con PHP 8.3.

  • Compatibilidad con RabbitMQ 3.11. Esta versión es compatible con la última versión de RabbitMQ 3.11. La compatibilidad sigue siendo con RabbitMQ 3.9, compatible hasta agosto de 2023, pero recomendamos utilizar el Magento Open Source 2.4.7-beta3 solo con RabbitMQ 3.11.

  • Composer 2.6.x. La compatibilidad con Composer 2.2.x se mantiene.

  • Compatibilidad con caché de barniz 7.4. Esta versión es compatible con la última versión de Varnish Cache 7.4. La compatibilidad se mantiene con las versiones 6.0.x y 7.2.x, pero recomendamos usar Magento Open Source 2.4.7-beta3 solo con Varnish Cache versión 7.4 o versión 6.0 LTS.

  • Elasticsearch 8.11 compatibilidad

  • Redis 7.2

  • El extjs La biblioteca de se ha sustituido por la última versión de jsTree.

  • jquery/fileUpload se ha eliminado la biblioteca.

Todas las bibliotecas JavaScript y dependencias NPM del código principal del Magento Open Source se han actualizado a las últimas versiones disponibles. Todas las dependencias de la biblioteca Laminas se han actualizado a la última versión que son compatibles con PHP 8.3.

Actualizaciones adicionales

  • La puerta de enlace de la API XML de Commerce UPS se ha migrado a la nueva API de REST de Commerce UPS para admitir las actualizaciones que UPS está realizando en sus Modelo de seguridad de API. (UPS está implementando un modelo de seguridad OAuth 2.0 (tokens de portador) para todas las API). Todas las API XML anteriores de Commerce UPS se han eliminado de la base de código de Magento Open Source 2.4.7.

  • La integración de Magento Open Source con FedEx se ha migrado de los servicios web WSDL de FedEx heredados a las últimas API RESTful de FedEx. El seguimiento de servicios web de FedEx, la validación de direcciones y la validación de códigos postales WSDLS se retirarán en mayo de 2024.

  • Se ha agregado compatibilidad con el nuevo método de envío USPS Ground Advantage. Esta es una integración lista para usar con el nuevo método de envío de USPS, USPS Ground Advantage, que se publicó en julio de 2023.

Esta nueva integración se puede utilizar para recuperar las tarifas de envío y programar las entregas y devoluciones a través del servicio de envío de USPS. El método de envío USPS Ground Advantage reemplaza estos métodos de envío, que se retiraron cuando se lanzó el método de envío USPS Ground Advantage:

* Terreno comercial de USPS
* Servicio de paquetes de primera clase
* Parcel Select Ground <!>— AC-9182 —>
  • Los módulos de envío Temando se han eliminado de la base de código del Magento Open Source principal. Esta función quedaba obsoleta en el Magento Open Source 2.4.4.

GraphQL

Magento Open Source 2.4.7 incluye capacidades mejoradas de almacenamiento en caché de GraphQL, compatibilidad con el esquema de GraphQL para atributos personalizados, compatibilidad con la cancelación de pedidos sin encabezado y almacenamiento en caché de resolución mejorado.

  • Administración de carritos más flexible. El clearCart la mutación ahora borra el contenido de un carro de compras especificado en una sola acción. Sustituye al clearCustomerCart mutación, que ha quedado obsoleta.

  • Mejoras en la creación de mutaciones de carrito. El createGuestCart se ha añadido la mutación para reemplazar al obsoleto createEmptyCart mutación. Anteriormente, si utilizaba createEmptyCartSin embargo, no pudo determinar si el carro de compras era para un cliente invitado o que había iniciado sesión.

  • Los artículos para pedidos ahora incluyen imágenes de productos. OrderItemInterface expone imágenes de productos, lo que permite que las imágenes se asocien a los productos pedidos y se carguen de forma más eficaz. GitHub-32369

  • Compatibilidad ampliada con el almacenamiento en caché de resolución. Los siguientes solucionadores de consultas de GraphQL ahora se pueden almacenar en caché en la caché de resultados de resolución de GraphQL, lo que mejora el rendimiento cuando se envían consultas con solicitudes de POST:

    • Magento\CustomerGraphQl\Model\Resolver\Customer::resolve
    • Magento\CustomerGraphQl\Model\Resolver\CustomerAddress::resolve
    • Magento\CustomerGraphQl\Model\Resolver\IsSubscribed::resolve
    • Magento\CatalogGraphQl\Model\Resolver\Product\MediaGallery::resolve
  • Soporte para la cancelación de pedidos. El cancelOrder La mutación permite a un cliente cancelar un pedido, pasando su identificador y un motivo de cancelación.

  • Compatibilidad mejorada con atributos personalizados. La compatibilidad con atributos personalizados de GraphQL se ha mejorado mediante el enriquecimiento de los datos de API para admitir todos los tipos de atributos. El esquema de atributos EAV de GraphQL ahora admite la ampliación de atributos del cliente y objetos de dirección del cliente en el administrador y su recuperación mediante GraphQL. Las áreas específicas de mejora incluyen:

    • compatibilidad con atributos personalizados ampliados/añadidos en áreas específicas como cliente y dirección del cliente
    • se ha agregado almacenamiento en caché para atributos personalizados
    • se ha mejorado la compatibilidad de atributos personalizados existentes con productos
  • Las funciones mejoradas de almacenamiento en caché de GraphQL mejoran la velocidad de carga de la página. Se ha añadido la capacidad de almacenamiento en caché a estas consultas, lo que mejora la velocidad del tiempo de carga de la página para la mayoría de las páginas de PWA:

  • Rendimiento mejorado del analizador de GraphQL. Se ha mejorado el rendimiento del analizador de GraphQL al reducir el número de veces que se llama al método parse por solicitud. Ahora se llama una vez. Anteriormente, se llamaba al analizador al menos tres veces.

Nuevos campos para las mutaciones existentes

  • Se ha añadido la quickorder_active a la storeConfig y availableStores consultas. Este campo indica si la función de orden rápido está activada.

  • Se agregaron los campos siguientes a setBillingAddressOnCart y setShippingAddressesOnCart mutaciones:

    • fax
    • middlename
    • prefix
    • suffix

Nuevas consultas y mutaciones

Consultas y mutaciones obsoletas

Inventory management

Inventory management (versión 1.2.7-beta3) proporciona herramientas para administrar el inventario de productos. Esta función desarrollada por la comunidad está integrada en Adobe Commerce y en el código principal del Magento Open Source.

Metapaquete de extensión de Magento Open Source

Esta versión incluye la extensión de Magento Open Source metapackage v1.0.0-beta2, que agrupa automáticamente las extensiones de Magento Open Source seleccionadas con esta versión principal. La versión de esta extensión que se incluye en este metapaquete se instala cuando composer update se ejecuta, lo que simplifica el proceso de actualización de la extensión al actualizar a la última versión principal. Esta extensión mantiene una programación de versiones independiente.

El metapaquete de extensión de Magento Open Source para Magento Open Source 2.4.7-beta3 incluye estas extensiones:

Las versiones futuras de este metapaquete de extensión contendrán extensiones adicionales.

PWA Studio

PWA Studio v.13.2.x es compatible con Magento Open Source 2.4.7-beta1. Incluye varias mejoras para mejorar la accesibilidad. Para obtener información sobre la corrección de errores, consulte Versiones del PWA Studio. Consulte Compatibilidad de versión para obtener una lista de versiones de PWA Studio y sus versiones principales de Magento Open Source compatibles.

Marco de API web

Esta versión introduce dos nuevos extremos REST que proporcionan una solución para una limitación con la API REST GET y POST V1/products/attributes puntos finales. Estos extremos devuelven el mismo valor para is_filterable para ambos Filterable(with results) y Filterable(no results) opciones del Use in Layered Navigation opción. (La is_filterable la propiedad del atributo es del tipo Boolean, que no permite establecer esta propiedad en Filterable(no results).)

Se han implementado dos nuevos extremos REST como solución alternativa:

  • PUT /V1/products/attributes/{attributeCode}/is-filterable/{isFilterable}. Parámetros de ruta: attributeCode (String) y isFilterable (int Los valores son: 0 es No; 1 es Filterable (with results); 2 es Filterable (no results)).
  • GET /V1/products/attributes/{attributeCode}/is-filterable. Parámetros de ruta: attributeCode (String).

Problemas solucionados

Hemos corregido cientos de problemas en el código principal de Magento Open Source 2.4.7. A continuación, se describe un subconjunto de los problemas corregidos que se incluyen en esta versión.

Instalación, actualización e implementación

  • Se ha eliminado la manipulación de caché innecesaria del proceso de configuración. Anteriormente, el Magento Open Source escribía su configuración en el disco de forma innecesaria cuando bin/magento setup:db-data:upgrade o bin/magento setup:upgrade se ejecutó, lo que provocó problemas con algunos módulos durante la instalación. GitHub-38124
  • Se han resuelto problemas de implementación debido a memoria insuficiente y tablas grandes. El bin/magento setup:upgrade El comando ya no falla debido a errores excedidos en memoria que están relacionados con tablas MySQL grandes.
  • bin/magento setup:install ahora se completa correctamente después de app/etc/config.php se ha eliminado. Anteriormente, el archivo que faltaba no se regeneraba durante la instalación y el Magento Open Source arrojaba un error. GitHub-37805
  • bin/magento setup:upgrade se ha refactorizado para ejecutarse correctamente al instalar un nuevo módulo que instala ambas tablas y asociados mview indexadores. GitHub-37304
  • La restauración de la base de datos ya no falla debido a un error de delimitador. Anteriormente, el Magento Open Source arrojaba este error cuando bin/magento setup:rollback --db se ejecutó: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;.
  • El bin/magento setup:upgrade El comando ya no falla con este tipo de error relacionado con el límite de memoria MySQL: PHP Fatal error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 20480 bytes). La migración de atributos de selección múltiple se ha optimizado para que consuma menos memoria durante setup:upgrade.
  • La generación de una copia de seguridad de la base de datos ahora funciona como se espera desde la administración y la línea de comandos. Anteriormente, el Magento Open Source arrojaba este error: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'delimiter' at line 1, query was: delimiter ;;.
  • Ejecutando setup:config:set sin especificar el --lock-db-prefix ya no borra el valor actual del parámetro env.php archivo.
  • La configuración del barniz se ha actualizado para evitar que los usuarios invitados accedan al contenido almacenado en caché relacionado con otros grupos de clientes.
  • bin/magento setup:upgrade ahora se completa correctamente al instalar un nuevo módulo que instala tanto las tablas como los módulos asociados mview indexadores.
  • bin/magento setup:upgrade ahora muestra un mensaje de error más informativo cuando un tema de la cola de mensajes no incluye un nombre de tema. GitHub-34246
  • bin/magento setup:upgrade ahora muestra un mensaje de error más informativo cuando los archivos XML combinados no son válidos. El mensaje de error ahora incluye el nombre de archivo.

IU de administración

  • Se ha corregido un problema de visualización con las cuadrículas de cliente de administración. Anteriormente, las columnas de cuadrícula no estaban completamente contenidas en la página mostrada.
  • Los colores de desplazamiento ahora se aplican según lo esperado en las filas de las cuadrículas estáticas de administración. GitHub-35358
  • El flujo de trabajo de cierre de compra ya no muestra una advertencia cuando un comprador introduce un código postal para Grecia que no contiene un espacio en blanco. GitHub-36676
  • El administrador It's time to change your password ahora redirige a la página Cambiar contraseña de administrador según lo esperado. GitHub-37902
  • Los sufijos de título de página ahora se incluyen en ambos title y la etiqueta meta title para páginas de productos. GitHub-37680
  • La condición de estado de stock de productos ahora se aplica correctamente a las reglas de productos relacionadas.
  • El Login as Customer ahora se muestra correctamente en los dispositivos móviles.
  • Adobe Commerce ya no muestra el Administrador Add new customer group botón si el usuario administrador que ha iniciado sesión no tiene permiso para agregar un nuevo grupo de clientes.
  • Un usuario administrador con permisos restringidos ahora puede guardar un producto secundario cuyo producto principal esté asignado a un ámbito diferente. Anteriormente, Commerce invalidaba la caché de un producto principal que no estaba asignado al ámbito en el que se cambió el producto secundario.
  • Los usuarios administradores ahora pueden cambiar correctamente entre las vistas de filtro de administración sin que se dañen o pierdan los datos de vista. GitHub-37529

Paquete de productos

  • El customerCart La consulta ahora devuelve todos los descuentos aplicados a los productos agrupados según lo esperado. Anteriormente, los descuentos totales aplicados a un producto agrupado se devolvían como cero.
  • Las páginas de detalles del producto ahora muestran el precio correcto para los productos agrupados para los que se ha aplicado un descuento del 100%. Anteriormente, Magento Open Source no aplicaba un descuento del 100% a los precios de los paquetes de productos.
  • Las reglas de precios del carro de compras ahora se aplican a paquetes de productos en lugar de a cada producto secundario para productos agrupados de precio dinámico.
  • Se ha corregido un error que se producía al usar el POST V1/shipment extremo para crear un envío que contenga un producto agrupado. El extremo ahora agrega elementos según lo esperado y ya no devuelve este error: The shipment couldn't be saved.
  • Ahora puede utilizar la variable GET V1/shipment/ Ruta de API para crear un envío con un paquete de producto cuando el producto tiene el together tipo de envío establecido. Los productos agrupados ahora también se validan en función de su propiedad de tipo de envío.
  • Los compradores ahora pueden editar la cantidad de un paquete en su carro de compras de la tienda. Anteriormente, Adobe Commerce no administraba valores nulos para ItemId cuando los productos se editaban en el carro de compras de la tienda y se mostraba un error. GitHub-37696
  • Ahora, los productos agrupados se pueden añadir correctamente a un pedido del administrador mediante SKU que contengan una barra diagonal (/) carácter. Anteriormente, los usuarios administradores no podían utilizar este método para agregar productos a un pedido de administración y el Magento Open Source arrojaba un error de JavaScript.
  • Los usuarios administradores ahora pueden establecer valores predeterminados decimales para las opciones de paquete recién agregadas cuando Qty Uses Decimal está habilitado para el producto simple correspondiente. Anteriormente, los valores decimales solo se podían establecer para selecciones guardadas.
  • Rendimiento optimizado para guardar productos agrupados con un gran número de opciones
  • Los productos agrupados ahora se importan correctamente sin duplicar SKU en las opciones de producto. Anteriormente, el Magento Open Source creaba varios SKU duplicados en las opciones de producto al importar productos agrupados con entradas duplicadas.
  • El precio del producto del paquete ahora se calcula correctamente cuando uno de los productos del paquete está agotado. Anteriormente, si un producto que formaba parte del paquete estaba agotado, se eliminaba del cálculo de precios.
  • Los productos agrupados ahora se muestran como agotados cuando se compra el último de sus productos secundarios requeridos. Anteriormente, los productos agrupados se mostraban como disponibles en la tienda cuando sus productos simples estaban agotados.
  • Problemas de rendimiento al añadir productos en paquete con opciones no requeridas al carro de compras mediante addBundleProductsToCart se han resuelto las mutaciones.
  • El categoryList query ahora devuelve todas las opciones de paquete como se espera cuando la variable Show out-of-stock products La opción de configuración está habilitada. Anteriormente, las opciones sin existencias no se incluían en la respuesta de consulta.
  • Paquete de productos creado con POST V1/products ahora se realiza correctamente cuando el ámbito del precio de catálogo se establece en website. Anteriormente, se producía una infracción de restricción de integridad. GitHub-35595

Caché

  • Las cookies de caché después de iniciar sesión son ahora las mismas después de navegar por el sitio web. Anteriormente, el controlador de inicio de sesión enviaba una cookie de caché incorrecta y las páginas podrían haberse almacenado en caché varias veces.
  • Las respuestas de las operaciones de GET de GraphQL en páginas de CMS que contienen bloques de CMS ahora se borran como se espera en la caché de Fastly. Las actualizaciones de programación posteriores ahora muestran contenido preciso y actualizado para estas páginas.
  • La caché de página ahora se borra como se espera para un producto principal cuando se ha guardado uno de sus productos secundarios desde el administrador. Se ha introducido una comprobación de complemento para alcanzar la invalidación de caché para variantes configurables, similares a otros tipos de productos, independientemente del estado del indexador (programado o en tiempo real). Anteriormente, los precios no se actualizaban correctamente en la tienda después de actualizar una variación configurable desde el administrador.
  • Se ha agregado un mecanismo de almacenamiento en caché para las credenciales de AWS. Un proveedor de credenciales ahora utiliza la caché de Magento para almacenar en caché las credenciales recuperadas de AWS para la configuración EC2.
  • El complemento cuyo propósito es agregar la etiqueta de caché configurable cuando se guarda un producto simple asociado con un producto configurable ahora funciona según lo esperado. Todas las etiquetas de caché configurables relevantes se eliminan según lo esperado cuando un producto simple se actualiza por POST V1/products. Anteriormente, no todos los precios se actualizaban en la tienda y las cachés tenían que borrarse manualmente. GitHub-36726

Carro y cierre de compra

  • El Magento Open Source ahora optimiza el rendimiento al no cargar datos de cotización específicos del usuario al generar páginas completas almacenables en caché como páginas de detalles del producto (PDP) y páginas de CMS cuando se habilita el carro de compras persistente. Anteriormente, el sistema cargaba innecesariamente datos de sesión y comillas específicos del usuario durante la generación de estas páginas, lo que afectaba al rendimiento.
  • Los atributos personalizados de dirección personalizada ahora se guardan según lo esperado en la base de datos. Anteriormente, los valores de atributo guardados en la base de datos iban precedidos de código de atributo.
  • Se ha mejorado la generación del texto de filtro de reglas de carro de compras para atributos de producto. Los productos individuales ya no se cargan varias veces.
  • El Magento Open Source ahora muestra un mensaje de error informativo cuando se produce un error durante la compra y ya no devuelve al comprador a un paso de compra anterior. Anteriormente, el comprador se devolvía a la página de envío.
  • El cart la consulta ya no devuelve el método y la dirección de envío para carros virtuales. Anteriormente, cuando un carro de compras contenía productos físicos y virtuales, y se eliminaban todos los productos físicos, la respuesta de consulta del carro de compras seguía incluyendo información de envío.
  • El Magento Open Source ahora muestra mensajes informativos cuando se activa una acción de complemento al carro de compras. Anteriormente, la variable The requested qty is not available no siempre se mostraba según fuera necesario en la tienda.
  • Se han mejorado los tiempos de carga de las páginas de cierre de compra para los clientes con libretas de direcciones grandes. El Magento Open Source ahora procesa solamente el número de direcciones de clientes especificadas en la Customer Addresses Limit configuración. Anteriormente, Magento Open Source cargaba toda la libreta de direcciones.
  • La cantidad de productos ahora se puede cambiar en el carro de compras como se espera para los artículos en stock cuando un artículo está agotado. Anteriormente, los compradores no podían cambiar la cantidad de productos de ningún artículo cuando uno estaba agotado.
  • El AdvancedSalesRule el filtro de atributos de producto ahora funciona correctamente con el tipo de backend de atributo decimal. Como resultado, el carro de compras rige con Coupon Type establezca en No Coupon ahora funcione según lo esperado.
  • La cantidad total de un descuento en el carro de compras completo ahora se aplica como se espera a los carros de compras que contienen tanto paquetes como productos configurables.
  • Las cookies de la sección del cliente ahora respetan la configuración del dominio de la cookie. Anteriormente, el minicarrito no se actualizaba como se esperaba en las tiendas que contenían subdominios, aunque la sesión se compartiera.
  • El envío de un pedido a varias direcciones ya no genera déclencheur de error durante el procesamiento del ID de región.
  • Los importes de descuento fijo que se aplican en el nivel de carro de compras ahora son correctos.GitHub-37496
  • Los cupones ahora se aplican correctamente a un pedido cuando un comprador aplica el cupón después de seleccionar el método de envío de tarifa plana en el que se aplica una regla de precio del carro de compras con el método de envío establecido como condición. Anteriormente, la página de carro mostraba el error Cupón no es válido y el cupón no se aplicaba. GitHub-34866
  • Los cupones ahora se aplican correctamente a un pedido cuando un comprador aplica el cupón después de seleccionar el método de envío de tarifa plana en el que se aplica una regla de precio del carro de compras con el método de envío establecido como condición. Anteriormente, la página de carro mostraba el error Cupón no es válido y el cupón no se aplicaba. GitHub-34866
  • El My billing and shipping address are the same La casilla de verificación de ahora permanece activada de forma predeterminada cuando un comprador utiliza el completado automático de Chrome para rellenar su dirección de envío y luego hace clic en Siguiente antes de volver a cargar el bloque de métodos de envío. GitHub-33725
  • El applied_rule_ids valor en quote_item ahora incluye una lista correcta de los ID de regla aplicados. Anteriormente, este valor solo contenía el último ID de regla aplicado.
  • Los datos del minicarrito y del cliente en el almacenamiento local ahora se restablecen cuando se elimina una sesión del servidor. Anteriormente, estos datos seguían apareciendo cuando se eliminaba el archivo de sesión.
  • Los carros de compras discretos ya no se fusionan por error del Administrador cuando se habilita el carro de compras persistente.
  • El estimador de impuestos y envíos del carro de compras ahora refleja con precisión la configuración de destino predeterminada. Anteriormente, al configurar los ajustes de cálculo de destino de impuestos predeterminados y especificar Estado/Región y ZIP, solo se mostraba el valor ZIP en el carro de compras en Estimate Tax and Shipping. Esto se debía a que el Magento Open Source establecía el ID de región en indefinido antes de invocar la afirmación condicional que establecía el ID de región predeterminado desde el administrador.
  • El Magento Open Source ya no emite este error durante el cierre de compra cuando se activa la opción de carro de compras persistente: Invalid state change requested. Anteriormente, cuando se producía este error, se producían varios pedidos con el mismo quote_id se crearon ocasionalmente.
  • El minicarrito ahora muestra precios de productos agrupados que reflejan los ajustes de configuración de impuestos del carrito. Anteriormente, el minicarrito siempre incluía impuestos en los precios de los productos agrupados.
  • La estimación de envío proporcionada desde la página del carro de compras ahora es precisa. collectShippingRates ahora se establece solo una vez. Anteriormente, la estimación de envío se duplicaba. GitHub-36648
  • El cart query ya no devuelve un error cuando un producto del carro especificado está agotado. Anteriormente, los compradores que usaban esta consulta para realizar una compra no podían completar su compra cuando un artículo estaba agotado y la página de cierre de compra estaba en blanco.
  • Solicitudes de API de invitado a POST V1/guest-carts/<cartId>/shipping-information ya no devuelve un cancel estado si la página se vuelve a cargar durante el inicio de sesión en un entorno móvil. Anteriormente, el Magento Open Source arrojaba un error 500 y registraba esta excepción: TypeError: Argument 2 passed to Magento\CustomerCustomAttributes\Model\Plugin\ProcessCustomerShippingAddressCustomAttributes::beforeSaveAddressInformation() must be of the type string, null given.
  • La idoneidad para el envío gratuito ahora se calcula según lo esperado cuando el Subtotal (Excl. Tax) se aplica la condición para reglas del carro de compras. GitHub-36760
  • El cart query ahora devuelve el precio de nivel correcto para un producto. GitHub-29655
  • Se han añadido mensajes de error informativos a la página de cierre de compra para guiar a los compradores cuando la aplicación de un cupón en la página de envío entra en conflicto con el método de envío seleccionado. Anteriormente, un mensaje indicaba a los compradores que volvieran a la página anterior.
  • La ventana emergente de autenticación ahora solo se inicializa cuando es necesaria, en lugar de cuando el cierre de compra de invitados está habilitado. Ahora se inicializa cuando el comprador invitado intenta continuar con el cierre de compra y el cierre de compra de invitado está deshabilitado. GitHub-30672

Regla de precio del carro

  • La condición de subselección de producto de la regla de precio del carro de compras ahora incluye total (incl.tax) como se esperaba. GitHub-34871
  • El If an item is FOUND/NOT FOUND in the cart with ALL/ANY of these conditions true la condición de regla de precio de catálogo ahora funciona correctamente con los atributos category y SKU. Anteriormente, esta condición no se aplicaba correctamente en la lógica de cupones de precio de carro de compras y se aplicaban cupones no válidos a los pedidos. GitHub-37660
  • Ahora puede guardar correctamente una nueva regla de precio del carro de compras con la variable Magento_OfflineShipping extensión deshabilitada. Anteriormente, el Magento Open Source arrojaba este error: report.ERROR: Warning: Undefined array key "simple_free_shipping". GitHub-37580
  • Las reglas de precios del carro de compras ahora se aplican según lo esperado cuando se configura una regla de precios del carro de compras relacionada con un método de envío para la tienda y este método de envío se cambia por otro durante el cierre de compra. Anteriormente, la variable applied_rule_ids El valor nunca se cambió en sales_order_item y la regla de precio del carro de compras no se aplicó al pedido.
  • Los cupones ahora se aplican correctamente a un pedido cuando un comprador aplica el cupón después de seleccionar el método de envío de tarifa plana en el que se aplica una regla de precio del carro de compras con el método de envío establecido como condición. Anteriormente, la página del carro de compras mostraba Coupon is Not valid error y no se aplicó el cupón. GitHub-34866

Productos configurables

  • Los comerciantes ahora pueden seleccionar Skip quantity at this time y Skip image uploading at this al configurar un producto configurable sin afectar al origen de los productos simples asociados. Anteriormente, seleccionando Skip quantity at this time resultó en la desaparición de las fuentes de productos.
  • El As low as ya no se muestra la etiqueta para un precio de producto configurable cuando todas las opciones tienen el mismo precio.
  • Los usuarios administradores con permisos de sitio web ahora pueden guardar un producto secundario que forme parte de un producto configurable en un contexto de tienda diferente. Los procesos de reindexación ahora omiten este tipo de producto configurable.
  • Los productos configurables con dos productos secundarios ya no se marcan como agotados cuando una actualización programada desactiva un producto secundario. Este era un problema conocido de la versión 2.4.7-beta1.
  • Se ha mejorado el rendimiento de las operaciones de guardado para productos configurables con varias opciones. Anteriormente, se podían producir tiempos de espera durante las operaciones de guardado del producto. GitHub-36928
  • La visualización de la tienda de los precios de los productos configurables ahora cambia según lo esperado cuando un comprador selecciona una opción de producto. GitHub-37378
  • Los comerciantes ahora pueden utilizar el carrusel de productos para crear bloques de CMS cuando catalog_product_price dimensions-mode se establece en website. Anteriormente, el Magento Open Source no guardaba el bloque y producía este error de SQL: report.CRITICAL: PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table.
  • Magento Open Source ya no muestra imágenes duplicadas cuando se cambia el color del producto en una página de detalles del producto. GitHub-36243
  • Se ha optimizado el algoritmo para sincronizar valores específicos de sitios web después de agregar un nuevo almacén o cambiar uno existente en entornos grandes de varias tiendas.
  • Se ha mejorado el proceso de limpieza de los archivos de imagen en caché para evitar la creación de directorios ocultos en pub/media/catalog/product carpeta. Anteriormente, los directorios ocultos provocaban problemas de espacio en disco durante las operaciones de limpieza. Se pudo finalizar la operación, lo que dejó directorios ocultos temporales que nunca se eliminaron.
  • Los precios de los paquetes de productos ahora se calculan correctamente y se ha resuelto un problema con el orden de las operaciones al calcular los precios. GitHub-35665
  • Se ha eliminado una cláusula innecesaria de catalog_product_price consultas de índice, lo que ha mejorado el rendimiento de este indexador en tiendas con catálogos grandes. GitHub-32382
  • El Magento Open Source ya no inserta texto de descripción del producto en la página de detalles del producto Meta Description cuando este campo se haya dejado vacío. Anteriormente, cuando una descripción de producto contenía código de HTML generado por PageBuilder u otro editor de HTML, el HTML se mostraba en el Meta Description y no se ha podido dejar vacío este campo.
  • Las opciones de producto configurables en páginas de PDP de producto configurables ya no se ven afectadas por otras opciones de productos configurables de la página. Anteriormente, los productos configurables con atributos desplegables ya no déclencheur una excepción cuando hay un carrusel de productos en la página de detalles del producto. Las opciones de producto configurables no se podían seleccionar cuando había otros productos configurables con opciones de muestra en la página.
  • La información de productos visualizada recientemente ahora se muestra de acuerdo con la configuración de la vista de tienda. Anteriormente, los datos de productos vistos recientemente no se actualizaban por vista de tienda, incluidos el nombre y el idioma preferido.
  • Los vídeos de Vimeo ahora se reproducen como se espera en las páginas de productos en la vista móvil en navegadores web basados en Chromium.
  • El bin/magento catalog:images:resize ahora genera correctamente imágenes de producto para los productos asignados a un sitio web personalizado con un tema personalizado.
  • Metadatos con NULL o NOT NULL Los valores de ahora se guardan para el almacén predeterminado de acuerdo con las Utilizar valor predeterminado como se esperaba. Anteriormente, los metadatos con NULL El valor no se ha guardado cuando esta casilla de verificación no estaba marcada.
  • Los comerciantes ahora pueden eliminar correctamente una imagen existente de la página de detalles del producto y, a continuación, cargar una nueva imagen con el mismo nombre. Anteriormente, en estas circunstancias, la página de producto de la tienda no mostraba la imagen correcta.
  • El productDetail query ahora devuelve el nombre del producto en lugar de nulo cuando la imagen del producto alt el atributo se ha definido como vacío.
  • Los pedidos que incluyen productos descargables y físicos ahora incluyen vínculos de trabajo al producto descargable en cuanto se completa el pedido. Anteriormente, los vínculos a productos descargables no estaban disponibles hasta que se enviaban los productos físicos del mismo pedido.
  • Las reescrituras de URL ahora se actualizan cuando una categoría se mueve de una categoría store/root a otra categoría store/root. Las entradas de base de datos obsoletas ahora se eliminan cuando las subcategorías se transfieren a nuevas categorías principales. La base de datos ahora incluye solo las entradas relevantes. Anteriormente, la variable url_path no se ha actualizado con el ID de tienda correcto.
  • El resto V1/products/<sku>/media el punto final ahora puede procesar la carga simultánea de varias imágenes de medios. Anteriormente, al procesar varias solicitudes simultáneamente, se creaban datos incoherentes y el Magento Open Source arrojaba un error cuando estos datos se guardaban en la base de datos.
  • Los titulares de segmentos de clientes ahora se comportan como se espera cuando un comprador que está usando una cuenta de cliente recién creada cierra sesión. Anteriormente, los titulares creados para el segmento de clientes que iniciaron sesión se mostraban incluso después de que finalizara esa sesión de cuenta (es decir, el comprador registrado cerró sesión).
  • Se ha mejorado el rendimiento de reindexación parcial para los indexadores de Categoría de productos y Categorías de productos. Anteriormente, la variable indexer_update_all_views el trabajo de cron ejecutó reindexadores varias veces por un solo producto o categoría.
  • Cuando el estado de stock del producto se actualiza automáticamente a agotado en función de la configuración de stock (cantidad), el estado de stock se actualizará posteriormente a en stock cuando se actualice la cantidad de stock. Anteriormente, la variable stock_status_changed_auto se ignoró cuando la configuración de stock de un producto se actualizó a en stock.
  • La ordenación de la barra de herramientas ahora funciona como se espera en las páginas de búsqueda cuando Remember Category Pagination La configuración está habilitada. GitHub-33220
  • Los atributos de selección múltiple ahora se guardan según lo esperado cuando Use Default Value la casilla de verificación del ámbito de vista de tienda está seleccionada. Anteriormente, esta casilla de verificación no estaba seleccionada, se desactivaba cuando se editaba el producto y se guardaba el valor predeterminado.
  • Los usuarios administradores con acceso limitado a sitios web ahora pueden agregar imágenes a un producto que esté dentro de su ámbito. Si el usuario administrador no tiene derechos de acceso al producto, Magento Open Source muestra un mensaje informativo. Anteriormente, los usuarios administradores con acceso limitado a sitios web no podían agregar imágenes a los productos a los que tenían acceso.
  • El Magento Open Source ahora muestra el nombre correcto después de ordenar los productos por nombre en Administración > Category > Products in category en implementaciones de varias tiendas en las que los nombres de los productos varían según la tienda. GitHub-36208
  • El addProductsToCart mutation ahora devuelve opciones personalizables con datos. Anteriormente, solo devolvía opciones personalizables vacías. GitHub-37599
  • El estado de producto no satisfecho ahora se muestra correctamente en la tienda. Anteriormente, los productos disponibles para el envío se identificaban incorrectamente como no pedidos.
  • Los productos exportados ahora tienen el manage_stock cuando el use_config_manage_stock valor igual a 1. Anteriormente, este valor predeterminado era incorrecto.
  • El acceso a productos descargables desde Admin ya no provoca un error cuando el usuario administrador cambia la vista de la tienda de la vista utilizada durante la creación del producto a otra vista de la tienda. Los precios de los productos ahora se convierten correctamente en flotantes cuando un usuario administrador cambia la vista de la tienda de todas las vistas de la tienda a la vista de la tienda predeterminada. Anteriormente, el Magento Open Source arrojaba un error. GitHub-37519
  • Magento Open Source ya no muestra un mensaje de advertencia cuando guarda un producto creado con opciones personalizadas después de eliminar su imagen.
  • Las imágenes en miniatura del producto ahora se muestran según lo esperado en el correo electrónico de alerta de stock de productos que se envía cuando un producto vuelve a estar disponible. Anteriormente, esta imagen no se mostraba en el correo electrónico de alerta
  • El recuento de productos en el árbol de categorías (Administrador) Catalog > Category) ahora es preciso. Anteriormente, no se podía recuperar el recuento de productos de la categoría de catalog_category_product_index tabla. Se ha corregido el error tipográfico que activaba este error. GitHub-35417
  • La imagen principal del producto en la página de detalles del producto ya no se desplaza visiblemente hacia abajo durante la carga de la página cuando product_image_white_borders en el tema view.xml está deshabilitada. Anteriormente, la imagen del producto se desplazaba visiblemente hacia abajo durante la carga de la página debido a la configuración de altura incorrecta en Fotorama JS.
  • Ahora se notifica a los clientes sobre caídas en el precio del producto cuando el cliente está suscrito a las alertas de caída de precios. Anteriormente, las notificaciones de caída de precios no siempre se enviaban debido al almacenamiento en caché de nivel de aplicación.
  • La validación del lado del servidor se ha añadido al proceso de creación de atributos de producto a través de la API web. No se puede activar la variable Use in Layered Navigation Catalog cuando la variable Catalog Input Type for Store Owner el valor del campo es Text Field, Text Area, Text Editor, Date, o Date and Time. Anteriormente, los productos se omitían de las categorías y los resultados de búsqueda.
  • La página de categoría ahora se vuelve a cargar con la paginación correcta después de que un comprador abra la página, cambie la paginación, navegue a una página de producto y, a continuación, vuelva a la página de categoría. GitHub-36563
  • Los productos simples sin existencias que son opciones para un producto configurable ahora se muestran como deshabilitados en la tienda cuando Display Out of Stock Products se establece en . Anteriormente, todas las opciones se mostraban como disponibles, a pesar de su estado y disponibilidad real.
  • Al actualizar el atributo de ámbito del sitio web en una vista de almacén específica, ya no se anula el valor de ese atributo en el ámbito global. Anteriormente, los precios de importación de productos cuando había varias filas disponibles con el mismo SKU y store_view_code Esto provocaba precios inexactos para los ámbitos de vista predeterminado y de Todas las tiendas.
  • Los comerciantes ahora pueden añadir una imagen de GIF a la galería de imágenes de un producto desde el administrador. Anteriormente, el Magento Open Source mostraba este error: imagecolorsforindex(): Argument #2 ($color) is out of range.
  • Se han agregado comprobaciones para gestionar los errores resultantes de claves de matriz no definidas. Anteriormente, se producía un error durante la generación de la lista blanca de esquemas declarativos.
  • El Magento Open Source ahora devuelve un resultado válido para la fecha personalizada 01/01/1970. Anteriormente, el atributo personalizado devolvía este error: Invalid input datetime format of value '1/01/1970. GitHub-37274
  • routes las consultas que utilizan fragmentos ahora devuelven información de categoría según lo esperado. Anteriormente, se producía un error interno del servidor en la página de categoría. GitHub-35906
  • Problemas con el cataloginventory_stock se ha resuelto el proceso de reindexación parcial y el rendimiento del indexador ha mejorado. Anteriormente, las categorías de stock y producto no se actualizaban con precisión.
  • El Magento Open Source ahora genera una redirección 301 para un producto cuando la categoría a la que pertenece se ha movido a una nueva principal. GitHub-37039
  • Las reglas del catálogo ahora se indexan correctamente cuando se habilitan mediante la actualización programada. Como resultado, los precios descontados ahora se generan e indexan correctamente. Anteriormente, cuando había dos reglas de catálogo disponibles y una regla se activa después de que la primera regla de la primera regla de la operación de indexación de la regla de catálogo se haya completado, no se generaban los precios de descuento de la regla de catálogo para la segunda regla de catálogo.
  • Las reglas de catálogo ahora se aplican como se espera en un entorno de varios sitios web.

Cupones

  • Los códigos de cupón con un número limitado de usos por cliente ahora se pueden utilizar por segunda vez cuando falla el pedido para el que se utilizaban anteriormente. Anteriormente, el código de promoción no se lanzaba cuando se cancelaba el pedido anterior.
  • Los códigos de cupón que contienen caracteres de espacio ya no se invalidan. Anteriormente, si un código de cupón contenía un carácter de espacio (antes o después del código real), la validación fallaba. GitHub-38048
  • Los compradores ahora pueden utilizar dos códigos de cupón autogenerados independientes que se han generado mediante la misma regla de precio del carro de compras. El Uses per Coupon ahora está habilitado cuando el tipo de cupón seleccionado es Auto (similar para el tipo de cupón =Specific Coupon). Esto, a su vez, permite al comprador aplicar varios códigos de cupón al mismo precio del carro de compras si los códigos son diferentes.
  • El valor de cupón de un solo uso de un comprador ahora se restaura según lo esperado cuando se cancela el pedido al que se aplicó.
  • El GET V1/coupons/<couponId> ahora, el punto final devuelve la respuesta esperada completa para los cupones creados manualmente, igual que para los cupones generados automáticamente. Anteriormente, se omitían algunos campos (por ejemplo, usage_limit, usage_per_customer, y created_at).

cron

  • El aggregate_sales_report_bestsellers_data El trabajo cron ya no crea tablas MySQL temporales muy grandes y ahora se completa correctamente. Este trabajo de cron ahora inserta datos por tienda, no para todas las tiendas a la vez. Anteriormente, este trabajo cron podía resultar en No space left on device errores.
  • El número de registros pendientes en la cron_schedule se ha reducido evitando que los trabajos cron intenten adquirir bloqueos de trabajo cron innecesarios. Anteriormente, los trabajos cron intentaban adquirir bloqueos cuando era demasiado tarde para ejecutar el trabajo. Trabajos de Cron en cron_schedule no se marcaron como perdidos aunque ya hubieran pasado la hora programada. El Magento Open Source también mostraba este error repetidamente en el registro de errores: report.WARNING: Could not acquire lock for cron job: indexer_update_all_views.
  • Se ha corregido el error fatal de dividir por cero en expresiones cron. GitHub-37804
  • El sales_clean_quotes el proceso cron se ha optimizado para ejecutarse más rápido al añadir un índice compuesto en store_id y updated_at columns en la tabla de comillas. Este cambio mejora el rendimiento del trabajo cron al procesar muchas ofertas.
  • Los usuarios administradores ahora pueden ver qué tarea usa el bin/magento cron:run el proceso se está ejecutando. El título del proceso que se está ejecutando ahora enumera los nombres de grupo y trabajo. GitHub-34321

Cliente

  • El Magento Open Source ahora muestra el Date of Birth, Tax/VAT Number, Gender, Telephone, Company, y Fax en la página editar cliente en función de los ajustes de configuración. GitHub-36196

Correo electrónico

  • Los correos electrónicos que contienen diacríticos o acentos (es decir, correo electrónico utf8) ahora son compatibles para clientes y empresas, así como para la colocación de pedidos por parte de invitados y clientes registrados. Anteriormente, el Magento Open Source no guardaba los registros de clientes que contenían diacríticos y mostraba este error: Something went wrong while saving the customer.
  • Los nombres de remitente de correo electrónico ya no pueden incluir dos caracteres. Una nueva regla de validación ahora impide guardar nombres de remitente que contengan dos puntos desde la sección Almacenar direcciones de correo electrónico del Administrador Stores > General. Anteriormente, los comerciantes podían guardar un nombre de remitente que contuviera dos puntos, lo que daba como resultado errores del servidor de correo.
  • Los detalles del administrador de la empresa ahora se guardan según lo esperado y se redirige correctamente a los administradores cuando los correos electrónicos de asignación de administrador de la empresa contienen un CMS Block URL variable.
  • Las direcciones de correo electrónico de los clientes ahora pueden incluir diacríticos. Anteriormente, la validación del front-end prohibía la creación de un usuario con diacríticos en su dirección de correo electrónico. GitHub-12075
  • Los correos electrónicos de alerta de cotizaciones y precios ahora se traducen según el idioma configurado para la vista de tienda predeterminada del sitio web. Anteriormente, estos correos electrónicos no se traducían.
  • POST V1/order/notify-orders-are-ready-for-pickup ahora envía un mensaje de correo electrónico avisando a los clientes de que un pedido está listo para su recogida solo cuando el pedido está listo. Ahora, el correo electrónico solo se activa cuando se ha satisfecho la solicitud sin excepción.

Marcos

  • El código refactorizado en todo el código base que se creó durante la práctica de codificación dictaba que cualquier sección de caché que se incluyera en la app/etc/env.php incluiría una sección de front-end. Esta refactorización soluciona posibles problemas al actualizar las implementaciones de Magento Open Source anteriores a la versión 2.4.4. GitHub-38363
  • Se ha aclarado el mensaje de error asociado a StockItemValidator.php cuando se proporciona un ID de stock con un valor de 0 durante una llamada de API. GitHub-31107
  • Se ha añadido una matriz vacía predeterminada a $tagGenerators in CompositeTagGenerator para evitar errores durante la compilación de la inyección de dependencia. Anteriormente, se ejecutaba el bin/magento setup:upgrade cuando la variable Magento_DirectoryGraphQl y Magento_StoreGraphQl módulos desactivados ha producido un error. GitHub-38165
  • El no utilizado AlgorithmProviderFactory se ha eliminado, así como las dependencias de esta clase en clases como JweAlgorithmManagerFactory.php, JweContentAlgorithmManagerFactory.php, y JwsAlgorithmManagerFactory. GitHub-37783
  • El var/log/system.log el archivo ya no contiene main.INFO mensajes de error. El registro de entrada de menú se ha movido del nivel INFO a DEPURACIÓN. Anteriormente, la variable var/log/system.log El archivo se inundó de mensajes como este: Add of item with id Magento_Theme::design_config was processed … .
  • La precarga de Redis ya no falla cuando exec() devuelve false. Se ha añadido la verificación al proceso de precarga para evitar que array_combine de recepción false como segundo argumento. Como resultado, la precarga seguirá ejecutándose cuando exec() devoluciones false. GitHub-37509
  • Se refactorizó el Magento_CatalogWidget módulo que se reemplazará $block escapar funciones con $escaper funciones de escape. GitHub-37107
  • Swaziland se ha actualizado a Eswatini a lo largo del código base. GitHub-37873
  • Se ha añadido la nueva moneda nicaragüense (NIO) a la lista de monedas disponibles.
  • Se corrigió un nombre de variable en CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php. GitHub-38093
  • Se han resuelto errores de redondeo de subtotales que se producían en transacciones para productos para los que se ha activado la cantidad decimal. GitHub-37817
  • El filtro de fecha para la cuadrícula de administración del cliente ahora funciona según lo esperado según la configuración regional especificada.
  • El bin/magento setup:upgrade El comando ya no falla debido al $schemaPatch tipo de datos variable. Anteriormente, el valor de cadena se pasaba a get_class función, que provocó el error. GitHub-37545
  • La conexión a la base de datos MySQL ahora se restaura si la conexión se agota durante una transacción cuando se establece max_messages = 0 para consumidores. Anteriormente, la conexión se terminaba.
  • El magento/module-release-notification El módulo principal de se ha marcado como obsoleto en el código de desarrollo 2.4 con este comentario: Starting from Magento 2.4.7, Magento_ReleaseNotification module is deprecated in favor of another in-product messaging mechanism.
  • La generación de código proxy ahora genera archivos de proxy y de fábrica como se espera para las implementaciones que se ejecutan en el modo de producción. GitHub-35252
  • El estado indio de Ladakh ahora aparece como una opción en la dirección del administrador State menús desplegables. GitHub-33698
  • El ticker de cuenta atrás de evento ahora se muestra según lo esperado en la página de categoría.
  • Lo prohibido @author se ha eliminado de la base de código, incluido este módulo: Magento_user-variable-wee, Magento_Catalog, y Magento_Customer, Magento_Wishlist, Magento_Review Taxy en todo el marco de trabajo. GitHub-37245, GitHub-37246, GitHub-37249, GitHub-37263
  • El serializador JSON en User El módulo se ha sustituido por un serializador nuevo y más preciso (JsonHexTag). Anteriormente, Magento Open Source a veces se bloqueaba al intentar utilizar datos serializados por el serializador normal cuando contenía elementos sin escape. GitHub-31377
  • Los errores de canalización rotos ya no se producen al ejecutar un reíndice completo (bin/magento indexer:reindex). Las conexiones AMPQ ahora se cierran antes de que el administrador de procesos ramifique los procesos.
  • El validador de mensajes de cola ahora valida el subtipo de todos los elementos de la matriz. Anteriormente, el Magento Open Source arrojaba una excepción.
  • La configuración de conexión de cola por tema en app/etc/env.php ahora funciona correctamente. Anteriormente, la cola de alertas de productos no se generaba correctamente cuando se creaba una nueva cola de mensajes con un intercambio personalizado. Si la conexión de cola de un tema se configuró en app/etc/env.php con un intercambio personalizado, se creó un nuevo enlace para todos los temas con ese intercambio personalizado. Los comerciantes no pudieron procesar las alertas de productos.
  • Formatos temporales marcados con una /* mariadb-5.3 */ el comentario ya no causa errores durante bin/magento setup:install al actualizar el servidor MariaDB a la versión 10.5.1 o superior.
  • El controlador AwsS3 ahora funciona según lo esperado como reemplazo de la implementación base predeterminada de almacenamiento de archivos. Anteriormente, los datos podían dañarse cuando este controlador se configuraba para el almacenamiento de archivos. GitHub-37844
  • bin/magento config:show y set comandos que utilizan $_ENV Las variables de ahora admiten el uso de sitios web y códigos de tienda que contienen caracteres en minúscula o en mayúscula.
  • Se han añadido clases con !important como se utiliza en Tailwind 3 para la compatibilidad con el diseño CSS. GitHub-37568
  • Falta una jQuery se ha añadido la dependencia a trim-input.js archivo. GitHub-37683
  • Los detalles específicos del evento ahora se pasan como un segundo atributo (context) del log método. GitHub-37879
  • Se han añadido valores de relación de aspecto a las imágenes del catálogo y se han eliminado scripts innecesarios del marco de trabajo de la interfaz de usuario. GitHub-37691
  • Se han revisado los mensajes de error activados por una configuración XML no válida para que sean más informativos. GitHub-37788
  • Código obsoleto refactorizado relacionado con la creación de propiedades dinámicas en toda la base de código.
  • Se ha mejorado el rendimiento de los indexadores para grandes almacenes con bases de datos de productos extremadamente activas. Los indexadores ahora indexan la información del producto más reciente una vez por cada índice en lugar de varias veces. Anteriormente, los productos desaparecían del sitio web y los datos de los productos podrían no estar actualizados en el sitio web. GitHub-30012
  • mview_state el estado de registro ahora indica con precisión el estado en función de la actividad changelog cuando hay una conexión de base de datos esclava disponible. Anteriormente, estos registros permanecían en un waiting estado en implementaciones de nube incluso cuando no había nuevas entradas en el registro de cambios.
  • Se ha agregado compatibilidad con precision opción de formato de moneda para conservar la paridad de características con el obsoleto ZendCurrency clase.
  • Los mensajes de cookies se han convertido en atributos observables y los desarrolladores ahora pueden manipular el estado, lo que puede almacenar en déclencheur los cambios en la interfaz de usuario. Anteriormente, las cookies eran de solo lectura y no se podían manipular. GitHub-37308
  • Los usuarios administradores ahora pueden generar una factura cuando su instancia de Magento Open Source está conectada al almacenamiento de S3. Anteriormente, el Magento Open Source mostraba este error: Cannot create image resource. File not found. GitHub-35706
  • El Magento Open Source ahora registra un mensaje de excepción como se espera cuando falla la validación del número de IVA por el servicio de validación VIES. GitHub-36065
  • El Administrators El nombre de se ha eliminado de la consulta utilizada para recuperar un rol de administrador durante la creación del rol de administrador. GitHub-36998
  • El bin/magento setup:config:set El comando ya no falla cuando se incluye un nombre de usuario de base de datos no válido en app/etc/env.php archivo. GitHub-37409
  • La ordenación por columna de palabras reservadas en un componente predeterminado de la IU de administración ya no provoca un error SQL en var/log/exception.log. GitHub-37423
  • Añadido AddDataForCostaRica.php para proporcionar información estatal para Costa Rica. GitHub-37382.
  • Se ha mejorado el mensaje de error para el escenario en el que el usuario intenta acceder a una URL no válida desde el administrador. GitHub-35682.
  • Param $options[position] para símbolos de moneda ahora funciona según lo esperado y admite la personalización de la posición del símbolo de moneda. Anteriormente, después de migrar desde Zend Framework 1, la variable toCurrency método ignorado el position parámetro. Este problema se producía en toda la interfaz de administración.
  • Mutex se ha implementado para pedidos que evitan condiciones de carrera durante la actualización mediante solicitudes simultáneas. Anteriormente, las solicitudes simultáneas (condiciones de carrera) para cancelaciones de pedidos provocaban entradas duplicadas en inventory_reservation tabla.
  • El populateWithArray Ahora, la función transforma las propiedades del objeto en una caja de serpiente correctamente, lo que la hace compatible con el AbstractModel captadores y establecedores. Anteriormente, el formato del caso de la serpiente era incorrecto cuando el nombre del atributo de datos contenía varias letras mayúsculas en una fila.
  • El valor de incremento automático en catalog_product_entity_varchar ahora se incrementa correctamente después de guardar un producto. Anteriormente, este valor aumentaba en diez.
  • Magento Open Source ya no genera esta excepción del sistema de archivos cuando intenta vaciar la memoria caché de JavaScript/CSS: No such file or directory.
  • El valor de value_id in customer_entity_int ahora se incrementa correctamente. Se ejecuta una consulta de actualización en lugar de insert on duplicate key update al actualizar una entidad que incorpora estos atributos. Como resultado, las columnas de incremento automático utilizadas dentro del modelo EAV ahora crecen de forma lineal. Anteriormente, el proceso de incremento automático de columnas omitía valores debido a consultas de inserción fallidas. GitHub-28387
  • Se ha eliminado el espacio en blanco innecesario de id atributos que no lo requieren. (Este error se introdujo mediante un cambio de código de la versión 2.4.6 del Magento Open Source).
  • Los códigos de tienda ya no aparecen en la dirección URL de la tienda cuando esta se encuentra en modo de tienda única. GitHub-36831
  • Se han realizado actualizaciones menores en around complementos. GitHub-31443
  • Las muestras Helper se ha refactorizado para eliminar alias de importación engañosos. GitHub-31373
  • Los usuarios administradores ahora pueden eliminar o cambiar el nombre de un sitemap.xml como se esperaba. Anteriormente, un usuario administrador podía eliminar el archivo del Administrador, pero permanecía en el sistema de archivos. GitHub-37468
  • Los cupones ya no se marcan como utilizados cuando falla el pago del pedido al que se han aplicado. Los mensajes en cola ahora se procesan en el orden en que se publican cuando se inicia el consumidor. Anteriormente, el primer mensaje se extraía de la cola para comprobar simplemente si los mensajes estaban en cola y se rechazaba posteriormente, lo que provocaba que el primer mensaje se procesara en último lugar.
  • El Magento Open Source ya no genera una excepción en el archivo de registro cuando un usuario intenta imprimir una etiqueta de envío. Anteriormente, si una extensión modifica los encabezados de respuesta que contienen un archivo adjunto, el sistema arrojaba una excepción en el archivo de registro.
  • Se ha añadido compatibilidad con más clases de HTML a elements.xsd. GitHub-36891

Correcciones generales

  • Se ha cambiado el nombre del reponseBody variable a responseBody in app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php.GitHub-38093
  • La programación de actualizaciones de productos ya no borra los datos de atributos de selección múltiple. Anteriormente, cuando se programaba una actualización para un producto, los datos de atributos de selección múltiple del producto se borraban por error. GitHub-37675
  • Guardar un producto con un ámbito de almacén no predeterminado ya no provoca que los atributos sin modificar se conviertan en ámbitos de almacén al cargarse mediante ProductRepository. GitHub-8897
  • Se han añadido mensajes de error informativos a la validación de campos personalizados en las páginas de detalles del producto. GitHub-38006
  • Ahora se pueden utilizar caracteres especiales en los campos de nombre. Anteriormente, el carácter de Y comercial (&) estaba restringido en el validador de nombres, que bloqueaba las operaciones de adición o edición de clientes cuando el nombre del cliente contenía un Y comercial. GitHub-38080
  • Los usuarios administradores con acceso restringido a un almacén específico ahora pueden utilizar una acción de actualización masiva para actualizar las revisiones de producto. Anteriormente, Magento Open Source producía esta excepción: report.CRITICAL: TypeError: array_intersect(): Argument #1 ($array) must be of type array, null given in app/code/Magento/AdminGws/Model/Models.php:439.
  • La funcionalidad Mostrar contraseña de la página de inicio de sesión en tienda ahora muestra las contraseñas según lo esperado. Anteriormente, las contraseñas no se mostraban. GitHub-37432
  • La lista de comparación de productos ahora siempre es específica del sitio web para los compradores invitados y no contiene productos que se añadieron desde otros sitios web, incluidos productos asignados a ambos sitios web.
  • Los bloques de contenido de CMS que contienen emojis ya no se truncan después del emoji cuando se guardan en la base de datos. Anteriormente, el contenido se truncaba después del emoji porque la configuración predeterminada de la base de datos no admitía caracteres de cuatro bytes.
  • Las contraseñas ahora se muestran según lo esperado cuando se define la variable Show Password La casilla de verificación de la página de inicio de sesión está activa.
  • El atributo del sistema Restablecer token de contraseña de la entidad del cliente (rp_token) la validación se ha eliminado de la validación de atributos durante la creación de la cuenta del cliente, y la validación de diacríticos se incluye únicamente en el correo electrónico del cliente resultante. Anteriormente, el Magento Open Source no guardaba el registro de cliente y mostraba este error: Something went wrong while saving the customer.
  • Ahora puede guardar correctamente las ediciones en la cuadrícula Páginas de administración y Bloques después de eliminar una columna. GitHub-37525
  • Los clientes ahora pueden iniciar sesión correctamente con una nueva contraseña de un dispositivo después de restablecer su contraseña en otro dispositivo.
  • La dirección del cliente administrador Estado/Provincia El campo ahora conserva el último valor guardado según lo esperado. Anteriormente, cuando se eliminaba el valor de este campo, Magento Open Source seguía mostrando el valor eliminado en la Estado/Provincia field. GitHub-36846
  • Ya no se producen errores durante las solicitudes de una fuente RSS para categorías cuando RSS Feed Top Level Category está activada. Anteriormente, la exploración de la página de categoría de fuente RSS resultaba en Elasticsearch CRITICAL errores en archivos de registro al RSS Feed Top Level Category se ha activado.
  • El valor correcto ahora se guarda para gws_store_groups cuando se cambia el ámbito de la función durante la creación de la función del usuario. Anteriormente, cuando el ámbito de función se seleccionaba como All, el gws_store_groups el valor se guardó como nulo durante la creación del usuario, pero no durante la edición de funciones. Además, si el ámbito de función se seleccionó como Customy, a continuación, el gws_store_groups el valor siempre se ha guardado como nulo.
  • Ahora se puede acceder a la página de restablecimiento de contraseña haciendo clic en el vínculo Admin reset password de la página de inicio de sesión de Admin cuando el Add Store Code to Urls La configuración está habilitada. El vínculo Admin reset password abría anteriormente la página de inicio de sesión o la página 404.
  • El intervalo de fechas del tablero de estadísticas de administración ahora se calcula en función de la zona horaria establecida en los ajustes de configuración y, a continuación, se convierte a UTC para recuperar datos de la base de datos.
  • El filtro de jerarquía de CMS funciona según lo esperado después de filtrar una vista de tienda y hacer clic en Save en administración Content > Hierarchy. Anteriormente, al hacer clic en Save actualizó la página, pero se perdió el contexto y la vista de tienda seleccionada ya no se mostraba.
  • Haciendo clic en Send invitation botón (Administración) Marketing > Private sales > Invitation) ahora envía una solicitud de POST junto con la clave del formulario y envía la invitación correctamente. Anteriormente, al hacer clic en este botón, no estaban presentes ni el método POST HTTP ni la clave del formulario.
  • Los archivos de cero bytes ahora se pueden copiar correctamente en el almacenamiento remoto con AWS S3.
  • Los usuarios administradores ahora pueden añadir una nueva dirección de cliente desde el Administrador cuando el cliente se ha creado para otro sitio web cuyo ID de tienda no coincide con el ID de sitio web. Anteriormente, el Magento Open Source mostraba este mensaje emergente: Something went wrong. GitHub-36582
  • La página del editor de bloques de CMS ahora muestra el widget correcto block_id valor. GitHub-29644

GraphQL

  • El getCustomerWishlist query ya no provoca un error interno del servidor al consultar listas que contienen productos configurables.
  • El customerCart La consulta ahora devuelve todos los descuentos aplicados a los productos agrupados según lo esperado. Anteriormente, los descuentos totales aplicados a un producto agrupado se devolvían como cero.
  • El getCustomerWishlist query ya no provoca un error interno del servidor al consultar listas que contienen productos configurables.
  • La declaración de la is_subscribed se han movido el indicador, su resolución, la caché y las pruebas asociadas del CustomerGraphQl al módulo de NewsletterGraphQl módulo.
  • El addProductsToCart La mutación ya no informa de errores no relacionados en user_errors. Anteriormente, los errores relacionados con el carro de compras se incluían en user_errors junto con los errores de operación esperados. GitHub-37908
  • El products el filtro de productos de consulta ahora puede devolver resultados de coincidencia parciales así como coincidencias completas. El nuevo match_type El atributo (PARCIAL, COMPLETO) admite la especificación del tipo de coincidencia. Anteriormente, la consulta solo devolvía coincidencias completas.
  • Se ha añadido la exclusión mutua a addConfigurableProductsToCart consulta para evitar condiciones de carrera durante una actualización por solicitudes simultáneas. Anteriormente, cuando un comerciante enviaba dos solicitudes paralelas para agregar el mismo producto configurable a un carro de compras, se agregaban dos artículos independientes con el mismo SKU del producto. GitHub-37847
  • La agregación de productos en las respuestas de GraphQL ahora incluye valores distintos de cero para los atributos cuando Use in Layered Navigation se establece en Filterable (no results). Anteriormente, solo se devolvían valores distintos de cero.
  • Se ha mejorado el rendimiento del setShippingAddressForEstimate consultar las operaciones relacionadas con el carro de compras que implican atributos de producto personalizados. Anteriormente, la consulta cargaba todos los atributos de producto cuando los parámetros se enviaban como variables.
  • El products query ConfigurableProduct.configurable_options ahora, el campo solo devuelve valores que tienen al menos un producto habilitado. Anteriormente, este campo devolvía productos simples desactivados.
  • Se ha mejorado el rendimiento del GetCategories query al reducir el número de consultas SQL innecesarias que genera.
  • La gestión de errores de direcciones para los componentes de la biblioteca GraphQL ahora funciona según lo esperado.
  • El products query ahora devuelve todos los detalles de precios relevantes de la tienda cuando dynamic price se establece en no y se aplican descuentos. Anteriormente, no se devolvía el rango de precios de los productos. GitHub-35649
  • Los nombres de transacciones de GraphQL ahora incluyen nombres de consulta de nivel superior solo en los registros de New Relic. Anteriormente, los nombres de transacción también incluían nombres de consulta secundarios.
  • La gestión de errores de direcciones para los componentes de la biblioteca GraphQL ahora funciona según lo esperado.
  • Cuando la configuración de Visibilidad de un producto está establecida en Catalog, products las consultas sobre ese producto ahora resuelven la configuración correctamente. Anteriormente, cualquier filtro proporcionado se cambiaba a Visibility: Catalog configuración. GitHub-36591
  • El customer query ahora devuelve un valor product_sale_price campo que incluye impuestos sobre pedidos cuando el precio del producto se ha configurado para incluir impuestos. GitHub-36946
  • Atributos de producto del tipo DateTime ahora, asigne a FilterRangeTypeInput filtrar en consultas de productos. Anteriormente, estos atributos se asignaban a FilterMatchTypeInput. Como resultado de este cambio, las consultas se filtran según DateTime los atributos requieren from y to valores en lugar de valores de coincidencia.
  • El customer Ahora, la consulta solo devuelve críticas de clientes relacionadas con una vista de tienda específica, tal como se espera cuando se filtra por ID de tienda.
  • El categories query ya no devuelve un error cuando la variable items.redirect_code el valor de respuesta contiene un valor nulo. GitHub-36675
  • El changeCustomerPassword la mutación ahora almacena en déclencheur el correo electrónico como se espera después de restablecer correctamente una contraseña.
  • urlResolver y route Las consultas de ahora devuelven un resultado cuando la variable Target Path de reescritura de URL es una URL absoluta. Anteriormente, la variable urlResolver La consulta devolvió un valor NULL cuando se utilizaba para recuperar datos de redireccionamiento.
  • El products query ahora devuelve etiquetas correctas. GitHub-29635
  • El categoryList query ahora devuelve un valor rellenado product de la sección options Bloque para productos secundarios de productos agrupados según lo esperado. Anteriormente, no se devolvía información sobre productos secundarios de paquete.
  • El route La consulta ahora devuelve rutas para categorías y productos según lo esperado sin un error interno del servidor. GitHub-36544
  • El products la consulta ahora se obtiene url_key valores cuando se seleccionan varias categorías.
  • products ahora, las consultas devuelven acumulaciones solo para los productos asignados al catálogo compartido especificado.
  • Los nombres de transacción se han agregado a las transacciones de New Relic GraphQL. GitHub-36874
  • El OptionValueProvider clase get() ahora devuelve un valor de opción de atributo basado en el valor dado option_id como se esperaba. Anteriormente, devolvía un error. GitHub-35910
  • El products query ahora devuelve todas las agregaciones (filtros) disponibles y sus etiquetas traducidas correctamente. Anteriormente, las etiquetas de agregación de precios y categorías no se traducían según lo esperado. GitHub-36140
  • Ahora puede utilizar un fragmento ProductCard al consultar related_products, upsell_products, y crossell_products el ProductInterface. GitHub-29769
  • El products La consulta ahora devuelve productos relacionados, de venta adicional y de venta cruzada en el orden en que se guardaron. GitHub-36461
  • Las consultas de GraphQL ahora devuelven datos de productos relacionados ordenados por posición. GitHub-33010
  • category_url_path se ha añadido a ProductAttributeFilterInput, que permite solicitar todos los productos de una categoría en una única consulta. GitHub-32460
  • Se ha corregido un error por el que el método que establece el almacén actual en una mutación de GraphQL se ejecutaba antes que el método que administra la validación. GitHub-31336

Imagen

  • Ahora, el formulario de carga del icono de favicon de Admin admite .ico tipos de archivo. GitHub-34858

Importar/exportar

  • El proceso de importación de productos ahora analiza los valores con el separador correcto. Anteriormente, el proceso de importación utilizaba el operador de barra vertical ("|") para analizar valores de selección múltiple hasta que el separador de valores determinado no fuera igual al valor predeterminado. El proceso de importación falló posteriormente.
  • Las redirecciones 301 ahora se crean automáticamente cuando URL Key Los valores de se actualizan mediante la importación de CSV.
  • Las tarifas de tabla de envío ahora se actualizan según lo esperado en el archivo CSV de importación de tarifas de tabla. El archivo de carga de velocidad de tabla se almacena temporalmente hasta que se ejecute el trabajo cron del procesador de configuración asincrónica. Este trabajo cron toma la nueva ubicación del archivo y la procesa en consecuencia. Anteriormente, las tasas de tabla no se actualizaban como se esperaba porque el procesador asincrónico buscaba el archivo en la ubicación incorrecta.
  • La cuadrícula Exportar archivos ahora muestra todos los archivos exportados independientemente de la marca de tiempo. Anteriormente, la cuadrícula no mostraba todos los archivos exportados que tenían la misma marca de tiempo. GitHub-36951
  • Ahora, los productos con opciones personalizables se pueden importar correctamente. Anteriormente, los datos de opciones se perdían durante la importación. GitHub-37598
  • Los caracteres especiales de los archivos CSV exportados ahora se representan como se espera en Excel. GitHub-37921
  • Importación de orígenes de stock y direcciones de clientes mediante Customers and Addresses (single file) La opción ahora se completa correctamente.
  • La importación de productos ya no falla debido a la falta de memoria. Anteriormente, la importación de cualquier número de productos a una base de datos que ya contiene aproximadamente diez millones de productos fallaba debido a la falta de memoria.
  • Las comprobaciones de validación ahora detienen el proceso de importación como se espera cuando no hay datos válidos para importar y Magento Open Source ahora muestra este error: There are no valid rows to import. Anteriormente, la validación se realizaba bajo estas condiciones, pero el proceso de importación fallaba con este mensaje: entity values are mixed. GitHub-32905
  • La importación de claves URL con el mismo producto ya no sobrescribe ni elimina las claves de vista de tienda predeterminadas existentes. Las reescrituras de URL ahora se regeneran para vistas de tienda solo cuando no hay ninguna sobrescritura url_key valor. Anteriormente, al importar reescrituras de URL con la misma clave de URL, se sobrescribía la clave de URL de vista de tienda predeterminada existente. (key_store Se eliminaron las reescrituras de URL, pero la reescritura de URL en el nivel de vista de tienda predeterminado para el producto seguía configurándose como key_store.)
  • El recuento de productos ya no cambia inesperadamente durante la importación. El vaciado de caché ahora se pospone hasta después del proceso de importación.
  • El estado de las acciones de importación programadas ahora representa con precisión el éxito o el error de la operación de importación. Anteriormente, todas las acciones se registraban como correctas.
  • Ahora, el Magento Open Source tiene en cuenta la variable Disable Automatic Group Change Based on VAT ID configuración durante la importación de registros de clientes. Anteriormente, la variable disable_auto_group_change se ha omitido el valor en los archivos de importación. GitHub-36409
  • Magento\Framework\Convert\Excel ahora controla correctamente los números precedidos de un espacio. El XML de Excel ahora codifica los campos como una String. Anteriormente, el escritor de Excel codificaba estos valores como number, lo que provocaba archivos no válidos. GitHub-33422
  • Los comerciantes ahora pueden especificar la configuración regional en la que se presentan los datos de importación y cómo deben analizarlos los validadores de datos. Si no se especifica un valor de configuración regional, Magento Open Source utiliza la configuración regional predeterminada (no la vista de almacén predeterminada) para analizar los datos. En el Administrador, los procesos de importación y exportación siguen utilizando la configuración regional de la interfaz de usuario de administración para importar, analizar y dar formato a los datos, respectivamente.
  • Importar productos con country_of_manufacture los atributos creados por un usuario administrador con una configuración regional diferente a la del usuario administrador que importa los productos ya no genera un error de validación. Anteriormente, esta operación de importación podía provocar un error de validación en country_of_manufacture atributo.
  • Los productos exportados ahora tienen el manage_stock cuando el use_config_manage_stock valor igual a 1. Anteriormente, este valor predeterminado era incorrecto.
  • El Magento Open Source ahora muestra un mensaje de error informativo en la cuadrícula de importación programada cuando una imagen no se importa correctamente durante una operación de importación programada. Anteriormente, no se mostraba ningún mensaje de error.
  • El proceso de importación de productos ya no se interrumpe cuando faltan imágenes de productos. Anteriormente, cuando faltaba una imagen de producto durante la importación de un servicio de terceros mediante un archivo CSV, el Magento Open Source mostraba este error: Maximum error count has been reached or a system error is occurred!.
  • El proceso de importación de productos ya no genera un error de validación cuando un valor de atributo en configurable_variations contiene una coma.
  • La descodificación se ha excluido del proceso de exportación. El texto del archivo de exportación CSV permanece sin cambios después de la importación. Como resultado, la descripción no cambia después de volver a importar. Anteriormente, las etiquetas de HTML se eliminaban en el editor de Page Builder después de exportar e importar el producto.
  • Las configuraciones no predeterminadas (sitio web o ámbito de tienda) que se agregan como variables de entorno ya no interrumpen el app:config:import proceso con un error de recursión.
  • La búsqueda en el catálogo y los indexadores de precios en el modo Actualizar al guardar ya no se invalidan después de la importación. Anteriormente, la versión del documento de Elasticsearch Indexer cambiaba de versión cuando se importaban productos nuevos y existentes.
  • Los informes de producto ahora se exportan a var directorio. Anteriormente, estos informes se exportaban al directorio raíz del documento, que es un directorio de solo lectura en instancias de nube.
  • Los campos de dirección de cliente de selección múltiple vacíos ya no interrumpen ni detienen el proceso de exportación.

Índice

  • Se han resuelto problemas con el rendimiento del indexador de precios. El rendimiento del indexador ya no se degrada gradualmente. El indizador se ha refactorizado para aumentar la velocidad de procesamiento del indizador al cambiar la forma en que se crean las tablas temporales. Estas tablas temporales ahora se recrean en lugar de abordarse con instrucciones de DELETE más largas.
  • Se ha mejorado el rendimiento del indexador de precios. Se ha añadido una sugerencia de índice al indexador de precios que mejora los tiempos de ejecución de las consultas MySQL que se activan durante la indexación.
  • Ahora todos los indizadores utilizan los mismos colores para representar el estado del indizador. GitHub-34648
  • Se ha mejorado el rendimiento del indexador de producto de reglas de catálogo en implementaciones en las que las reglas no están asignadas a todos los sitios web.
  • Crear un tipo de producto personalizado cuando los indizadores están configurados en Update on schedule ya no provoca la actualización del índice cron tarea que debe fallar. GitHub-36471
  • bin/magento indexer:reindex customer_grid ya no falla con un error MySQL cuando la cuadrícula del cliente incluye atributos del cliente personalizados recién creados. GitHub-36233
  • El cambio del modo de indizador para varios indizadores (es decir, un cambio del modo de indizador de acción masiva) ahora cambia el modo de un indizador solo cuando el modo actual difiere del que se está aplicando. Esto mejora el rendimiento al evitar viajes innecesarios a la base de datos. GitHub-36823
  • Se ha mejorado la indexación de productos con muchas opciones de atributos. GitHub-36386

Infraestructura

  • MySQL reemplazado CREATE TEMPORARY TABLE ... LIKE con refactorizado CREATE TEMPORARY TABLE para conformidad con MySQL 8.x. GitHub-37926
  • El Magento Open Source ya no incluye la ruta completa a la raíz del servidor en el mensaje de error que muestra cuando se ha enviado una solicitud HTTP mal formada al servidor. Ahora solo se pasan cadenas a explode como segundo argumento.
  • restricted_classes.php ha reemplazado Zend_Validate_File_Upload. Anteriormente, el validador se bloqueaba durante la carga de un archivo de importación mayor que el valor configurado en php.ini . GitHub-37281
  • El motor de plantillas de correo electrónico ahora puede procesar correctamente determinadas directivas anidadas (por ejemplo, {{if}}{{depend}}...{{/depend}}{{/if}}). GitHub-36438
  • product Las consultas con datos de agregación ahora devuelven los valores de etiqueta correctos para los atributos de producto de tipo booleano. GitHub-29123
  • Se agregaron regiones ucranianas a directory_country_region tabla. GitHub-35187
  • Los archivos CSS ya no se dañan al combinarse al var/tmp y pub/static están en diferentes sistemas de archivos y CSS Merging Enabled está activada. Los archivos temporales se han creado en el mismo directorio estático que el archivo de destino para garantizar que ambos archivos estén en el mismo sistema de archivos. Como resultado, la llamada para cambiarle el nombre es atómica. GitHub-29172
  • Se corrigió un posible error al llamar a una función miembro getId() el int, que ocasionalmente activaba una excepción cuando un cliente era visto en el Administrador.
  • Las comprobaciones de tipos ahora se aplican al tipo de matriz en el procesador de configuración del tema de diseño. GitHub-34440

Inventory management

  • Los productos ahora vuelven automáticamente al estado En existencias después de una nota de abono que incluye una devolución de la cantidad del producto. Anteriormente, si un producto estaba agotado, pero una nota de crédito devolvía las existencias de este producto, los comerciantes tenían que cambiar manualmente el estado de las existencias del producto.
  • Se ha mejorado el rendimiento del indexador de inventario en modo asincrónico al eliminar solicitudes redundantes para reindexar elementos de origen predeterminados.
  • Se han corregido problemas con el indexador de inventario que afectaban a la precisión del recuento de existencias de la tienda de productos configurables. GitHub-36421
  • Actualización de artículos de origen de inventario mediante REST V1/inventory/source-items ahora funciona más rápido. La llamada ya no almacena en déclencheur una operación de reindexación o de limpieza de caché en productos de inventario sin modificar.
  • REST V1/products/<sku> ahora almacena en déclencheur un reíndice de existencias automatizado al actualizar el estado de existencias de un producto. Anteriormente, no se activaba un reíndice de existencias para el producto que se estaba actualizando.
  • El estado de stock de productos configurables ahora se actualiza en la tienda como se espera cuando actualiza los productos secundarios V1/inventory/source-items.
  • El POST <store_code>/V1/inventory/source-items La llamada REST ahora valida la carga útil para el espacio en blanco en los elementos de origen de inventario devueltos y envía un mensaje de error sobre la validación según sea necesario.
  • Los comerciantes ahora pueden notificar a los compradores que un pedido está listo para su recogida cuando la No Manage Stock La configuración está habilitada para un producto. Anteriormente, cuando esta configuración estaba habilitada, el Magento Open Source mostraba este mensaje de error: Your order is not ready for pickup.
  • Los comerciantes ahora pueden crear un abono para pedidos de los que se ha eliminado un producto simple asociado a un producto configurable. Anteriormente, los comerciantes no podían crear el abono y el Magento Open Source lanzó un TypeError excepción.
  • El recuento de fuentes de cuadrícula de administración ahora devuelve registros válidos después de aplicar un filtro. Anteriormente, la variable getSourcesCount El método siempre devolvía el número total de orígenes después de aplicar un filtro.
  • La página Categoría ya no redirige al panel de administración al ordenar los productos mediante la opción "Mover de stock a la parte inferior". El problema se ha resuelto colocando la instrucción de combinación SQL dentro de la instrucción condicional solo después de asegurarse de que ya no se incluye. Anteriormente, la página se redireccionaba al panel de administración con el siguiente mensaje:Invalid security or form key. Please refresh the page.
  • AUTO_INCREMENT de la inventory_source_item La tabla ya no aumenta con cada UPDATE operación. Anteriormente, cada actualización aumentaba el AUTO_INCREMENT de esta tabla, lo que finalmente provocó que AUTO_INCREMENT valor que debe estar fuera del intervalo al agregar un nuevo registro al inventory_source_item table. Como resultado, los usuarios administradores recibieron el siguiente error cuando intentaron crear un nuevo producto desde el administrador: Numeric value out of range....
  • Los usuarios administradores ahora pueden agregar un producto al carro de compras de un cliente desde el Administrador para un ámbito de vista de tienda determinado con Inventory management. Anteriormente, el ID de stock no se determinaba correctamente y los usuarios administradores no podían agregar el producto al carro de compras de los clientes.
  • La sincronización entre el inventario y el catálogo ya no depende del Synchronize with Catalog valor de configuración. Anteriormente, los productos solo se sincronizaban correctamente cuando esta configuración estaba habilitada.
  • El Magento Open Source ya no genera un error después de la recarga de la página cuando un comprador deduce una cantidad de producto de un pedido que se encuentra dentro del rango de productos disponibles al seleccionar el origen de envío.
  • El estado de stock de productos configurables ahora se actualiza correctamente cuando un producto configurable y sus productos secundarios Stock Availability El valor se actualiza mediante una actualización masiva de inventario. Anteriormente, no se podía devolver un producto configurable y sus productos secundarios a stock mediante una actualización masiva.
  • El tipo de datos de los orígenes no predeterminados se ha actualizado a DECIMAL (12, 4) para admitir hasta ocho dígitos enteros, que es el mismo límite implementado para las existencias predeterminadas. Este valor ahora está sincronizado con las páginas de producto de adición y edición de administración, que admiten la validación de entrada de hasta ocho dígitos para todo tipo de orígenes de inventario. Anteriormente, la entrada de para Quantity El campo (para fuentes no predeterminadas) solo era compatible con seis dígitos.
  • Tanto los orígenes predeterminados como los no predeterminados ahora muestran la información correcta para la cantidad vendible del producto cuando se procesa para su envío un origen no predeterminado que se solicitó desde la tienda. Anteriormente, el estado de las existencias del Magento Open Source era incorrecto para las fuentes de productos.
  • \Magento\Catalog\Model\Product::getIsSalable() ahora devuelve el estado de las existencias en función del ámbito definido en el objeto de producto (\Magento\Catalog\Model\Product::getStoreId()). Anteriormente, getIsSalable() devuelve el estado de stock en función del ámbito actual independientemente del objeto del producto.

Registro

  • Los usuarios administradores ahora pueden ver los registros de las acciones masivas creadas mediante integraciones en la sección Registro de acciones masivas de Admin.

Iniciar sesión

  • Restablecer una contraseña en un explorador y posteriormente iniciar sesión en otro explorador ya no genera una excepción. GitHub-36447
  • Ahora se redirige a los clientes a la página de inicio de sesión después de activar una cuenta según lo esperado. Anteriormente, la sesión de los clientes se iniciaba automáticamente.

Pedidos

  • Los comerciantes ahora pueden crear notas de abono según lo esperado para la devolución parcial de pedidos que se pagaron en parte mediante puntos de recompensa. Anteriormente, cuando un comerciante creaba una devolución parcial, el estado del pedido se identificaba incorrectamente como cerrado y la página Pedido del administrador no mostraba las opciones de abono.
  • El Magento Open Source ahora aplica el importe de descuento correcto a los pedidos parcialmente cancelados. Anteriormente, el importe de descuento se calculaba en la variable base_discount_cancelled se calculó incorrectamente cuando se cambió un pedido. Se ha añadido compatibilidad con valores negativos a las facturas de pedidos con descuento.
  • El Magento Open Source ahora ordena los atributos de dirección del cliente personalizados en función del criterio de ordenación que se proporcionó cuando el usuario administrador creó el orden en el Administrador.
  • La página Administración de cuadrícula de pedidos de ventas ahora se carga como se espera cuando un comerciante inicia una búsqueda desde esta página. Anteriormente, cuando un comerciante intentaba buscar pedidos de esta tabla, la página se bloqueaba y el Magento Open Source mostraba un Request-URI Too Long error en la consola del explorador.
  • Se ha mejorado el rendimiento del OrderRepository::get() reduciendo el número de veces que carga un pedido de la base de datos. Anteriormente, este método cargaba un pedido varias veces. GitHub-36636
  • Los comerciantes ahora pueden generar notas de abono para pedidos que contienen algunos artículos con un total cero cuando hay otros artículos de pedido disponibles para devolución. Anteriormente, los comerciantes no podían realizar varios reembolsos cuando un cliente tenía un descuento del 100% en algunos artículos del pedido.
  • Los vínculos entre productos secundarios y principales ahora se muestran en la página de pedidos durante la reordenación del producto secundario desde el administrador. GitHub-37028
  • La emulación ahora se inicia durante send() llama a una vez que la emulación ha finalizado durante el getInfoBlockHtml() y no se registra ningún error. Anteriormente, la variable system.log el archivo se inundó con este error: main.ERROR: Environment emulation nesting is not allowed. GitHub-35603
  • Los comerciantes ahora pueden generar notas de abono para pedidos que contienen algunos artículos con un total cero cuando hay otros artículos de pedido disponibles para devolución. Anteriormente, los comerciantes no podían realizar varios reembolsos cuando un cliente tenía un descuento del 100% en algunos artículos del pedido.
  • Los vínculos entre productos secundarios y principales ahora se muestran en la página de pedidos durante la reordenación del producto secundario desde el administrador. GitHub-37028
  • La sección de cabecera de la página de pedido ahora contiene la información esperada sobre la factura, la nota de abono y el envío enviados. GitHub-27474
  • Las notas de abono de los pedidos que solo contienen un producto configurable ahora se generan correctamente. Anteriormente, la variable isLast() la función no ha devuelto true como se esperaba. GitHub-36722
  • Rendimiento mejorado del aggregate_sales_report_bestsellers_data trabajo cron al optimizar la consulta de datos principal.
  • El estado del pedido ahora es correcto cuando se ha realizado un reembolso parcial de un pedido que contiene productos agrupados. Anteriormente, el estado del pedido se mostraba como completo después de que se emitiera un reembolso parcial, aunque el pedido restante no estuviera completo. GitHub-37377
  • Los compradores ya no pueden solicitar un producto con un precio personalizado cuando se genera un pedido por primera vez desde el administrador utilizando el precio personalizado único. Anteriormente, si un pedido contenía un artículo con precios personalizados, este precio personalizado se aplicaba a otros pedidos realizados con la funcionalidad de repedido.
  • Los compradores ya no pueden guardar estados de pedidos incorrectos en la página de pedidos. El estado del pedido ya no cambia de Completado a Procesando cuando se envía un artículo. Anteriormente, el Magento Open Source no comprobaba el estado actual del pedido antes de guardarlo después de que un comprador escribiera un comentario. GitHub-36562
  • La cuadrícula de pedidos de venta ahora se sincroniza asincrónicamente con todos los pedidos según lo esperado. GitHub-36562
  • La funcionalidad de filtrar por fecha de compra en la sección de pedidos del cliente de la página de pedidos ahora funciona según lo esperado. Anteriormente, se producía un error de JavaScript cuando la lógica de conversión de huso horario arrojaba un error cuando se proporcionaba la misma zona horaria al método.
  • El panel de administración ahora muestra las estadísticas de pedidos correctas en la primera carga. Anteriormente, el panel mostraba información de pedidos incorrecta, pero mostraba la información correcta una vez actualizado el periodo de tiempo.
  • Los usuarios administradores ahora se redirigen según lo esperado a la página de pedidos después de seleccionar una vista de tienda durante la creación de nuevos pedidos desde el Administrador.
  • El GET V1/orders/<OrderID> ahora, endpoint devuelve información sobre los productos configurables y simples en el orden, independientemente del estado de stock de los productos simples. Los usuarios administradores ahora solo pueden realizar pedidos si los artículos seleccionados (productos) están en stock o son vendibles. Anteriormente, esta API solo devolvía información sobre los productos que estaban en stock.
  • La página de nota de abono ya no se bloquea cuando el envío gratuito está activado cuando el precio de envío incluye impuestos y los cálculos de impuestos se aplican después de los descuentos. Anteriormente, el Magento Open Source lanzó una Division by zero excepción. GitHub-36800
  • Uso del rest/V1/orders/{id}/comments el punto final para publicar un comentario sobre un pedido sin proporcionar el estado del pedido ya no afecta a la visualización del pedido. Anteriormente, el estado del pedido se registraba como NULL en sales_order y sales_order_grid y ni la página Mis pedidos ni la cuadrícula de orden de administración mostraban el orden. GitHub-34180

Page Builder

  • Las imágenes ahora mantienen la proporción de aspecto correcta cuando se cambia el tamaño en Page Builder. GitHub-37493
  • Page Builder ahora muestra mensajes de error según sea necesario cuando intenta cargar una imagen con un tamaño de archivo superior al tamaño máximo especificado. Anteriormente, Commerce mostraba un mensaje emergente de alerta para los archivos de imagen cargados que eran menores que el máximo especificado.
  • Los reguladores de producto de la página de CMS ahora incluyen los productos principales de cualquier producto secundario que se haya seleccionado para su inclusión en el regulador. Anteriormente, los productos principales se excluían del control deslizante.
  • El contenido convertido por el HTML ahora se muestra en plantillas de correo electrónico como se espera cuando la variable Magento_AsyncConfig El módulo está desactivado. Anteriormente, las plantillas de correo electrónico solo contenían HTML sin procesar.
  • Se ha mejorado el rendimiento de las operaciones de guardado de Page Builder en el explorador Chrome.
  • Al añadir un producto a un carro de compras desde el carrusel de Page Builder, ya no se duplica la cantidad de artículos de páginas con dos widgets diferentes que muestran los mismos productos.
  • Page Builder ya no agrega tabindex Atributo de HTML a etiquetas de hipervínculo a al editar un hipervínculo, guarde una plantilla.
  • El widget de productos y la vista previa del Page Builder ahora gestionan correctamente los caracteres especiales del HTML. Anteriormente, el widget de producto no mostraba correctamente los SKU que contenían el & carácter.
  • El contenido del elemento de texto de Page Builder ahora se actualiza según lo esperado al seleccionar y actualizar el bloque de contenido completo en el modo de vista previa.
  • Copiar y pegar texto de un editor de texto de Page Builder a otro ahora funciona según lo esperado. Anteriormente, la página en la que intentaba pegar texto no se podía guardar y el Magento Open Source mostraba este error de consola: [ERROR] Page Builder was rendering for 5 seconds without releasing locks..
  • Page Builder column-block El tipo de contenido creado en versiones anteriores de Page Builder ahora se muestra correctamente.
  • Se ha mejorado el filtrado de la descripción de metadatos del producto durante la creación del producto desde Admin. Anteriormente, si Page Builder estaba habilitado, la descripción de los metadatos del producto se generaba en función de los valores predeterminados {{name}} {{description}} máscara. La máscara de metadescripción de producto predeterminada ahora está compuesta por {{name}}. GitHub-36107
  • Añadir un bloque dinámico sin contenido ya no genera déclencheur de error.
  • Se han resuelto los problemas con la visualización de columnas en el contenido del Page Builder. Anteriormente, column-line no se ha representado el contenido del tipo de contenido. GitHub-3949

Pago

  • El Magento Open Source ahora gestiona correctamente los errores 502 de PayPal al evitar la creación de pedidos cuando se produce este error. Anteriormente, los pedidos se seguían creando a pesar de un error 502 de PayPal, que conducía a incoherencias entre los registros del Magento Open Source y los de PayPal.
  • Las transacciones de Pago y envío de PayPal Express ahora incluyen SKU de productos secundarios y títulos de productos completos. El Magento/Paypal/Model/Cart.php Este archivo ahora recopila los SKU de producto secundarios con su título de producto principal para identificar el título del producto con el SKU secundario. GitHub-36808
  • El Card Security Code Does Not Match El ajuste de configuración ahora se procesa según lo esperado durante el proceso de pago de Payflow Pro. Anteriormente, este proceso de evaluación nunca se completaba, lo que bloqueaba el cierre de compra.
  • La opción de método de pago Vault ya no aparece en el flujo de trabajo de cierre de compra del administrador cuando el comprador no tiene un token de Vault. GitHub-36273
  • El Venmo ahora se puede ocultar cuando los botones de PayPal están activados. Anteriormente, la variable Venmo No se ha podido eliminar el botón del carro de compras, del minicarrito, de los detalles del producto o de las páginas de cierre de compra.
  • Los compradores ahora pueden seleccionar un método de envío al aplicar el código de cupón durante el cierre de compra. Anteriormente, en estas condiciones, el Magento Open Source arrojaba un error y asignaba un envío de tarifa plana al pedido.
  • Se han resuelto los problemas con el procesamiento de la tienda de los métodos de pago de crédito de PayPal y PayPal.
  • Se han resuelto problemas con URL de reserva para pedidos pagados con mediante pagos ideales cuando el pago local está habilitado.
  • Los compradores ya no pueden crear un pedido de PayPal sin añadir un apellido.

Braintree

  • La información de pago del Braintree ahora se guarda por tienda y los compradores ahora solo ven la información de la tarjeta que se ha guardado en la tienda en la que están comprando. Anteriormente, los compradores podían ver la información de la tarjeta almacenada de todas las tiendas durante el cierre de compra. GitHub-34253
  • Los compradores ahora pueden retirar un pedido que se envía a varias direcciones mediante un método de pago del Braintree cuando la caja fuerte para pagos con tarjeta está desactivada. GitHub-37615
  • Los pedidos parcialmente facturados ahora se capturan como se espera en la cuenta correcta en implementaciones en las que los comerciantes tienen dos ID de cuenta de comerciante diferentes para la misma divisa en su cuenta de Braintree.
  • El Magento Open Source ya no genera un error al crear una segunda factura parcial para un pedido pagado por el Braintree cuando el Enable Vault for Card Payments está activada. Anteriormente, cuando un comerciante intentaba crear una segunda factura, el Magento Open Source arrojaba este error: Your payment could not be taken. Please try again or use a different payment method. Payment method token is invalid.
  • La opción de método de pago de Braintree Vault ya no se anula automáticamente en el flujo de trabajo de cierre de compra cuando un comprador actualiza su dirección de facturación. Anteriormente, el método de pago se anulaba cuando el comprador anulaba la selección del método My billing and shipping address are the same botón.
  • Se han resuelto problemas con el cierre de compra con PayPal mediante Braintree después de actualizar desde Adobe Commerce 2.4.5-p2. GitHub-37242
  • Los números de teléfono ahora se representan según lo esperado con las direcciones en los campos de dirección de envío emergente de Google Pay. Anteriormente, faltaban números de teléfono.
  • Los pedidos ahora se realizan correctamente con el Braintree cuando la respuesta del Braintree incluye un valor vacío para threeDSecureInfo/eciFlag. Anteriormente, se producía un error de PHP durante el cierre de compra cuando este valor estaba vacío.
  • El Magento Open Source ya no genera un error cuando un comprador aplica un cupón en la página de revisión de pedidos al cerrar la compra con Google Pay desde el minicarrito. Anteriormente, se redirigía a los compradores a una página 404.
  • Los compradores ahora pueden completar el pago y envío con Braintree Payments y Magento Open Source 2.4.6 con ReCAPTCHA v2 o v3 invisible. GitHub-37241
  • Los compradores ya no pueden hacer clic en PayPal para adquirir un producto configurable sin seleccionar primero las opciones requeridas. Anteriormente, los compradores podían hacer clic en PayPal y, posteriormente, se redirigieron de nuevo a la página del producto con un error:
  • El PayPal ahora se muestra según lo esperado en las páginas del carro de compras y del minicarro de compras. Anteriormente, este botón no se mostraba en la página del carro de compras y se duplicaba en la página del minicarrito.

Rendimiento

  • Se eliminaron los no utilizados Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper de Magento\Catalog\Model\ProductRepository. Anteriormente, ProductRepository cargó este asistente, que es un Adminhtml controlador. GitHub-37864
  • Se ha mejorado el rendimiento de la velocidad de carga de la página cuando se añaden muchas opciones a los productos agrupados. GitHub-29409
  • Proceso de asignación de productos a categorías desde el Products in Category se ha optimizado. El Assign y Remove botones en la Add Product by SKU ahora están desactivadas hasta que los productos se carguen completamente en la cuadrícula. Anteriormente, los usuarios administradores no podían agregar productos por SKU en catálogos que contenían millones de productos registrados.
  • El rendimiento de la addProductToCart ha mejorado la mutación al ejecutar con muchos atributos de producto personalizados. Anteriormente, cuando esta mutación se ejecutaba con muchos atributos de producto ( aproximadamente 1000), Magento Open Source intentaba cargar todos los atributos de producto.
  • Se han resuelto los problemas de rendimiento al cargar atributos de producto utilizados por reglas del carro de compras. Ahora solo se cargan los atributos de producto para las reglas de carro de compras activas.
  • El bin/magento setup:perf:generate-fixtures setup/performance-toolkit/profiles/ee/small.xml ahora se ejecuta correctamente cuando se ejecuta varias veces. Anteriormente, arrojaba este error cuando se ejecutaba más de una vez: Coupon with the same code already exists.

Promoción

  • Los efectos de la Fixed amount discount for whole cart regla de precios, cuando se aplica con Apply to shipping amount La regla, ahora se distribuye proporcionalmente según lo esperado entre los productos y los importes de envío. Anteriormente, los cálculos de descuento eran incorrectos.
  • El Discard Subsequent Rules La configuración de ahora se aplica según lo esperado. Cuando esta configuración está habilitada, otras reglas con prioridad baja solo se pueden aplicar a un producto diferente. GitHub-35707

reCAPTCHA

  • reCAPTCHA v3 invisible ahora funciona como se espera para la página de cierre de compra Sign in botón. Anteriormente, los compradores no podían iniciar sesión y Commerce arrojaba errores de JavaScript.
  • Google reCAPTCHA en el flujo de trabajo de cierre de compra ahora funciona como se espera para cheques, giros postales y métodos de pago personalizados.
  • Los formularios Adobe Commerce ya no se pueden enviar antes de que se cargue la casilla de verificación Google ReCAPTCHA.
  • El widget reCAPTCHA ahora precede al Place Order en la página de pago. Anteriormente, el widget se mostraba en la parte superior de la página.

Informes

  • El informe Pedidos (REPORTS > Sales > Orders) ahora incluye valores de pedido correctos cuando los pedidos son generados por tiendas que utilizan monedas no predeterminadas. Anteriormente, este informe incluía valores incorrectos. GitHub-36742
  • Se ha revisado la información engañosa en el formulario de informe de pedido de ventas para mayor claridad.
  • Los usuarios administradores ahora pueden buscar registros con correos electrónicos que contengan + (más) anuncios de la página Informe de Carros de compras abandonados. GitHub-36560

Buscar search-heading

  • Las sugerencias de búsqueda de autocompletar en el front-end de búsqueda mini del encabezado ahora funcionan según lo esperado. Anteriormente, el completado automático no rellenaba este campo cuando esta característica estaba habilitada. GitHub-37557
  • El rendimiento de las consultas realizadas desde la barra de búsqueda de Administración se ha mejorado mediante la adición de un indexador. Anteriormente, cuanto más grande era el search_query , cuanto más tardara la consulta en completarse.
  • La ordenación alfabética de productos por nombre ahora funciona correctamente para nombres que contienen caracteres turcos.
  • El Use in Search Results Layered Navigation la propiedad de atributos del producto ahora solo se muestra cuando Use in Search se establece en Yes.
  • Los filtros de SKU y precio de búsqueda avanzada ahora funcionan correctamente cuando se aplican juntos en una búsqueda avanzada. GitHub-37581
  • Ya no se realizan búsquedas en campos de búsqueda vacíos. Esto reduce el tamaño del search_query tabla. Anteriormente, las consultas incorrectas o la consulta en campos de búsqueda vacíos devolvían un conjunto de datos enorme, lo que aumentaba el tamaño del search_query y ha originado problemas con /tmp.
  • Los filtros de tienda ahora funcionan según lo esperado al ordenar las entradas de catálogo con atributos personalizados desplegables.
  • Los resultados de búsqueda ahora muestran los resultados relevantes en función de la ponderación de búsqueda de los atributos según lo esperado.
  • Texto informativo en la sección Search Weight atributo de Storefront Properties campo de entrada en administración Stores > Attributes > Product ahora describe posibles valores. GitHub-36646

Envío

  • Las reglas de precios del carro de compras ahora funcionan como se espera cuando se agrega un producto agrupado al carro de compras cuando se desactivan los atributos de precios dinámicos. El envío gratuito y la tarifa de tabla correcta se aplican independientemente de si el atributo dinámico está habilitado o deshabilitado. Anteriormente, el envío gratuito no se aplicaba según lo esperado.
  • El Magento Open Source ahora cambia a una nueva página de envío como se espera después de crear un envío parcial para un pedido. Anteriormente, después de crear un envío parcial, el Magento Open Source no creaba una página de envío completa para los productos restantes del pedido. GitHub-38063
  • La cantidad total para enviar un pedido a varias direcciones ahora se calcula correctamente. Anteriormente, cuando una oferta contenía más de una dirección de envío, el recolector total actualizaba el importe de envío para la dirección indicada en $quote->getShippingAddress() en lugar de pasarlo $shippingAssignment como se esperaba. GitHub-37283
  • El Magento Open Source ya no genera una excepción durante el cierre de compra con varias direcciones de envío cuando el usuario administrador ha utilizado la función Iniciar sesión como cliente.
  • Ahora, los productos aparecen correctamente en la cuadrícula Productos de la página Crear paquetes cuando se añaden productos a un paquete después de crear la etiqueta de envío.
  • El cart query ahora devuelve descuentos de envío discretos como descuentos de envío independientes con etiquetas de descuento únicas. El nuevo applied_to la propiedad descuento admite la diferenciación entre descuentos aplicados a un elemento del carro de compras. Anteriormente, todos los descuentos de envío se combinaban en uno codificado Shipping Discount valor.
  • Cuando un usuario administrador crea un nuevo pedido, las direcciones de facturación y envío del pedido inicial rellenan automáticamente los campos relevantes cuando el usuario administrador hace clic en Reorder botón (Administración) Sales > Orders > View ). Si se guardan las mismas direcciones en la libreta de direcciones del comprador, el nuevo pedido siempre incorporará una versión actualizada de estas direcciones. Anteriormente, el campo de dirección de envío se rellenaba previamente con los datos actualizados, pero no así el campo de dirección de facturación.
  • El Shipping Policy El cuadro de texto ahora está visible en el ámbito de vista de la Tienda de administración cuando Apply custom Shipping Policy está activada y hay disponible una política de envío personalizada. GitHub-36425
  • El cart query ahora devuelve un valor selected_shipping_method que coincida con uno de los available_shipping_methods códigos de portadora y método. Anteriormente, cuando uno de los métodos de envío seleccionados contenía un guion bajo, estos códigos de operador/método no coincidían. GitHub-36606
  • El setShippingAddressesOnCart la mutación ya no genera un error cuando el segundo valor de la matriz de street es nulo. Anteriormente, se producía esta excepción: The address failed to save. Verify the address and try again. GitHub-35160

Sitemap

  • El mapa del sitio XML ahora funciona como se espera en una implementación de varios pisos. Anteriormente, los mapas del sitio no contenían las páginas predeterminadas asignadas para cada tienda. GitHub-35001
  • Los comerciantes ahora pueden crear y guardar un producto al crear un sitio web id != 1 y el modo de tienda única está activado. Anteriormente, la acción de guardar fallaba con este mensaje: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails. GitHub-35009

Impuestos

  • Las facturas ahora muestran el subtotal correcto cuando se configuran los impuestos y se activa el FTP.
  • El Magento Open Source ahora muestra el valor correcto para Regular Price valor cuando se selecciona una opción personalizada para un producto que tiene un Special Price valor cuando Price Display Settings está configurado para incluir impuestos.
  • Ahora, los impuestos se incluyen según lo esperado en el precio de envío del flujo de trabajo de cierre de compra, tal como especifican los ajustes de configuración.
  • El cart query applied_taxes el valor de respuesta ahora incluye todas las reglas fiscales individuales según lo esperado. Anteriormente, devolvía el valor fiscal total cuando se configuraban varias reglas fiscales.
  • El icono contraer/expandir para Additional Settings La sección durante la creación de la regla fiscal ahora funciona según lo esperado. Anteriormente, solo funcionaba el icono de expansión. GitHub-37922
  • Ahora puede editar el valor de País y Región de Tipo Impositivo desde la página de edición de Regla Fiscal según lo esperado. Anteriormente, las ediciones realizadas desde esa página no se guardaban.
  • El importe de impuestos en el área de estimación del carro de compras ahora se actualiza según lo esperado cuando se actualiza el método de envío. Anteriormente, la tasa impositiva no se actualizaba después de que un comprador cambiara de país durante el registro de salida.
  • El tax class El valor de los productos simples recién creados ahora se establece en el valor del producto principal al crear nuevas variaciones de un producto configurable existente en el ámbito de la vista de tienda. Anteriormente, este valor se establecía en ninguno. Como resultado, no se añadió ningún impuesto a estos productos en el carro de compras y los clientes recibieron un impuesto inferior al cobrado. GitHub-37180

Prueba

  • Se ha mejorado la AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders pruebe para eliminar los errores causados por la finalización prematura del campo de correo electrónico.
  • StorefrontVerifyProductAfterPartialReindexOnSeveralWebsitesTest se ha refactorizado para mejorar la fiabilidad. GitHub-38359
  • Se ha corregido el AdminSimpleProductwithTextandVisualSwatch pruebe introduciendo un paso adicional que establezca explícitamente los atributos que se utilizarán en la búsqueda.
  • Error tipográfico corregido en SortbyTest prueba unitaria. GitHub-37792
  • Se eliminaron las referencias a clases inexistentes en las pruebas unitarias. GitHub-37636
  • Se ha mejorado la AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders pruebe para eliminar los errores causados por la finalización prematura del campo de correo electrónico.
  • Refactorizado Magento\GraphQl\Catalog\ProductSearchTest::testFilterProductsBySingleCategoryId prueba para gestionar el orden aleatorio de categorías en products respuestas a consultas.
  • \Magento\Test\Integrity\Di\CompilerTest::testConstructorIntegrity prueba ahora verifica todas las clases de PHP de módulos registrados por ComponentRegistrar().
  • Problemas de rendimiento con cabinas grandes en TableNameSniff se han resuelto.
  • CollectionTest::testGetDateRangeFirstPart() ahora corresponde al horario de verano.

Marco de IU

  • Los estilos de carga de archivos ya no están duplicados en la temática de Luma. GitHub-32373
  • Los campos de la calle en el formulario de edición de cuenta de cliente del campo de la calle ahora se guardan correctamente. Estos campos ahora están ordenados correctamente por las claves dadas en el formulario. GitHub-37973
  • Los valores de Desplazamiento de diseño acumulativo (CLS) han mejorado en las páginas de detalles del producto. (Esta métrica cuantifica la estabilidad visual de los diseños de página).GitHub-35410
  • Se ha mejorado la mensajería de errores que se producen durante el procesamiento de la plantilla. El Magento Open Source ahora muestra un mensaje informativo. Anteriormente, el Magento Open Source mostraba fugas de HTML cuando se producía un error de PHP.
  • Atributos del cliente personalizados (tipo) File attached) ahora funcionan correctamente con imágenes que se han eliminado y luego cargado. Anteriormente, los atributos personalizados cargados, eliminados y cargados de nuevo no se podían guardar desde la tienda.
  • Se ha corregido un error de sintaxis en el archivo de plantilla de calendario. GitHub-37725
  • Los usuarios administradores ahora pueden cambiar el logotipo de la tienda cuando el modo de tienda única está activado. Anteriormente, Magento Open Source mostraba el logotipo de reserva predeterminado. GitHub-35952
  • Los valores de configuración de los mixins ya no están vacíos y los mixins de jQuery ahora funcionan independientemente de la posición de carga. Anteriormente, los mixins de jQuery no se cargaban de forma coherente en los exploradores.
  • Las contraseñas ahora se muestran según lo esperado cuando se define la variable Show Password La casilla de verificación de la página de inicio de sesión está activa.
  • El Magento Open Source ahora muestra los precios correctos para los productos de paquete fijo con precios especiales.
  • Se ha actualizado el vínculo a la página de lista Problemas de GitHub en el archivo de plantilla de pie de página de la tienda. GitHub-37214
  • El widget Vistos recientemente ahora muestra la cantidad correcta de impuestos en los precios de productos agrupados. GitHub-35881
  • Los usuarios administradores ahora pueden arrastrar y soltar las opciones personalizables creadas para el producto simple según lo esperado. GitHub-36051
  • El orden de los tipos de atributos desplegables del producto ahora coincide con el orden de las imágenes en la página de producto configurable. GitHub-37285
  • Los mensajes del sistema ahora se cargan más rápido. Solo se cargan los mensajes que se muestran. Anteriormente, todos los mensajes se cargaban desde la base de datos, lo que llevaba mucho tiempo.
  • Eliminación del nodo de rutas de exploración mediante la configuración remove=true a través del XML de diseño ya no se elimina el título de página de la página de categoría. Anteriormente, al eliminar las rutas de exploración de esta manera se quitaba el título de página de la página de categoría.
  • El formulario de registro de cliente ahora se carga según lo esperado cuando incluye atributos del cliente de selección múltiple. Anteriormente, Magento Open Source producía esta excepción: [2023-03-05T05:57:40.032602+00:00] report.CRITICAL: Exception: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /magento2ee/app/code/Magento/CustomAttributeManagement/Block/Form/Renderer/Multiselect.php on line 53 in /lib/internal/Magento/Framework/App/ErrorHandler.php:62. GitHub-37189
  • Los mensajes de bienvenida que contienen comillas simples ahora se representan correctamente en la tienda sin errores de consola. Anteriormente, si un mensaje de bienvenida contenía una comilla simple, el mensaje de bienvenida no se cargaba durante la representación de la tienda. El Magento Open Source también mostraba errores de consola.
  • El Magento Open Source ya no genera un error cuando intenta cambiar rápidamente la vista entre el historial de comentarios y Devuelve en la página Orden de administración. Anteriormente, el Magento Open Source mostraba este error genérico: A technical problem with the server created an error.
  • Los usuarios administradores con privilegios restringidos a un sitio web ahora pueden actualizar los atributos de producto específicos del sitio web establecidos en un all stores view ámbito.
  • El widget de lupa ahora se carga según lo esperado en la página del producto.
  • Las opciones personalizables de varias líneas ahora se representan correctamente en los documentos de PDF de facturas, envíos y notas de abono. Anteriormente, el texto multilínea iba precedido de un salto de página inesperado y, si el texto superaba la página, se truncaba.
  • Los usuarios administradores ahora pueden añadir una nueva dirección de cliente desde el Administrador cuando el cliente se ha creado para otro sitio web cuyo ID de tienda no coincide con el ID de sitio web. Anteriormente, el Magento Open Source mostraba este mensaje emergente: Something went wrong. GitHub-36582
  • Los detalles del administrador de la empresa ahora se guardan según lo esperado y se redirige correctamente a los administradores cuando los correos electrónicos de asignación de administrador de la empresa contienen un CMS Block URL variable.
  • Los mensajes de error asociados con el envío de comentarios en la página de detalles del pedido ahora son más informativos. Anteriormente, cuando un comprador hacía clic en Submit comment sin cambiar el estado del pedido ni introducir texto en el área de comentarios, Magento Open Source mostraba este mensaje: The comment is missing. Enter and try again.
  • El icono de calendario ahora se muestra según lo esperado en los campos de intervalo de fechas del Administrador Marketing > Cart Price Rules después de seleccionar una fecha para un campo. Anteriormente, después de seleccionar una fecha para un campo, el icono del calendario ya no se mostraba en otros campos y el Magento Open Source mostraba el texto del marcador de posición. GitHub-36499
  • Los formularios de registro de cliente que incluyen campos de selección múltiple ahora se cargan correctamente. Anteriormente, este formulario no se cargaba cuando contenía campos de selección múltiple y se activaba el siguiente error: report.CRITICAL: Exception: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /magento2ee/app/code/Magento/CustomAttributeManagement/Block/Form/Renderer/Multiselect.php on line 53 in /lib/internal/Magento/Framework/App/ErrorHandler.php:62. GitHub-37189
  • Al hacer clic en una miniatura de vídeo en el modo de pantalla completa de la galería de productos, ahora el vídeo se muestra según lo esperado. Anteriormente, el vídeo no se mostraba y la consola del explorador mostraba un error de JavaScript. GitHub-36456
  • Se ha agregado una variable a la línea de copyright que se actualiza automáticamente cada año. GitHub-36776
  • El regulador de imagen de la página de producto ahora funciona como se espera en la vista móvil. Anteriormente, solo se mostraba correctamente la primera imagen. GitHub-37232

Reescrituras de URL

  • Las reescrituras de URL ahora se generan en función de la configuración de visibilidad en el nivel de tienda en implementaciones de varias tiendas. Anteriormente, las reescrituras de URL no se generaban para tiendas no predeterminadas cuando la visibilidad del producto se establecía en no visible en el ámbito de almacenamiento predeterminado.
  • Category::getUrl() ya no obtiene una redirección 301. GitHub-38152
  • El Magento Open Source ya no genera reescrituras de URL de producto para categorías raíz y para productos configurados en Not Visible Individually en configuraciones de varias tiendas al generar reescrituras de URL que faltan para tiendas personalizadas.
  • Las etiquetas de URL canónicas ahora reflejan los cambios según lo esperado después de actualizar la propiedad de clave de URL de categoría. Anteriormente, se utilizaba la URL de categoría obsoleta, que activaba inmediatamente la redirección a la nueva URL.
  • Las reescrituras de URL de producto de categoría ahora se generan según lo esperado para todas las vistas de tienda cuando se agrega un producto a una categoría. GitHub-32910
  • El Magento Open Source ya no genera un error cuando intenta crear una redirección 301/302 para una URL de producto cuando Generar reescrituras de URL de categoría/producto está activada. Cuando se crea un producto y se asigna a una categoría, se crean reescrituras de URL automatizadas: una para la URL directa y otra para el producto a través de la ruta de la categoría. Cuando se crea una nueva reescritura de URL de producto, se comprueban las correlaciones entre el producto, la categoría y la tienda. Esta comprobación ahora se basa en las propiedades de entidad correlacionadas (categoría y producto). Anteriormente, esta comprobación se realizaba en reescrituras de URL preexistentes.
  • Las reescrituras de URL de categorías ahora se generan para todas las vistas de tiendas cuando se importa una nueva categoría desde un archivo CSV.
  • Las configuraciones de sufijo de URL de producto y sufijo de URL de categoría ahora coinciden con los sufijos del url_rewrite tabla. Anteriormente, se producían condiciones de carrera al actualizar las configuraciones de sufijos de URL, y los sufijos de URL configurados y el url_rewrite La tabla no coincide.
  • El Magento Open Source ahora procesa el árbol de categorías en todos los niveles al crear reescrituras de URL de categoría. Anteriormente, solo se mostraban los tres primeros niveles de categorías. GitHub-36973
  • Las reescrituras de URL de categorías ahora están presentes en el archivo CSV durante la importación de una nueva categoría.
  • Las páginas de CMS de varias tiendas sin reescrituras de URL ahora se reenvían según lo esperado. Anteriormente, las páginas de CMS de varias tiendas solicitadas sin reescrituras de URL se redirigían a la página principal de la tienda, pero no a las páginas de CMS originales.

Marco de API web

  • El Magento Open Source ya no muestra un Integration not secure advertencia en el administrador System > Extensions > Integrations cuando la variable Callback URL y Identity link URL Los campos de están vacíos. GitHub-36407
  • Se ha añadido la taxes, itemized_taxes, y additional_itemized_taxes atributos de extensión para Magento\Sales\Api\Data\OrderInterface. Estos atributos le permiten guardar los impuestos aplicados con llamadas REST de pedidos.
  • La API de REST de precios de nivel ahora admite cantidades decimales. Anteriormente, esta API no permitía cantidades decimales aunque la variable Use Decimal Quantity se ha habilitado la configuración.
  • El resto V1/orders/{id}/comments el punto de conexión ya no cambia el estado de un pedido al intentar agregar un comentario al estado de un pedido pendiente. Ahora se muestra un error informativo. Anteriormente, este punto final cambiaba el estado del pedido al agregar un comentario.
  • La API de REST GET y POST V1/products/attributes el extremo ya no devuelve el mismo valor para is_filterable atributo para ambos Filterable(with results) y Filterable(no results) opciones del Use in Layered Navigation opción. Anteriormente, este extremo devolvía el mismo valor porque la variable is_filterable la propiedad del atributo era del tipo Boolean, que no permitía establecer esta propiedad en Filterable(no results). GitHub-37979
  • Los desaparecidos media_gallery_entries se ha añadido el campo a REST V1/configurable-products/sku/children punto final. Anteriormente, a esta función le faltaba el código necesario para almacenar y mostrar media_gallery_entries. GitHub-37607
  • El resto V1/carts/mine/estimate-shipping-methods El método ahora valida todos los niveles de datos del campo de carga útil y devuelve un código HTTP 400 para datos no válidos. Anteriormente, solo se validaba el primer nivel de carga útil de API y, si se devolvían datos no válidos en niveles no validados de la carga útil, el Magento Open Source devolvía un código de estado 500.
  • Las operaciones asíncronas masivas de la API de REST para actualizar productos con precios de nivel y diferentes conjuntos de atributos ahora se completan correctamente. Anteriormente, los productos con diferentes conjuntos de atributos no se podían actualizar de esta manera y Magento Open Source mostraba este error: The product was unable to be saved. Please try again.
  • El POST /V1/products/tier-prices el extremo ahora devuelve un mensaje de error más informativo cuando se utiliza un nombre de grupo de clientes no válido durante la creación del precio de nivel. Anteriormente, el Magento Open Source devolvía un error como este: Notice: Undefined index: XXXXX in ~/public_html/vendor/magento/module-catalog/Model/Product/Price/Validation/TierPriceValidator.php on line 474". GitHub-36431
  • Ahora puede ejecutar una solicitud de API asíncrona masiva autorizada para crear clientes con un ID de grupo no predeterminado. Anteriormente, estas solicitudes restablecían el ID de grupo al valor predeterminado.
  • Los clientes creados con la API por lotes ahora reciben correos electrónicos de registro de clientes en el idioma configurado en el sitio web asignado. Anteriormente, todos los correos electrónicos se enviaban a la configuración regional predeterminada, no a la configuración regional del sitio web al que está asignado el cliente.
  • El POST V1/guest-carts la llamada ya no envía pedidos de invitado cuando Allow Guest Checkout está deshabilitada.
  • El Magento Open Source ahora devuelve correctamente el content atributo (código de imagen base64) en GET V1/products/sku/media respuestas de API de medios del producto. El content anteriormente el atributo no aparecía en la respuesta.

Problemas conocidos

Los siguientes problemas conocidos se solucionarán en Adobe Commerce 2.4.7 GA:

Problema: Los servicios nativos de AWS Cloud no son compatibles con PHP 8.3. La compatibilidad con PHP 8.3 se introducirá en Adobe Commerce 2.4.7 GA.

Problema: Las categorías no son visibles para los compradores en tiendas donde la caché está configurada en Fastly CDN (Caching Application=Fastly CDN). Esto afecta tanto a los compradores invitados como a los clientes registrados.

Problema: un producto no se elimina del minicarrito según lo esperado después de que el catálogo compartido que se le ha asignado se haya eliminado del producto.

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 Magento Open Source 2.4.7-beta3 mediante Compositor.

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