Notas de la versión de Adobe Commerce 2.4.7

Adobe Commerce 2.4.7 presenta soporte para PHP 8.3. Presenta cientos de 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. Esta versión incluye mejoras de rendimiento significativas, incluida la carga más rápida de páginas de listas de productos para productos complejos con muchas opciones y mejoras para la administración de indexadores. Esta versión aumenta la cobertura de GraphQL para atributos personalizados y cachés de resolución de GraphQL. También introduce soporte para los servicios de FedEx y UPS recientemente actualizados.

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

Otra información de la versión

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

Puntos destacados de Adobe Commerce 2.4.7

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 las últimas novedades sobre 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 para los métodos setCacheKey o setData).
    • Las claves de caché no generadas para bloques ahora deben contener solo letras, dígitos, guiones (-) y caracteres de subrayado (_).
  • Limitaciones en el número de códigos de cupones generados automáticamente. Commerce 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 usar la nueva opción de configuración Code Quantity Limit (Stores > Settings:Configuration > Customers > Promotions) para evitar que el sistema se vea desbordado por 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.

  • Se agregó compatibilidad con Integridad de los subrecursos (SRI) para cumplir con los requisitos de PCI 4.0 para la verificación de la integridad de scripts en páginas de pago. La compatibilidad con la Integridad de los subrecursos (SRI) proporciona hashes de integridad para todos los recursos de JavaScript que residen en el sistema de archivos local. La función SRI predeterminada solo se implementa en las páginas de pago de las áreas de administración y tienda. Sin embargo, los comerciantes pueden ampliar la configuración predeterminada a otras páginas. Consulte Integridad de los subrecursos en la Guía para desarrolladores de Commerce PHP.

  • Cambios en la directiva de seguridad de contenido (CSP): actualizaciones de configuración y mejoras en las directivas de seguridad de contenido (CSP) de Adobe Commerce para cumplir con los requisitos de PCI 4.0. Para obtener más información, consulte Políticas de seguridad de contenido en la Guía para desarrolladores de Commerce PHP.

    • La configuración predeterminada de CSP para páginas de pago para áreas de administración y tienda de Commerce ahora está en modo restrict. Para todas las demás páginas, la configuración predeterminada es el modo report-only. En las versiones anteriores a 2.4.7, el CSP se configuraba en modo report-only para todas las páginas.

    • Se ha agregado un proveedor nonce para permitir la ejecución de scripts en línea en un CSP. El proveedor nonce facilita la generación de cadenas nonce únicas para cada solicitud. A continuación, las cadenas se adjuntan al encabezado CSP.

    • Se han añadido opciones para configurar URI personalizados para que informen de infracciones de CSP en la página Crear pedido de la página Administrador y Cierre de compra de la tienda. Puede agregar la configuración desde el Administrador o agregando el URI al archivo config.xml.

      note note
      NOTE
      Si actualiza la configuración de CSP al modo restrict, es posible que se bloqueen los scripts en línea existentes en las páginas de pago de la administración y la tienda, lo que provoca el siguiente error del explorador al cargar una página: Refused to execute inline script because it violates the following Content Security Policy directive: "script-src. Corrija estos errores actualizando la configuración de la lista blanca para permitir los scripts necesarios. Consulte Solución de problemas en la Guía para desarrolladores de Commerce PHP.
  • Una nueva configuración de caché de página completa puede ayudar a mitigar los riesgos asociados con el extremo HTTP {BASE-URL}/page_cache/block/esi. Este extremo admite fragmentos de contenido cargados dinámicamente y sin restricciones desde controladores de diseño y estructuras de bloque de Commerce. La nueva configuración Handles params size establece el valor del parámetro handles de este extremo, 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). Vea Configurar la aplicación Commerce para que use Barnish.

  • Límite de velocidad nativo para la información de pago transmitida a través de las API 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 de la consulta GraphQL isEmailAvailable y el extremo REST (V1/customers/isEmailAvailable) ha cambiado. De manera predeterminada, las API ahora siempre devuelven true. Los comerciantes pueden habilitar el comportamiento original estableciendo la opción Habilitar inicio de sesión de cierre de compra de invitados en el Administrador a yes, pero al hacerlo se puede exponer la información del cliente a usuarios no autenticados.

Mejoras de Platform

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

Adobe Commerce 2.4.7 incluye las siguientes actualizaciones de plataforma:

  • Compatibilidad con PHP 8.3. Esta versión incorpora soporte para PHP 8.3. Commerce 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.

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

  • Compatibilidad con RabbitMQ 3.13. Esta versión es compatible con la última versión de RabbitMQ 3.13. La compatibilidad sigue siendo con RabbitMQ 3.11 y 3.12, que es compatible hasta agosto de 2024 y diciembre de 2024 respectivamente, pero el Adobe recomendado usar Adobe Commerce 2.4.7 solo con RabbitMQ 3.13.

  • Compositor 2.7.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 Adobe Commerce 2.4.7 solo con Varnish Cache versión 7.4 o versión 6.0 LTS.

  • Compatibilidad con el Elasticsearch 8.11

  • Opensearch 2.12 y OpenSearch 1.3 admiten

  • Redis 7.2

  • La biblioteca extjs se ha reemplazado con la última versión de jsTree.

  • Se ha quitado la biblioteca jquery/fileUpload.

Todas las bibliotecas de JavaScript y dependencias NPM del código principal de Adobe Commerce se han actualizado a las últimas versiones disponibles. Todas las dependencias de la biblioteca Laminas se han actualizado a la última versión que es compatible con PHP 8.3.

Actualizaciones adicionales

  • Compatibilidad con varios cupones por pedido. Los comerciantes ahora pueden configurar el número máximo de cupones que se pueden aplicar por pedido con la nueva opción de configuración Maximum number of coupons per order. Este valor se establece en 1 de forma predeterminada. Ahora puede usar REST o GraphQL para aplicar varios cupones a un carro de compras.

  • La puerta de enlace de la API XML de Commerce UPS se ha migrado a la nueva API REST de Commerce UPS para admitir las actualizaciones que UPS está realizando en su 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 de UPS de Commerce anteriores se han eliminado de la base de código de Adobe Commerce 2.4.7.

  • La integración de Adobe Commerce integration con FedEx se ha migrado de los servicios web WSDL de FedEx heredados a las API RESTful más recientes 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:

    • Masa para minoristas de USPS
    • Servicio de paquetes de primera clase
    • Terreno de selección de paquetes
  • Los módulos de envío Temando se han eliminado de la base de código Commerce principal. Esta característica quedó obsoleta en Adobe Commerce 2.4.4.

Mejoras de rendimiento y escalabilidad

Commerce 2.4.7 incluye las siguientes mejoras en el rendimiento y la escalabilidad de Commerce:

  • Los comerciantes empresariales ahora pueden configurar hasta un millón de reglas activas de precios de carros de compras basadas en cupones en Adobe Commerce sin que se produzcan degradaciones significativas del rendimiento de las operaciones de carros de compras y pagos.

  • Administración mejorada del indizador. El nuevo comando indexer:set-status admite la administración dinámica del estado del indizador. Los usuarios administradores pueden usar este comando para cambiar el estado del indizador a suspended, invalid o valid. Esta función es especialmente útil para administrar el rendimiento del sistema durante amplias operaciones masivas, como importaciones o actualizaciones de productos, ya que permite controlar cuándo los indexadores se activan automáticamente mediante los trabajos cron del sistema. Consulte Administrar los indexadores.

  • Página de lista de productos para productos complejos con muchas opciones. El tiempo de carga ha mejorado para las páginas de listas de productos que incluyen productos complejos con más de 100 opciones. También ha mejorado el rendimiento de las solicitudes de GraphQL para enumerar productos por categoría.

  • Ahora se admite el formato JSON para la API de importación de REST. Los comerciantes ahora pueden importar hasta 100 000 registros por minuto en Adobe Commerce en formato JSON.

  • Mejoras en el rendimiento de las reglas de ventas. Se ha mejorado el rendimiento de las implementaciones empresariales con muchas reglas de ventas activas (aproximadamente 100 000). Las implementaciones empresariales que implementan en gran medida promociones suelen implementar muchas reglas de carro de compras activas. Estos tipos de implementaciones empresariales que ejecutan Commerce 2.4.7 no verán ninguna degradación de rendimiento relacionada con el número de reglas de precios del carro de compras configuradas durante las operaciones de cierre de compra.

  • Operaciones de guardado más rápidas de las configuraciones de nivel de tienda para implementaciones con muchas tiendas. Guardar las opciones de configuración en implementaciones con más de 500 tiendas puede llevar mucho tiempo. El nuevo módulo Async Config habilita las operaciones asincrónicas de guardado de configuración ejecutando un trabajo cron que usa un consumidor para procesar la operación de guardado en una cola de mensajes. AsyncConfig está deshabilitado de forma predeterminada.

  • Generación más rápida de la caché de configuración para configuraciones grandes. El comando bin/magento cache:clean config ahora calienta previamente la caché de configuración cuando esta está habilitada. Esto reduce el tiempo de inactividad necesario para generar la caché de configuración para configuraciones grandes. Las operaciones de guardado de configuración ya no limpian la caché de config_scopes antes de escribir datos en ella, lo que también reduce el tiempo que otras solicitudes están bloqueadas mientras se escriben los datos de configuración.

GraphQL Application Server

GraphQL Application Server permite a Adobe Commerce mantener el estado entre las solicitudes de API de Commerce GraphQL y elimina la necesidad del arranque, lo que aumenta el rendimiento, reduce la latencia y hace que el uso de recursos sea más eficiente para todas las API de GraphQL. Al compartir el estado de la aplicación entre los procesos, las solicitudes de la API de GraphQL se vuelven mucho más eficientes y las respuestas de la API de GraphQL son un promedio un 30% más rápidas.

GraphQL Application Server solo está disponible para Adobe Commerce. No está disponible para el Magento Open Source. Debe enviar un ticket de asistencia de Adobe Commerce para habilitar GraphQL Application Server en proyectos Pro.

NOTE
GraphQL Application Server no es compatible actualmente con Amazon Simple Storage Service (AWS S3). Los clientes de Adobe Commerce en la infraestructura en la nube que actualmente usan AWS S3 para almacenamiento remoto no pueden usar GraphQL Application Server hasta que Adobe publique una revisión más adelante en 2024.

Metpaquete de extensión de Adobe Commerce

Esta versión presenta la extensión de Adobe Commerce metapackage v2.0.0, que agrupa automáticamente las extensiones de Adobe Commerce seleccionadas con esta versión principal. Las versiones de estas extensiones que se incluyen en este metapaquete se instalan cuando se ejecuta composer update, lo que simplifica el proceso de actualización de estas extensiones al actualizar a la última versión principal. Estas extensiones mantienen programaciones de versiones independientes.

El metapaquete de extensión de Adobe Commerce para Adobe Commerce 2.4.7 incluye estas extensiones:

Las versiones futuras de este metapaquete de extensión pueden contener extensiones adicionales.

Webhooks de Adobe Commerce

Los webhooks de Commerce (v1.2.0 ) permiten a los desarrolladores configurar la lógica sincrónica para ejecutar llamadas a sistemas externos cuando se produce un déclencheur de evento de Adobe Commerce. Las llamadas sincrónicas son necesarias cuando Commerce debe calcular o validar inmediatamente un valor como un total de pedido, impuestos o pagos mediante un punto de conexión de terceros y, a continuación, escribir el resultado de nuevo en Adobe Commerce.

Los webhooks de Commerce ahora están instalados de forma predeterminada. Ver Información general sobre Webhooks de Adobe Commerce

Adobe Stock

El paquete de Adobe Stock (adobe-stock-integration) ahora está empaquetado en el metapaquete de extensiones de Commerce (extensions-metapackage) para admitir actualizaciones más frecuentes.

B2B

NOTE
La versión 2.4.7 es compatible con B2B 1.4.2. Sin embargo, Adobe recomienda que los clientes esperen a la próxima versión de B2B 1.5.0 GA antes de la actualización, que incluye compatibilidad con PHP 8.3. Ver notas de la versión B2B.

Braintree

  • Vaulted PayPaly Pay Later cambios: Los clientes que iniciaron sesión y que previamente han ingresado o almacenado su cuenta PayPal tienen la opción de pagar con:

    • Pay Now (sin tener que iniciar sesión en su cuenta de PayPal, el usuario puede pagar con su tarjeta predeterminada)
    • Pagar con una fuente de financiación diferente
    • Paga con una cuenta diferente
    • Botón PayPal Pay Later o PayPal Credit
  • Compatibilidad con 3DS paraGoogle Pay: se ha incluido la compatibilidad con la verificación 3DS para las tarjetas sin tokenización Google Pay. Consulte la documentación del Braintree para obtener más información.

  • Vault Apple Pay Payments: permite que los clientes que iniciaron sesión guarden o almacenen sus pagos de Apple Pay en su cuenta de la tienda Commerce para usarlos en transacciones futuras. Esto reduce el número de pasos en el cierre de compra y crea una experiencia de cierre de compra más rápida para el cliente que regresa.

  • Vault Google Pay Payments: permite que los clientes que iniciaron sesión guarden o almacenen sus pagos de Google Pay en su cuenta de la tienda Commerce para usarlos en transacciones futuras. Esto reduce el número de pasos en el cierre de compra y crea una experiencia de cierre de compra más rápida para el cliente que regresa.

  • Vault Venmo Payments: permite que los clientes que iniciaron sesión almacenen sus cuentas de Venmo en su cuenta de la tienda Commerce para usarlas en transacciones futuras. Esto reduce el número de pasos en el cierre de compra y crea una experiencia de cierre de compra más rápida para el cliente que regresa.

  • Vault ACH Payments: permite a los clientes que iniciaron sesión almacenar sus pagos ACH en su cuenta de la tienda Commerce para usarlos en transacciones futuras. Esto reduce el número de pasos en el cierre de compra y crea una experiencia de cierre de compra más rápida para el cliente que regresa.

  • Express Paymentbotones en la parte superior del cierre de compra: Para alentar una experiencia de cierre de compra más rápida, hemos introducido Express Payment opciones al principio del cierre de compra. Los clientes ahora pueden pagar PayPal, PayPal Pay Later, Apple Pay y Google Pay Express pagos.

  • Braintreenotas de la versión y vínculos de soporte técnico dentro de la Configuración de administración: los comerciantes ahora pueden vincular directamente desde el administrador de Commerce a la asistencia del Braintree y a las notas de la versión en línea.

  • Compatibilidad de GraphQL con todos los métodos de pago de Braintree exceptoVenmo: se exponen más configuraciones en la API de GraphQL. Esto resulta especialmente útil en aplicaciones sin encabezado.

  • Vaultingpagos en el área de cuenta—Los clientes que iniciaron sesión ahora pueden guardar/almacenar nuevas tarjetas de crédito/débito y PayPal cuentas en el área de cuenta de cliente. Anteriormente, los clientes solo podían almacenar al guardar sus pagos para usarlos más adelante al completar una transacción en el cierre de compra, ahora pueden almacenar nuevas tarjetas de crédito/débito y cuentas de PayPal sin necesidad de crear una nueva transacción.

  • Transacciones sin complicaciones: las transacciones sin complicaciones aceleran el proceso de pago al reducir la cantidad de clics o pasos del cliente para completar una transacción con tarjeta de crédito o débito en línea. Anteriormente (cuando se habilitaba 3DS), todos los clientes se enfrentaban a 3DS. Con la nueva función de transacciones sin fricción, los clientes solo son desafiados para 3DS cuando el banco lo solicita. Esto reduce el abandono del carro de compras, aumenta las tasas de conversión y genera más ventas.

  • Webhooks de disputas: cuando un cliente disputa una transacción en Braintree, el estado de la disputa ahora se pasa a Commerce. Se puede buscar en la cuadrícula Sales > Order y se adjunta a cada pedido.

Integración de Commerce con Adobe IMS

El paquete de integración de IMS de Adobe (adobe-commerce/adobe-ims-metapackage) ahora está empaquetado en el metapaquete de extensiones de Commerce (extensions-metapackage) para admitir actualizaciones más frecuentes.

GraphQL

Commerce 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 más flexible del carro de compras. La mutación clearCart ahora borra el contenido de un carro de compras especificado en una sola acción. Reemplaza la mutación clearCustomerCart, que ha quedado obsoleta.

  • Mejoras en la creación de mutaciones de carrito. La mutación createGuestCart se ha agregado para reemplazar la mutación createEmptyCart obsoleta. Anteriormente, si utilizaba createEmptyCart, no podía determinar si el carro era para un cliente invitado o con sesión iniciada.

  • Los artículos de pedido 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 manera más eficiente. GitHub-32369

  • Se ha ampliado la compatibilidad 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
  • Compatibilidad con la cancelación de pedidos. La mutación cancelOrder 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. Algunas áreas específicas de mejora son:

    • 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 capacidades 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 agregó el campo quickorder_active a las consultas storeConfig y availableStores. Este campo indica si la función de orden rápido está activada.

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

    • fax
    • middlename
    • prefix
    • suffix

Nuevas consultas y mutaciones

Consultas y mutaciones obsoletas

Inventory management

Inventory management (v1.2.7) 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.

Pagos

  • Se ha agregado compatibilidad con GraphQL para las operaciones principales de todos los métodos de pago, excepto Venmo. Los nuevos extremos de GraphQL para los servicios de pago se describen en Cierre de compra.

  • El depósito de tarjetas de crédito se ha mejorado para todos los métodos de pago, excepto para Venmo. Los compradores ahora pueden Vault, o guardar, sus pagos ACH y verlos o eliminarlos de su página de cuenta. Los comerciantes pueden activar y desactivar los pagos abovedados ACH desde el administrador.

  • El flujo de trabajo de pago ahora incluye una sección de pago rápido que proporciona los botones PayPal, Google Pay y Apple Pay Express.

Opciones de pago presenta métodos de pago compatibles.

PWA Studio

PWA Studio v14.0 es compatible con Adobe Commerce 2.4.7. Incluye varias mejoras para mejorar la accesibilidad. Para obtener información acerca de las correcciones de errores, consulte Versiones de PWA Studio. Consulte Compatibilidad de versiones para obtener una lista de versiones de PWA Studio y sus versiones principales de Adobe Commerce compatibles.

Marco de API web

Trabajando con varios cupones por carrito

Los nuevos extremos REST admiten la visualización, adición y eliminación de varios cupones asociados a un carro de compras.

NOTE
Por primera vez, varias rutas de extremo REST contienen la cadena V2 en lugar de V1. Por ejemplo, GET /rest/default/V2/carts/{cartId}/coupons. Para los comerciantes de Commerce, estos extremos están pensados para reemplazar las versiones V1 de los extremos. Estos extremos sólo están disponibles en Adobe Commerce.

Devolver todos los códigos de cupón asociados a un carro de compras:

GET /rest/{store_code}/V2/carts/{cartId}/coupons
GET /rest/{store_code}/V2/carts/mine/coupons

Anexe un código de cupón a un carro de compras:

POST /rest/{store_code}/V2/carts/{cartId}/coupons/{couponCode}
POST /rest/{store_code}/V2/carts/mine/coupons/{couponCode}

Reemplazar códigos de cupones en un carro de compras:

PUT /rest/{store_code}/V2/carts/{cartId}/coupons
PUT /rest/{store_code}/V2/carts/mine/coupons

Eliminar códigos de cupones de un carro de compras:

POST /rest/{store_code}/V2/carts/{cartId}/coupons/deleteByCodes
POST /rest/{store_code}/V2/carts/mine/coupons/deleteByCodes

Puntos finales adicionales
Esta versión introduce dos nuevos extremos de REST que proporcionan una solución para una limitación con los extremos de API de REST GET y POST V1/products/attributes. Estos extremos devuelven el mismo valor para el atributo is_filterable para las opciones Filterable(with results) y Filterable(no results) de la opción Use in Layered Navigation. (La propiedad del atributo is_filterable es del tipo Boolean, lo 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 de acceso: attributeCode (String) y isFilterable (int 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 de acceso: attributeCode (String).

Problemas solucionados

Hemos corregido cientos de problemas en el código principal de Adobe Commerce 2.4.7. A continuación, se describe un subconjunto de los problemas corregidos que se incluyen en esta versión. También se describen las correcciones incluidas en las versiones anteriores de Commerce 2.4.7-beta.

Instalación, actualización e implementación

  • Se ha eliminado la manipulación de caché innecesaria del proceso de configuración. Anteriormente, Commerce escribía su configuración en el disco de forma innecesaria cuando se ejecutaba bin/magento setup:db-data:upgrade o bin/magento setup:upgrade, lo que causaba 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 comando bin/magento setup:upgrade ya no falla debido a errores de memoria excedida relacionados con tablas MySQL grandes.
  • bin/magento setup:install ahora se completa correctamente después de eliminar app/etc/config.php. Anteriormente, el archivo que faltaba no se regeneraba durante la instalación y Commerce 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 los indizadores mview asociados. GitHub-37304
  • La restauración de la base de datos ya no falla debido a un error de delimitador. Anteriormente, Commerce arrojaba este error cuando se ejecutaba bin/magento setup:rollback --db: 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 comando bin/magento setup:upgrade 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, Adobe Commerce arrojó 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 ;;.
  • Al ejecutar setup:config:set sin especificar el parámetro --lock-db-prefix, ya no se borra el valor actual del archivo env.php.
  • 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.
  • Los compradores ahora pueden realizar un pedido en una implementación que implementa la base de datos dividida cuando Checkout Async está habilitado. Anteriormente, Adobe Commerce arrojó este error: An error occurred on the server. Please try to place the order again.
  • bin/magento setup:upgrade ahora se completa correctamente al instalar un nuevo módulo que instala ambas tablas y los indizadores mview asociados.
  • bin/magento setup:upgrade muestra ahora 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 muestra ahora 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

  • Los gráficos ahora están desactivados correctamente de forma predeterminada en el panel. GitHub-38430
  • El menú Administración de ventas ahora muestra correctamente los submenús. Anteriormente, el salto de columna no funcionaba correctamente y algunos submenús no se mostraban. GitHub-37812
  • Las opciones del menú desplegable Select ahora están visibles en Administración Content > Pages cuando se seleccionan varias páginas en la cuadrícula. GitHub-35386
  • Se corrigió la ruta de acceso al valor predeterminado de system/dashboard/enable_charts en las opciones de configuración. Los gráficos ahora se muestran en el Administrador según lo esperado. GitHub-37668
  • 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 enlace 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 títulos de submenú ahora indican cualquier elemento del mismo nivel, independientemente del nivel de acceso asignado al usuario. Anteriormente, esta información se ocultaba a los usuarios administradores con acceso limitado, incluso si existían varios grupos del mismo nivel para el submenú.
  • Los sufijos de título de página ahora se incluyen en la etiqueta title y en la etiqueta meta title para las páginas de producto. GitHub-37680
  • La condición de estado de stock de productos ahora se aplica correctamente a las reglas de productos relacionadas.
  • El botón Login as Customer ahora se muestra correctamente en dispositivos móviles.
  • Adobe Commerce ya no muestra el botón Administrador Add new customer group 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 memoria 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
  • La cuadrícula de pedidos archivada ahora se actualiza asincrónicamente con nuevos estados de pedidos según lo esperado. Un enfoque basado en eventos para actualizar el estado de los pedidos en la cuadrícula del archivo da como resultado un estado de los pedidos preciso, incluidos los reembolsos posteriores a la nota de crédito.
  • Ahora, el menú desplegable de acciones de la cuadrícula de administración puede situarse, como se espera, sobre un vínculo seleccionado para Content > Pages (y los catálogos compartidos en el módulo B2B). Anteriormente, este menú estaba oculto y los usuarios administradores tenían que desplazarse para ver las opciones. GitHub-36710

Analytics

  • Las propiedades de la página de detalles del producto meta itemprop="image" y meta itemprop="description" ya están disponibles para la imagen de producto principal. GitHub-37497
  • La sección Informe de la cuadrícula Productos en los carros de compras ahora muestra el precio de producto correcto cuando Catalog Price Scope está establecido en Website. Anteriormente, el precio del producto se mostraba como cero cuando se asignaba a un sitio web distinto del predeterminado.
  • Los informes de ingresos ahora se muestran según lo esperado en el portal de Google Analytics (GA4). GitHub-37605
  • Los valores price y quantity de la capa de datos del Administrador de etiquetas de Google ahora se envían como valores numéricos según lo esperado a los Google Analytics. Anteriormente, estos valores se enviaban como cadenas.
  • Se han resuelto errores en la administración de datos de encabezado al enviar datos de implementación al módulo de New Relic.
  • Las etiquetas de Google Analytics 3 ahora se activan como se espera cuando las etiquetas de Google Analytics 4 están desactivadas.

Titular

  • Se ha refactorizado la forma en que se carga el contenido del banner para eliminar el exceso de consultas de base de datos, lo que mejora los tiempos de carga del carro de compras.

Paquete de productos

  • El recuento de productos de categoría ahora contabiliza correctamente los productos agrupados cuando Display Out Of Stock* está habilitado.
  • La consulta customerCart ahora devuelve todos los descuentos aplicados en 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, Commerce 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 corrigió un error que se produce cuando se utiliza el extremo POST V1/shipment 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 guardar una actualización programada de un producto del paquete que incluye un producto simple que tiene una actualización programada indefinida. Cuando se crea la instantánea del producto del paquete, los productos vinculados ahora se capturan por ID, ID de entidad y también por SKU. Anteriormente, la versión original del producto simple se comprobaba cuando se guardaba la actualización programada en el producto del paquete en lugar de la versión actual del producto simple.
  • Ahora puede usar la ruta de la API GET V1/shipment/ para crear un envío con un producto agrupado cuando el producto tenga establecido el tipo de envío together. 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 mostraban un error. GitHub-37696
  • Los productos agrupados ahora se pueden agregar correctamente a un pedido del administrador usando SKU que contengan un carácter de barra diagonal (/). Anteriormente, los usuarios administradores no podían utilizar este método para agregar productos a un pedido de administración y Commerce 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, Adobe Commerce 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.
  • Se han resuelto los problemas de rendimiento al agregar productos agrupados con opciones no requeridas al carro de compras mediante la mutación addBundleProductsToCart.
  • La consulta categoryList ahora devuelve todas las opciones de paquete como se espera cuando la configuración Show out-of-stock products está habilitada. Anteriormente, las opciones sin existencias no se incluían en la respuesta de consulta.
  • Los productos agrupados creados con POST V1/products ahora se realizan 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 categorías ahora están visibles para los compradores en tiendas donde la caché está configurada en Fastly CDN (Caching Application=Fastly CDN). Esto afectó tanto a los compradores invitados como a los clientes registrados.
  • 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 Commerce 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 POST V1/products actualiza un producto simple. 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

  • Commerce 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.
  • Adobe Commerce ahora muestra un mensaje de error informativo cuando se produce un error durante el cierre de compra y ya no devuelve al comprador a un paso de cierre de compra anterior. Anteriormente, el comprador se devolvía a la página de envío.
  • La consulta cart ya no devuelve el método y la dirección de envío de los carros de compras 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.
  • Commerce ahora muestra mensajes informativos cuando se activa una acción de complemento al carro de compras. Anteriormente, The requested qty is not available no siempre se mostraba en la tienda como era necesario.
  • Se han mejorado los tiempos de carga de las páginas de cierre de compra para los clientes con libretas de direcciones grandes. Commerce ahora procesa solamente el número de direcciones de clientes especificadas en la configuración Customer Addresses Limit. Anteriormente, Commerce 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 filtro de atributos de producto AdvancedSalesRule ahora funciona correctamente con el tipo de backend de atributo decimal. Como resultado, las reglas del carro de compras con Coupon Type establecido en No Coupon ahora funcionan 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
  • La casilla de verificación My billing and shipping address are the same 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 que se vuelva a cargar el bloque de métodos de envío. GitHub-33725
  • El valor applied_rule_ids de la tabla quote_item incluye ahora una lista correcta de identificadores 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.
  • La dirección de envío predeterminada en el paso de envío de cierre de compra ya no se rellena con la dirección de picking en tienda seleccionada anteriormente.
  • Los productos del carro de compras ya no se excluyen de las listas de productos relacionados y de ventas adicionales después de vaciar la caché.
  • 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 la configuración predeterminada de cálculo de destino de impuestos y especificar el estado/región y el ZIP, solo se mostraba el valor ZIP en el carro de compras en Estimate Tax and Shipping. Esto se debía a que Adobe Commerce 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.
  • Adobe Commerce ya no genera este error durante el cierre de compra cuando se habilita el carro de compras persistente: Invalid state change requested. Anteriormente, cuando se generaba este error, ocasionalmente se creaban varios pedidos con el mismo quote_id.
  • 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.
  • Se ha mejorado el rendimiento de las reglas de segmentos de clientes que dependen de carros de compras activos, lo que ha reducido el tiempo necesario para agregar un producto al carro de compras.
  • La estimación de envío proporcionada desde la página del carro de compras ahora es precisa. collectShippingRates ahora se establece solamente una vez. Anteriormente, la estimación de envío se duplicaba. GitHub-36648
  • La consulta cart ya no devuelve un error cuando un producto del carro de compras 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.
  • Las solicitudes de la API de invitado a POST V1/guest-carts/<cartId>/shipping-information ya no devuelven el estado cancel si la página se vuelve a cargar durante el inicio de sesión en un entorno móvil. Anteriormente, Adobe Commerce arrojó un error 500 y registró 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 como se espera cuando se aplica la condición Subtotal (Excl. Tax) para las reglas del carro de compras. GitHub-36760
  • La consulta cart ahora devuelve los precios de nivel correctos 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 de carro de compras ahora incluye la opción total (incl.tax) según lo esperado. GitHub-34871
  • La condición de regla de precio de catálogo If an item is FOUND/NOT FOUND in the cart with ALL/ANY of these conditions true 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 extensión Magento_OfflineShipping deshabilitada. Anteriormente, Adobe Commerce arrojó 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, el valor applied_rule_ids nunca se cambiaba en la tabla sales_order_item y la regla de precio del carro de compras no se aplicaba al pedido.
  • Al ejecutar bin/magento cache:clean o bin/magento cache:flush, ya no se vacía toda la caché integrada o de página completa de Barnish a menos que se especifique lo contrario. GitHub-38301
  • Los comerciantes ahora pueden usar el carrusel de productos para crear bloques de CMS cuando catalog_product_price dimensions-mode está establecido en website. Anteriormente, Commerce no guardó el bloque y arrojó este error SQL: report.CRITICAL: PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table.
  • Commerce 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 la carpeta pub/media/catalog/product. 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 indizador en almacenes con catálogos grandes. GitHub-32382
  • Commerce ya no inserta texto de descripción de producto en el campo de la página de detalles del producto Meta Description cuando este campo se ha dejado vacío. Anteriormente, cuando una descripción de producto contenía código de HTML generado por Page Builder u otro editor de HTML, el HTML se mostraba en el campo Meta Description y no se podía 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 comando 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.
  • Los metadatos con valores NULL o NOT NULL ahora se guardan para el almacén predeterminado de acuerdo con la casilla de verificación Usar valor predeterminado según lo esperado. Anteriormente, los metadatos con el valor NULL no se guardaban 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.
  • La consulta productDetail devuelve ahora el nombre del producto en lugar de nulo cuando el atributo de la imagen de producto alt está establecido 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, url_path no se actualizaba con el identificador de almacén adecuado.
  • El extremo REST V1/products/<sku>/media ahora puede procesar la carga simultánea de varias imágenes multimedia. Anteriormente, al procesar varias solicitudes simultáneamente, se creaban datos incoherentes y Commerce 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, el trabajo cron de indexer_update_all_views ejecutaba reindexadores varias veces por producto o categoría individual.
  • 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 configuración stock_status_changed_auto se omitía cuando la configuración de existencias de un producto se actualizaba a En existencias.
  • La ordenación de la barra de herramientas ahora funciona como se espera en las páginas de búsqueda cuando la configuración Remember Category Pagination está habilitada. GitHub-33220
  • Los atributos de selección múltiple ahora se guardan como se espera cuando se selecciona la casilla de verificación Use Default Value en el ámbito de vista de tienda. Anteriormente, esta casilla de verificación no estaba marcada 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, Commerce 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.
  • Los valores special_from_date, special_to_date, news_from_date y news_to_date definidos por el usuario no se anulan cuando se edita un producto en el ámbito de vista de tienda.
  • Commerce 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 el almacén. GitHub-36208
  • La mutación addProductsToCart ahora devuelve opciones personalizables con datos. Anteriormente, solo devolvía opciones personalizables vacías. GitHub-37599
  • La posición del producto y la selección de ID ahora se muestran correctamente cuando un usuario administrador agrega un nuevo producto a una categoría después de borrar la caché, pero no recargando la página de categoría. Anteriormente, la posición y la selección del producto no coincidían y se mostraban incorrectamente.
  • Los comerciantes ahora pueden actualizar la fecha u hora de inicio futuras de un cambio programado para un producto descargable. Anteriormente, Adobe Commerce arrojaba este error durante la actualización de la fecha u hora de inicio futuras del producto descargable: The downloadable link isn't related to the product. Verify the link and try again.
  • 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.
  • 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, Adobe Commerce arrojaba un error. GitHub-37519
  • Los productos exportados ahora tienen el valor manage_stock correcto cuando el valor use_config_manage_stock es igual a 1. Anteriormente, este valor predeterminado era incorrecto.
  • Adobe Commerce 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 categoría de la tabla catalog_category_product_index. 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á deshabilitado. 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 puede habilitar el campo Use in Layered Navigation Catalog cuando el valor del campo Catalog Input Type for Store Owner sea 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 está establecido 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, al importar precios de productos cuando había varias filas disponibles con el mismo SKU y store_view_code, se producían 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, Adobe Commerce 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.
  • Adobe Commerce ahora devuelve un resultado válido para la fecha personalizada 01/01/1970. Anteriormente, el atributo personalizado devolvió este error: Invalid input datetime format of value '1/01/1970. GitHub-37274
  • routes 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
  • Se han resuelto los problemas con el proceso de reindexación parcial de cataloginventory_stock y ha mejorado el rendimiento del indizador. Anteriormente, las categorías de stock y producto no se actualizaban con precisión.
  • Adobe Commerce 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.

Productos configurables

  • Los comerciantes ahora pueden seleccionar Skip quantity at this time y Skip image uploading at this time al configurar un producto configurable sin afectar el origen de los productos simples asociados. Anteriormente, al seleccionar Skip quantity at this time, desaparecían los orígenes del producto.
  • La etiqueta As low as ya no se muestra 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.
  • 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

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 campo 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 extremo GET V1/coupons/<couponId> ahora devuelve la respuesta esperada completa para los cupones creados manualmente, tal como lo hace para los cupones generados automáticamente. Anteriormente, se omitían algunos campos (por ejemplo, usage_limit, usage_per_customer y created_at).

cron

  • El trabajo cron aggregate_sales_report_bestsellers_data ya no crea tablas temporales MySQL 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 provocar No space left on device errores.
  • El número de registros pendientes en la tabla cron_schedule se ha reducido al evitar que los trabajos cron intenten adquirir bloqueos de trabajos cron innecesarios. Anteriormente, los trabajos cron intentaban adquirir bloqueos cuando era demasiado tarde para ejecutar el trabajo. Los trabajos cron de cron_schedule no se marcaron como omitidos aunque ya habían pasado la hora programada. Commerce también mostró 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 proceso de cron sales_clean_quotes se ha optimizado para que se ejecute más rápido al agregar 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 está realizando el proceso bin/magento cron:run en este momento. El título del proceso que se está ejecutando ahora enumera los nombres de grupo y trabajo. GitHub-34321

Cliente

  • Adobe Commerce ahora muestra los campos Date of Birth, Tax/VAT Number, Gender, Telephone, Company y Fax en la página Editar cliente en función de la configuración. GitHub-36196

Segmentos de cliente

  • Las condiciones del segmento de cliente ahora cargan todos los clientes coincidentes según lo esperado. Anteriormente, la lista de clientes coincidentes con el segmento de cliente no contenía todos los clientes coincidentes.

EAV

  • El indexador EAV ya no requiere la eliminación de las entidades no visibles durante el procesamiento por lotes. De forma predeterminada, el indizador ya no agrupa productos no visibles y el rendimiento del indizador ha mejorado.

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, Commerce 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 contienen dos puntos desde la sección Almacenar direcciones de correo electrónico de Administración 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.
  • Las opciones de imagen ya no se muestran como marcado de HTML en los correos electrónicos de cliente de devoluciones (plantilla predeterminada) para productos con opciones de imagen personalizadas.
  • 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 la asignación de administradores de la empresa contienen una variable CMS Block URL.
  • 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 envía ahora un mensaje de correo electrónico para avisar a los clientes de que un pedido está listo para su recogida únicamente cuando el pedido está listo. Ahora, el correo electrónico solo se activa cuando se ha satisfecho la solicitud sin excepción.

Marcos

  • Se ha mejorado la depuración al agregar el valor UNCACHEABLE al generar un encabezado HTTP con Barniz en uso. Anteriormente, solo se producían HIT o MISS valores. GitHub-37912
  • Se ha agregado código para admitir el control predeterminado de la compresión de Barniz. GitHub-38309
  • El comando bin/magento varnish:vcl:generate ahora incluye un input-file argument. Esto admite la adición de una VCL personalizada a un repositorio Git, en relación con la raíz de Commerce. GitHub-37363
  • Se ha eliminado de la base de código la compatibilidad con Varnish 4.x y 5.x. GitHub-38304
  • phpcodesniffer-composer-installer en composer.json se ha actualizado a la versión 1.0.0. GitHub-36913
  • Los caracteres que no cumplen con RFC3986 se han eliminado de la base de código. GitHub-38355
  • Se ha corregido una etiqueta doc PHP incorrecta en la clase Magento\Reports\Block\Adminhtml\Shopcart\Product\Grid. GitHub-38186
  • Código refactorizado en toda la base de código que se creó cuando la práctica de codificación dictaba que cualquier sección de caché que se incluyera en el archivo app/etc/env.php incluiría una sección de front-end. Esta refactorización soluciona posibles problemas al actualizar las implementaciones de Commerce anteriores a la versión 2.4.4. GitHub-38363
  • Se ha aclarado el mensaje de error asociado con StockItemValidator.php cuando se proporciona un identificador de stock con un valor de 0 durante una llamada de API. GitHub-31107
  • Se agregó una matriz vacía predeterminada a $tagGenerators en CompositeTagGenerator para evitar errores durante la compilación de inyección de dependencia. Anteriormente, la ejecución del comando bin/magento setup:upgrade cuando los módulos Magento_DirectoryGraphQl y Magento_StoreGraphQl estaban deshabilitados generó un error. GitHub-38165
  • La clase AlgorithmProviderFactory no utilizada se ha quitado, así como las dependencias de esta clase en clases como JweAlgorithmManagerFactory.php, JweContentAlgorithmManagerFactory.php y JwsAlgorithmManagerFactory. GitHub-37783
  • El archivo var/log/system.log ya no contiene main.INFO error mensajes. El registro de entrada de menú se ha movido del nivel INFO a DEPURACIÓN. Anteriormente, el archivo var/log/system.log 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 el valor "False". Se ha agregado verificación al proceso de precarga para evitar que array_combine reciba false como segundo argumento. Como resultado, la precarga seguirá ejecutándose cuando exec() devuelva false. GitHub-37509
  • Se refactorizó el módulo Magento_CatalogWidget para reemplazar $block funciones de escape con $escaper funciones de escape. GitHub-37107
  • Swaziland se ha actualizado a Eswatini en todo el código base. GitHub-37873
  • Se ha añadido la nueva moneda nicaragüense (NIO) a la lista de monedas disponibles.
  • Se cambió el nombre de la variable reponseBody a responseBody en app/code/Magento/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 comando bin/magento setup:upgrade ya no falla debido al tipo de datos de la variable $schemaPatch. Anteriormente, el valor de cadena se pasaba a la función get_class, lo que provocó el error. GitHub-37545
  • Ya no se producen errores críticos de lectura de base de datos cuando synchronous_replication está habilitado para conexiones esclavas en Adobe Commerce Cloud.
  • La conexión con 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 el consumidor. Anteriormente, la conexión se terminaba.
  • El módulo principal magento/module-release-notification 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 los menús desplegables de la Dirección del administrador State. GitHub-33698
  • El ticker de cuenta atrás de evento ahora se muestra según lo esperado en la página de categoría.
  • La etiqueta @author prohibida se ha eliminado de la base de código, incluidos estos módulos: Magento_user-variable-wee, Magento_Catalog, y Magento_Customer, Magento_Wishlist, Magento_Review Tax, y en todo el marco de trabajo. GitHub-37245, GitHub-37246, GitHub-37249, GitHub-37263
  • El serializador JSON del módulo User se ha reemplazado por un serializador nuevo y más preciso (JsonHexTag). Anteriormente, Commerce a veces se bloqueaba al intentar utilizar datos serializados por el serializador normal cuando contenía elementos sin escape. GitHub-31377
  • Ya no se producen errores de canalización rotos 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, Commerce 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.
  • Los formatos temporales marcados con un comentario /* mariadb-5.3 */ ya no causan 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
  • Los comandos bin/magento config:show y set que utilizan variables $_ENV ahora admiten el uso del sitio web y almacenan códigos que contienen caracteres en minúscula o en mayúscula.
  • Se agregaron clases con !important como se usa en Tailwind 3 para la compatibilidad con el diseño CSS. GitHub-37568
  • Se ha agregado una dependencia jQuery que falta al archivo trim-input.js. GitHub-37683
  • Los detalles específicos del evento ahora se pasan como un segundo atributo (context) del método log. 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
  • El estado del registro mview_state ahora indica con precisión el estado basado en la actividad changelog cuando hay una conexión de base de datos esclava disponible. Anteriormente, estos registros permanecían en estado waiting en implementaciones de nube incluso cuando no había entradas nuevas en el registro de cambios.
  • Se agregó compatibilidad con la opción precision para el formato de moneda a fin de conservar la paridad de características con la clase ZendCurrency obsoleta.
  • 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 Commerce está conectada al almacenamiento de S3. Anteriormente, Commerce mostraba este error: Cannot create image resource. File not found. GitHub-35706
  • Adobe Commerce 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 nombre Administrators se ha eliminado de la consulta utilizada para recuperar un rol de administrador durante la creación del rol de administrador. GitHub-36998
  • El comando bin/magento setup:config:set ya no da error cuando se incluye un nombre de usuario de base de datos no válido en el archivo app/etc/env.php. 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 de SQL en var/log/exception.log. GitHub-37423
  • Se agregó AddDataForCostaRica.php para proporcionar información de estado 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 los 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, el método toCurrency ignoraba el parámetro position. Este problema se producía en toda la interfaz de administración.
  • Código obsoleto refactorizado relacionado con la creación de propiedades dinámicas en toda la base de código.
  • Los formatos de estilo personalizados que se crearon ampliando el editor TinyMCE en las versiones de Adobe Commerce y Magento Open Source anteriores a la 2.4.6 ahora están disponibles como se espera en el tipo de contenido de Page Builder text. Anteriormente, el formato de estilo personalizado se ignoraba y solo se cargaban los formatos predeterminados después de actualizar a Adobe Commerce 2.4.6-p1. GitHub-36950
  • Se agregó la siguiente nota informativa al archivo quote.php: Important: This method also copies customer data to quote and removes quote addresses. GitHub-37400
  • La creación de instancias del proveedor de bloqueo ahora pasa por la clase \Magento\Framework\Lock\Proxy. El proveedor de bloqueos ahora está configurado con la configuración lock a través del archivo app/etc/env.php.
  • 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 la tabla inventory_reservation.
  • La función populateWithArray ahora transforma correctamente las propiedades del objeto en un caso de serpiente, lo que la hace compatible con los captadores y establecedores de AbstractModel. 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 de la tabla catalog_product_entity_varchar ahora se incrementa correctamente después de guardar un producto. Anteriormente, este valor aumentaba en diez.
  • Adobe Commerce ya no emite 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 en 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 espacio en blanco innecesario de id atributos que no lo requieren. (Este error se introdujo mediante un cambio de código de Adobe Commerce 2.4.6).
  • 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 han refactorizado para eliminar alias de importación engañosos. GitHub-31373
  • Los usuarios administradores ahora pueden eliminar o cambiar el nombre de un archivo de sitemap.xml según lo esperado. 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.
  • Adobe Commerce 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 agregado compatibilidad con más clases de HTML a elements.xsd. GitHub-36891

Correcciones generales

  • Se cambió el nombre de la variable reponseBody a responseBody en 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
  • Los compradores ahora pueden acceder a páginas configuradas como nodos de jerarquía cuando las restricciones de acceso están habilitadas. Anteriormente, se producía un bucle de redirección infinito y el explorador arrojaba este error: ERR_TOO_MANY_REDIRECTS.
  • 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, Commerce arrojaba 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.
  • La condición Is one of de la regla de producto relacionada ahora funciona correctamente cuando se configura con la configuración Productos para que coincidan con. Anteriormente, esta regla no identificaba ningún producto.
  • La cuadrícula de página de CMS ahora filtra páginas en función de la vista de tienda asignada al usuario administrador. Anteriormente, el ámbito de la función no se aplicaba.
  • Ahora las contraseñas se muestran según lo esperado cuando la casilla de verificación Show Password de la página de inicio de sesión está activa.
  • La validación del atributo de sistema del token de restablecimiento de contraseña de la entidad del cliente (rp_token) 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 solo se incluye en el correo electrónico del cliente resultante. Anteriormente, Commerce no guardó el registro de cliente y mostró 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 administradores de la empresa ahora pueden agregar usuarios de la empresa desde la tienda. Anteriormente, Commerce registraba este error cuando el usuario administrador intentaba agregar un nuevo usuario: report.CRITICAL: Error: Call to a member function __toArray() on null in app/code/Magento/LoginAsCustomerLogging/Observer/LogSaveCustomerObserver.php:123.
  • 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.
  • El campo de la dirección del cliente administrador Estado/Provincia ahora conserva el último valor guardado según lo esperado. Anteriormente, cuando se quitaba el valor de este campo, Commerce seguía mostrando el valor eliminado en el campo Estado/Provincia. GitHub-36846
  • Adobe Commerce ya no genera un error de infracción de restricción cuando anula la selección por primera vez y, a continuación, selecciona una página de CMS recién creada.
  • Ahora se asigna correctamente una raíz de sitio web de jerarquía a una página de CMS recién creada. Anteriormente, la selección de la raíz del sitio web de jerarquía no coincidía en las páginas de CMS recién creadas.
  • Ya no se producen errores durante las solicitudes de una fuente RSS para categorías cuando RSS Feed Top Level Category está habilitado. Anteriormente, al examinar la página de categoría de fuente RSS se producían errores del Elasticsearch CRITICAL en los archivos de registro al habilitar RSS Feed Top Level Category.
  • Ahora se guarda el valor correcto 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 se seleccionaba el ámbito de rol como All, el valor gws_store_groups se guardaba como nulo durante la creación del usuario, pero no durante la edición de roles. Además, si se seleccionó el ámbito de rol como Custom, el valor gws_store_groups siempre se guardó 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 la configuración de Add Store Code to Urls 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 como se espera después de filtrar una vista de tienda y luego hacer clic en Save en Administración Content > Hierarchy. Anteriormente, al hacer clic en Save se actualizó la página, pero se perdió el contexto y la vista de tienda seleccionada ya no se mostraba.
  • Al hacer clic en el botón Send invitation (Administración Marketing > Private sales > Invitation), ahora se envía una solicitud de POST junto con la clave del formulario y se 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, Adobe Commerce mostraba este mensaje emergente: Something went wrong. GitHub-36582
  • La página del editor de bloques de CMS ahora muestra el valor correcto del widget block_id. GitHub-29644

Tarjetas de regalo y envoltorio

  • Los comerciantes ya no pueden crear una tarjeta regalo con un valor negativo.
  • La mutación setGiftOptionsOnCart ahora elimina el envoltorio para regalos de un pedido según lo esperado. El valor de gift_wrapping_id ahora no se ha establecido en el nivel de carro de compras. Anteriormente, gift_wrapping_id se actualizaba a su valor anterior después de realizar el pedido incluso cuando este valor no estaba establecido en el nivel de carro de compras.
  • Las cuentas de tarjetas de regalo ahora permanecen activas como se espera cuando se procesa el reembolso parcial de un producto simple desde el pedido al que se aplicó la tarjeta. Anteriormente, se eliminaba la cuenta de la tarjeta regalo.
  • La mutación setGiftOptionsOnCart ahora actualiza correctamente la base de datos al eliminar un mensaje de regalo del carro de compras. Anteriormente, los detalles del mensaje no se actualizaban en la base de datos y el mensaje de regalo no se eliminaba del carro de compras.
  • La etiqueta del registro de regalos Event Information ahora se traduce según lo esperado.
  • Los subtotales ahora se calculan correctamente para las cantidades de tarjetas regalo personalizadas.
  • Las tarjetas de regalo ahora se aplican correctamente durante el cierre de compra con varias direcciones. Anteriormente, las cantidades de tarjetas regalo se aplicaban incorrectamente a los envíos de varias direcciones, lo que resultaba en cantidades de tarjetas regalo no válidas.
  • La emulación ahora se inicia durante las llamadas de send() una vez que la emulación se ha completado durante la llamada de getInfoBlockHtml() y no se registra ningún error. Anteriormente, el archivo system.log se inundó con este error: main.ERROR: Environment emulation nesting is not allowed. GitHub-35603
  • Ahora puede usar la mutación updateCartItems para actualizar una tarjeta regalo en un carro de compras. Anteriormente, solo la cantidad de la tarjeta se podía actualizar en el carro de compras mediante esta mutación.
  • El envoltorio para regalos ahora se incluye como se espera en una cotización basada en carros combinados. Anteriormente, los mensajes de regalo se combinaban correctamente, pero no ajustaban las selecciones.
  • La mutación addProductsToCart ahora agrega correctamente una tarjeta regalo a un carro de compras. Anteriormente, esta consulta esperaba el nombre del destinatario de la tarjeta de regalo, pero en su lugar se devolvió el nombre del remitente. Adobe Commerce arrojó este error: Please specify a recipient name. GitHub-36665

Google Tag Manager

  • El módulo Google Tag ahora inserta los datos correctos en la capa de datos. Anteriormente, los datos de impresiones de página no se insertaban en la capa de datos.

GraphQL

  • La consulta getCustomerWishlist ya no genera un error interno del servidor al consultar listas que contienen productos configurables.
  • La consulta customerCart ahora devuelve todos los descuentos aplicados en los productos agrupados según lo esperado. Anteriormente, los descuentos totales aplicados a un producto agrupado se devolvían como cero.
  • La consulta getCustomerWishlist ya no genera un error interno del servidor al consultar listas que contienen productos configurables.
  • La declaración del indicador is_subscribed, su resolución, caché y pruebas asociadas se han movido del módulo CustomerGraphQl al módulo NewsletterGraphQl.
  • La mutación addProductsToCart 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 filtro de producto de consulta products ahora puede devolver resultados de coincidencia parciales así como coincidencias completas. El nuevo atributo match_type (PARCIAL, COMPLETO) admite la especificación del tipo de coincidencia. Anteriormente, la consulta solo devolvía coincidencias completas.
  • Las solicitudes simultáneas han agregado la exclusión mutua a la consulta addConfigurableProductsToCart para evitar condiciones de carrera durante una actualización. 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 está establecido en Filterable (no results). Anteriormente, solo se devolvían valores distintos de cero.
  • Se ha mejorado el rendimiento de la consulta setShippingAddressForEstimate para 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 campo products consulta ConfigurableProduct.configurable_options ahora devuelve solamente valores que tienen al menos un producto habilitado. Anteriormente, este campo devolvía productos simples desactivados.
  • Se mejoró el rendimiento de 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.
  • La consulta products ahora devuelve todos los detalles de precios relevantes de la tienda cuando el precio dinámico 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, las consultas de products sobre ese producto ahora resuelven la configuración correctamente. Anteriormente, cualquier filtro proporcionado se cambiaba a la configuración Visibility: Catalog. GitHub-36591
  • La consulta customer devuelve ahora un campo product_sale_price que incluye impuestos sobre pedidos cuando el precio del producto se ha configurado para incluir impuestos. GitHub-36946
  • Los atributos de producto del tipo DateTime ahora se asignan al filtro FilterRangeTypeInput en las consultas de productos. Anteriormente, estos atributos se asignaban a FilterMatchTypeInput. Como resultado de este cambio, el filtrado de consultas en atributos de DateTime requiere valores de from y to en lugar de valores de coincidencia.
  • La consulta customer ahora devuelve solamente las críticas de clientes relacionadas con una vista de tienda específica, tal como se espera cuando se filtra por ID de tienda.
  • La consulta categories ya no devuelve un error cuando el valor de respuesta items.redirect_code contiene un valor nulo. GitHub-36675
  • Los productos relacionados basados en reglas ahora se cargan como se espera en las respuestas de GraphQL después de una limpieza completa de la caché. Anteriormente, los atributos EAV del producto responsables de las coincidencias basadas en reglas no se cargaban para la entidad solicitada, aunque se cargaban después de volver a cargar la página de producto de la tienda.
  • La mutación changeCustomerPassword ahora almacena en déclencheur el correo electrónico como se espera después de restablecer correctamente una contraseña.
  • Las consultas urlResolver y route ahora devuelven un resultado cuando el Target Path de reescritura de URL es una dirección URL absoluta. Anteriormente, la consulta urlResolver devolvía NULL cuando se utilizaba para recuperar datos de redireccionamiento.
  • La consulta products ahora devuelve etiquetas correctas cuando existen varias vistas de tienda. GitHub-29635
  • La consulta categoryList ahora devuelve una sección product rellenada del bloque options para los productos secundarios de los productos agrupados según lo esperado. Anteriormente, no se devolvía información sobre productos secundarios de paquete.
  • La consulta route ahora devuelve rutas para categorías y productos según lo esperado sin un error interno del servidor. GitHub-36544
  • La consulta products ahora obtiene url_key valores cuando se seleccionan varias categorías.
  • product consultas ahora devuelven agregaciones solamente para los productos asignados al catálogo compartido especificado. Anteriormente, los datos de agregación de los productos no asignados a un catálogo compartido aparecían en la navegación por capas.
  • El método get() de clase OptionValueProvider ahora devuelve un valor de opción de atributo basado en el option_id dado según lo esperado. Anteriormente, devolvía un error. GitHub-35910
  • La consulta products 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 usar un fragmento ProductCard al consultar related_products, upsell_products y crosssell_products en ProductInterface. GitHub-29769
  • La consulta products 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 agregado a ProductAttributeFilterInput, que admite la solicitud de todos los productos para una categoría en una sola 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

  • El formulario de carga de iconos favoritos de administrador ahora admite .ico tipos de archivos. 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 la importación CSV actualiza URL Key valores.
  • 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
  • Importando orígenes de existencias 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 Commerce muestra ahora este error: There are no valid rows to import. Anteriormente, la validación se realizaba bajo estas condiciones, pero el proceso de importación falló 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 ningún valor url_key anulado. 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 reescrituras de URL se eliminaron, pero la reescritura de URL en el nivel de vista de tienda predeterminado para el producto se estableció en 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.
  • Commerce ahora tiene en cuenta la configuración Disable Automatic Group Change Based on VAT ID durante la importación de registros de clientes. Anteriormente, se omitía el valor disable_auto_group_change de los archivos de importación. GitHub-36409
  • Magento\Framework\Convert\Excel ahora administra correctamente los números precedidos de un espacio. El XML de Excel ahora codifica los campos como un String. Anteriormente, el escritor de Excel codificaba estos valores como number, lo que daba como resultado 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, Adobe Commerce 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.
  • La importación de productos con country_of_manufacture atributos creados por un usuario administrador con una configuración regional diferente a la del usuario administrador que está importando 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 el atributo country_of_manufacture.
  • El proceso de importación de tiendas importa ahora correctamente los datos de origen de stock y Commerce muestra ahora un mensaje de notificación completo cuando finaliza el proceso de importación. Anteriormente, faltaba el mensaje de notificación.
  • La invalidación del indizador redundante se ha eliminado cuando los indizadores están en modo programado.
  • Los productos exportados ahora tienen el valor manage_stock correcto cuando el valor use_config_manage_stock es igual a 1. Anteriormente, este valor predeterminado era incorrecto.
  • Adobe Commerce 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, Adobe Commerce mostraba este error: Maximum error count has been reached or a system error is occurred!.
  • El rendimiento de la exportación de clientes desde la cuadrícula de clientes se ha mejorado en implementaciones en las que B2B está habilitado.
  • El proceso de importación de productos ya no genera un error de validación cuando un valor de atributo de la columna 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 proceso app:config:import 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 productos ahora se exportan al directorio var. 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 mejoró el rendimiento del indizador catalogrule_product cuando no se estableció ninguna regla de catálogo. GitHub-34784
  • 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.
  • La creación de un tipo de producto personalizado cuando los indizadores están establecidos en Update on schedule ya no hace que la tarea de actualización de índice cron falle. GitHub-36471
  • Se han resuelto los problemas de visualización en la página de detalles del producto de la tienda que se debían a la indexación de permisos de catálogo. Anteriormente, Adobe Commerce borraba primero la tabla de índice y después volvía a indexar durante un proceso de indexación completo de catalogpermissions_product o catalogpermissions_category. Los permisos del catálogo no funcionaron según lo esperado en la tienda hasta que se completó la reindexación.
  • 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

Infraestructura

  • Se agregó la instrucción return que falta al controlador de habilitación de uso de administración. Anteriormente, no había ninguna instrucción return y el controlador de la clase FrontendController se controlaba incorrectamente. GitHub-31374
  • Se reemplazó MySQL CREATE TEMPORARY TABLE ... LIKE con CREATE TEMPORARY TABLE refactorizado para el cumplimiento con MySQL 8.x. GitHub-37926
  • Adobe Commerce 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 al método explode como segundo argumento.
  • restricted_classes.php ha reemplazado a 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
  • Las opciones de atributo proporcionadas por el modelo de fuente de datos e instaladas mediante el parche de datos de configuración (normalmente de módulos de terceros) ahora se pueden utilizar con reglas de segmentos de clientes. Anteriormente, esta combinación no devolvía la lista de clientes que coincidían con el segmento configurado.
  • El motor de plantillas de correo electrónico ahora puede procesar correctamente determinadas directivas anidadas (por ejemplo, {{if}}{{depend}}...{{/depend}}{{/if}}). GitHub-36438
  • product consultas con datos de agregación ahora devuelven los valores de etiqueta correctos para atributos de producto de tipo booleano. GitHub-29123
  • Los archivos CSS ya no se dañan cuando se combinan cuando var/tmp y pub/static están en sistemas de archivos diferentes y CSS Merging Enabled está habilitado. 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 de miembro getId() en int, que ocasionalmente desencadenaba una excepción cuando se veía a un cliente 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
  • La actualización de los elementos 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 déclencheur una reindexación automatizada de stock al actualizar el estado de stock de un producto. Anteriormente, no se activaba un reíndice de existencias para el producto que se estaba actualizando.
  • El estado de existencias de productos configurables ahora se actualiza en la tienda como se espera cuando los productos secundarios se actualizan en V1/inventory/source-items.
  • La llamada REST POST <store_code>/V1/inventory/source-items ahora valida la carga útil de los espacios 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 configuración No Manage Stock está habilitada para un producto. Anteriormente, cuando se habilitaba esta configuración, Commerce 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 Commerce lanzó una excepción TypeError.
  • El recuento de fuentes de cuadrícula de administración ahora devuelve registros válidos después de aplicar un filtro. Anteriormente, el método getSourcesCount 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 redirigía al panel de administración con el mensaje: Invalid security or form key. Please refresh the page.
  • AUTO_INCREMENT de la tabla inventory_source_item ya no aumenta con cada operación UPDATE. Anteriormente, cada actualización aumentaba el AUTO_INCREMENT de esta tabla, lo que finalmente provocaba que el valor AUTO_INCREMENT estuviera fuera del intervalo al agregar un nuevo registro a 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 se basa en la configuración Synchronize with Catalog. Anteriormente, los productos solo se sincronizaban correctamente cuando esta configuración estaba habilitada.
  • Adobe Commerce 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 existencias de productos configurables ahora se actualiza correctamente cuando un producto configurable y su valor de productos secundarios Stock Availability se actualizan mediante una actualización de inventario masivo. 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 el stock predeterminado. 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 del campo Quantity (para orígenes no predeterminados) 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, Adobe Commerce mostraba un estado de existencias incorrecto para las fuentes de productos.
  • \Magento\Catalog\Model\Product::getIsSalable() devuelve ahora el estado de existencias en función del ámbito definido en el objeto de producto (\Magento\Catalog\Model\Product::getStoreId()). Anteriormente, getIsSalable() devolvía el estado de las existencias en función del ámbito actual independientemente del objeto de producto.

Registro

  • Se ha actualizado el formato de fecha y hora en la función Informes del sistema para incluir registros de archivos de registro en los informes.
  • 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.

Galería de medios

  • Los comerciantes ahora pueden cargar imágenes con el mismo nombre pero en mayúsculas y minúsculas diferentes (una combinación de caracteres en mayúsculas y minúsculas) en Media Gallery. Anteriormente, en Page Builder los nombres de archivo de imagen no distinguían entre mayúsculas y minúsculas, y los archivos con los mismos nombres que no eran mayúsculas y minúsculas se sobrescribían en el almacenamiento de medios de Commerce alojados en sistemas de archivos que distinguían entre mayúsculas y minúsculas.

Newsletter

  • Commerce ahora comprueba si la funcionalidad de suscripción al boletín informativo está habilitada antes de aceptar nuevos suscriptores. GitHub-33040

Pedidos

  • Los productos movidos del carro de compras del administrador a la lista de artículos por encargar ahora se eliminan según lo esperado del carro de compras. GitHub-37538
  • 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.
  • La rotación del registro de acciones de administración ahora funciona como se espera cuando la frecuencia de archivado del registro de rotación se establece en intervalos semanales o mensuales. Anteriormente, cuando se establecían intervalos semanales o mensuales, los registros no rotaban.
  • Commerce ahora aplica el importe de descuento correcto a los pedidos parcialmente cancelados. Anteriormente, la cantidad de descuento calculada en la columna base_discount_cancelled se calculaba incorrectamente cuando se cambiaba un pedido. Se ha añadido compatibilidad con valores negativos a las facturas de pedidos con descuento.
  • El extremo REST V1/orders ahora aplica tarjetas regalo como se espera al importar pedidos. Anteriormente, no se guardaban los cambios en los atributos de extensión de tarjetas regalo en este punto de conexión.
  • Commerce 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 Commerce mostraba un error Request-URI Too Long en la consola del explorador.
  • El estado del pedido ahora se marca como cerrado en lugar de completo cuando el importe completo del pedido se ha reembolsado con crédito de tienda más un método de pago adicional. Anteriormente, el estado del pedido se marcaba como completado porque el importe reembolsado se calculaba incorrectamente.
  • Se mejoró el rendimiento del método OrderRepository::get() al reducir 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 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 función isLast() no devolvía true como se esperaba. GitHub-36722
  • Se mejoró el rendimiento del trabajo cron aggregate_sales_report_bestsellers_data al optimizar la consulta de datos principal.
  • Adobe Commerce ya no genera un error al crear una nota de abono con un reembolso sin conexión para un saldo de cliente cuando el usuario administrador no tiene permiso para acceder al sitio web del cliente. Anteriormente, Adobe Commerce arrojaba este error: More permissions are needed to view this item, y el usuario administrador no pudo crear un reembolso de crédito de tienda.
  • 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, Adobe Commerce no comprobaba el estado actual del pedido antes de guardarlo después de que un comprador escribiera un comentario. GitHub-36562
  • Adobe Commerce ya no genera un error en la página de devolución del pedido de la tienda cuando se elimina el producto configurable que se devuelve. Anteriormente, Adobe Commerce registró este error: report.CRITICAL: Error: Call to a member function getShipmentType() on null in magento2ee/app/code/Magento/Rma/view/frontend/templates/return/create.phtml:52.
  • 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 Adobe Commerce 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 extremo GET V1/orders/<OrderID> ahora 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, Adobe Commerce arrojaba una excepción Division by zero. GitHub-36800
  • El uso del extremo rest/V1/orders/{id}/comments 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 de los pedidos se registraba como NULL en las tablas sales_order y sales_order_grid, y ni la página Mis pedidos ni la cuadrícula de pedidos del administrador mostraban el pedido. GitHub-34180
  • Ahora, las facturas, los envíos y los abonos se pueden mover correctamente de nuevo del archivo junto con sus pedidos asociados cuando los ID que incluyen difieren de los ID de pedido. Anteriormente, si un pedido se movía al archivo y luego se restauraba, entonces faltaban registros de factura, envío y nota de abono en ese pedido si los números de ID no coincidían. GitHub-36847

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 el módulo Magento_AsyncConfig está deshabilitado. 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.
  • Ahora puede usar la opción Page Builder en Administración > Content > Pages para insertar texto copiado en todos los estilos usando el elemento text. Anteriormente, Page Builder solo mostraba texto sin formato y no guardaba estilos.
  • Los errores CORS ya no aparecen durante la edición del contenido del producto con Page Builder cuando el usuario administrador tiene una ACL específica. El usuario administrador ahora puede guardar el producto. Anteriormente, Page Builder no guardaba el producto y el proceso de guardado se bloqueaba.
  • La información precisa del tamaño del archivo ahora se incluye en la vista previa de imágenes para las imágenes cargadas en Page Builder.
  • Los elementos de página de Page Builder ahora se representan a una velocidad aceptable en el explorador Chrome (v112). Anteriormente, guardar contenido con Page Builder ejecutado en el explorador Chrome era lento y Commerce registró este error en la consola del explorador: [ERROR] Page Builder was rendering for 5 seconds without releasing locks.
  • La reproducción automática de elementos de vídeo de Page Builder ahora funciona como se espera en los navegadores móviles Safari en iOS cuando el elemento está vinculado directamente a un archivo de vídeo remoto. Anteriormente, no se mostraba ninguna imagen de vista previa.
  • Page Builder ahora funciona como se espera en el navegador Chrome. Anteriormente, los cambios de contenido realizados en ese explorador no siempre se guardaban.
  • Al cargar una página de edición de producto de administración en un producto, ya no se genera un error intermitente de JavaScript Uncaught TypeError.
  • Las imágenes que se han cargado mediante el editor de Page Builder ahora están etiquetadas como utilizadas en Content > Media Gallery. Anteriormente, estas imágenes estaban marcadas como no utilizadas en ninguna parte de la Galería multimedia.
  • 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 el atributo de HTML tabindex a las etiquetas de hipervínculo a cuando edita un hipervínculo y, a continuación, guarda 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 productos no mostraba correctamente las 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 intentó pegar texto no se podía guardar y Adobe Commerce mostraba este error de consola: [ERROR] Page Builder was rendering for 5 seconds without releasing locks..
  • El tipo de contenido de Page Builder column-block 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 la máscara predeterminada {{name}} {{description}}. 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.

Pago

  • Commerce 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 provocaba incoherencias entre los registros de Commerce 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 archivo Magento/Paypal/Model/Cart.php ahora recopila SKU de productos secundarios con el título del producto principal para identificar el título del producto con el SKU secundario. GitHub-36808
  • La configuración de Card Security Code Does Not Match 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 botón Venmo ahora se puede ocultar cuando los botones de PayPal están activados. Anteriormente, el botón Venmo no se podía eliminar del carro de compras, el minicarrito, los detalles del producto o 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, Commerce 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.
  • Adobe Commerce ya no genera un error al crear una segunda factura parcial para un pedido pagado por el Braintree cuando Enable Vault for Card Payments está habilitado. Anteriormente, cuando un comerciante intentaba crear una segunda factura, Adobe Commerce 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 botón My billing and shipping address are the same.
  • 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.
  • Adobe Commerce 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 Adobe Commerce 2.4.6 con ReCAPTCHA v2 o v3 invisible. GitHub-37241
  • Los compradores ya no pueden hacer clic en el botón PayPal para comprar un producto configurable sin seleccionar primero las opciones requeridas. Anteriormente, los compradores podían hacer clic en el botón PayPal y posteriormente se les redirigía de nuevo a la página del producto con un error:
  • El botón PayPal ahora se muestra como se espera en las páginas del carro de compras y del minicarrito. 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

  • Varios clics en el menú desplegable de acción masiva de la página Ventas > Pedidos ya no generan varias solicitudes de POST. GitHub-37997
  • Solo las respuestas 200 o 404 se almacenan en caché cuando un comprador navega a una página que almacena en déclencheur una redirección 301 a menos que el encabezado Cache-Control de la página contenga private . Anteriormente, se almacenaba en caché un estado HTTP 200 con private en el encabezado Cache-Control y se almacenaba en caché un estado HTTP 301 a menos que contuviera private en el encabezado Cache-Control. GitHub-36492
  • Se eliminó el(la) Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper sin usar de Magento\Catalog\Model\ProductRepository. Anteriormente, ProductRepository cargó este asistente, que es un controlador de Adminhtml. 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
  • Se ha optimizado el proceso de asignación de productos a categorías desde la ficha Products in Category. Los botones Assign y Remove de la ficha Add Product by SKU ahora están deshabilitados 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.
  • Se ha mejorado el rendimiento de la mutación addProductToCart al ejecutar con muchos atributos de producto personalizados. Anteriormente, cuando esta mutación se ejecutaba con muchos atributos de producto ( aproximadamente 1000), Commerce 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 comando bin/magento setup:perf:generate-fixtures setup/performance-toolkit/profiles/ee/small.xml ahora se ejecuta correctamente cuando se ejecuta varias veces. Anteriormente, generaba este error cuando se ejecutaba más de una vez: Coupon with the same code already exists.

Promoción

  • Los efectos de la regla de precio Fixed amount discount for whole cart, cuando se aplica con la regla Apply to shipping amount, ahora se distribuyen proporcionalmente según lo esperado entre los productos y los importes de envío. Anteriormente, los cálculos de descuento eran incorrectos.
  • La configuración Discard Subsequent Rules 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 el botón de página de cierre de compra Sign in. 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 botón Place Order de 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 pedidos 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 signos de + (más) de la página Informe de carros abandonados. GitHub-36560
  • Los nombres de las transacciones de GraphQL ahora se muestran correctamente después de que New Relic se deshabilite del administrador de Commerce. GitHub-36112

Críticas

  • Los compradores ya no pueden enviar rápidamente críticas de productos duplicados cuando Invisible reCAPTCHA v3 está habilitado.

Recompensas

  • Los correos electrónicos de caducidad de puntos de recompensa ya no se envían después de que hayan caducado los puntos. Las tareas cron magento_reward_balance_warning_notification y magento_reward_expire_points se han refactorizado para aumentar la flexibilidad y la capacidad de envío de correo electrónico. Anteriormente, los comerciantes no podían enviar muchos correos electrónicos generados por estas tareas cron en un corto período de tiempo. Esto podría haber causado retrasos en la entrega de notificaciones con distinción de tiempo.
  • Los puntos de recompensa vencidos ahora se restan del saldo actual de puntos de recompensa del comprador, según lo esperado.
  • La notificación por correo electrónico de actualización del balance de puntos de recompensa ahora tiene en cuenta el contexto actual de la tienda. Anteriormente, el correo electrónico de actualización del balance de puntos de recompensa utilizaba los ajustes de configuración de la tienda predeterminada.
  • Los puntos de recompensa ahora se pueden reembolsar después de la creación de una nota de crédito. Anteriormente, los comerciantes no podían reembolsar puntos de recompensa después de crear una nota de crédito y el estado del pedido permanecía Completed, no Closed.

RMA

  • La solicitud REST POST /V1/returns ahora crea un RMA por producto. Anteriormente, esta solicitud podía omitir la validación y devolver varias RMA por producto.
  • Los atributos de RMA ahora se agregan automáticamente al formulario EAV predeterminado cuando el atributo RMA Show on Storefront está establecido en no. Anteriormente, la ventana emergente de detalles del elemento RMA estaba en blanco cuando se creó un atributo de devolución personalizado y el atributo RMA Show on Storefront se estableció en no.
  • El valor del atributo Enable RMA coincide ahora con el valor especificado en la configuración cuando la casilla de verificación Use Config de la página de edición del producto está habilitada.
  • El atributo Enable RMA en el nivel de producto individual ahora respeta la configuración de la RMA de la tienda. Anteriormente, esta opción se desactivaba de forma predeterminada al agregar un producto, independientemente de los ajustes de configuración de la tienda.

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 la tabla search_query, más tardaba la consulta en completarse.
  • La ordenación alfabética de productos por nombre ahora funciona correctamente para nombres que contienen caracteres turcos.
  • La propiedad de atributo de producto Use in Search Results Layered Navigation ahora solo se muestra cuando el valor Use in Search está establecido 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 de la tabla search_query. Anteriormente, las consultas incorrectas o las consultas en campos de búsqueda vacíos devolvían un conjunto de datos enorme, lo que aumentaba el tamaño de la tabla search_query y provocaba 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.
  • El texto informativo bajo el campo de entrada Storefront Properties del atributo Search Weight 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.
  • Commerce 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, Commerce 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 de la dirección indicada en $quote->getShippingAddress() en lugar de pasarla en $shippingAssignment como se esperaba. GitHub-37283
  • Commerce ya no emite 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.
  • La consulta cart ahora devuelve descuentos de envío discretos como descuentos de envío independientes con etiquetas de descuento únicas. La nueva propiedad de descuento applied_to admite la diferenciación entre descuentos aplicados a un elemento del carro de compras. Anteriormente, todos los descuentos de envío se combinaban en un valor Shipping Discount codificado.
  • 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 el botón Reorder (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 cuadro de texto Shipping Policy ahora está visible en el ámbito de la vista de la Tienda de administración cuando Apply custom Shipping Policy está habilitado y hay disponible una directiva de envío personalizada. GitHub-36425
  • La consulta cart devuelve ahora un valor selected_shipping_method que coincide con uno de los códigos de método y operador available_shipping_methods. 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
  • La mutación setShippingAddressesOnCart ya no genera un error cuando el segundo valor de la matriz de la calle es nulo. Anteriormente, se produjo 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 cuando el sitio web id != 1 y el modo de tienda única están habilitados. Anteriormente, se produjo un error en la acción de guardar con este mensaje: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails. GitHub-35009

Ensayo

  • Las actualizaciones de ensayo para reglas de ventas ya no están duplicadas en el panel de ensayo.
  • Los productos agrupados ahora se actualizan correctamente si un comprador los agrega al carro de compras cuando se está realizando una actualización de programación. Anteriormente, si se agregaba un producto agrupado con opciones al carro de compras cuando una tarea de programación estaba en proceso, Commerce arrojaba esta excepción: Some of the products below do not have all the required options. Please select all required options.
  • Las actualizaciones programadas ahora mantienen los precios correctos para las opciones de paquete. Anteriormente, estos precios se cambiaban a cero para vistas específicas de sitios web o tiendas.
  • Al actualizar una actualización programada ya no se elimina la versión anterior del elemento ensayado si no se especifica una fecha de finalización. Anteriormente, cuando se actualizaba un elemento almacenado en zona intermedia, la versión de rollback del elemento se eliminaba si no se especificaba una fecha de finalización. Commerce no produjo un error ni advirtió a los usuarios administradores antes de la eliminación.
  • Los valores de etiquetas de vista de tienda ya no se borran después de una actualización programada de las reglas de precios del carro de compras. Anteriormente, estas etiquetas se borraban incluso si no se especificaban en la actualización.
  • Las vistas previas de ensayo de contenido ahora funcionan correctamente para las páginas vinculadas. Anteriormente, no se podía navegar a páginas vinculadas en la vista previa de ensayo, sino que se le dirigía incorrectamente a páginas de tienda.
  • СCambiar una actualización de ensayo ya no implica eliminar las actualizaciones programadas que tienen asignada una fecha posterior.
  • Los errores de JavaScript ya no se producen cuando se añaden o editan actualizaciones programadas para categorías cuando Experimentos de contenido de Google Analytics está habilitado.
  • Los comerciantes ahora pueden guardar correctamente una actualización de programación existente para una categoría después de verla o editarla. Anteriormente, Adobe Commerce arrojó un error en system.log.
  • Los vínculos descargables ahora se conservan según lo esperado cuando se aplica una actualización programada mientras los productos añadidos anteriormente están en el carro de compras. Anteriormente, los vínculos descargables desaparecían de la página Mi cuenta (Mis productos descargables) del cliente y de la página de vista de pedidos del administrador.
  • Los productos ahora están visibles en la tienda, tal como se espera después de una actualización de ensayo que habilita la aplicación del producto. Anteriormente, el producto estaba habilitado en el Administrador, pero no era visible en la categoría de tienda cuando el modo de indizador del inventario de catálogo se establecía en Actualizar según lo programado. Un reindexado completo ha corregido el problema.
  • La cola de consumidores staging.synchronize_entity_period de la tabla magento_bulk ya no aumenta cuando no hay actualizaciones de ensayo que procesar. Anteriormente, cuando se configuraba cron para que se ejecutara cada minuto, se agregaba cada minuto a esta tabla un nuevo registro relacionado con el consumidor staging.synchronize_entity_period.
  • Adobe Commerce ya no genera un error SQL al crear un cambio de programación para un producto mientras se guarda otro. Anteriormente, Adobe Commerce mostraba este error: The product with the SKU "%1" couldn't be added to the current update.

Reglas de destino

  • Las reglas de Target ahora funcionan correctamente con diferentes vistas de tienda. Anteriormente, los problemas con la caché de reglas de productos relacionados impedían la visualización de los productos recomendados en implementaciones de varias tiendas.

Impuestos

  • Las facturas ahora muestran el subtotal correcto cuando se configuran los impuestos y se activa el FTP.
  • Commerce ahora muestra el valor correcto para el valor Regular Price cuando se selecciona una opción personalizada para un producto que tiene un valor Special Price cuando Price Display Settings está establecido 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 valor de respuesta cart consulta applied_taxes ahora incluye todas las reglas de impuestos individuales según lo esperado. Anteriormente, devolvía el valor fiscal total cuando se configuraban varias reglas fiscales.
  • El icono de contraer o expandir de la sección Additional Settings 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 valor tax class 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 mejoró la prueba AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders para eliminar los errores causados por la finalización prematura del campo de correo electrónico.
  • StorefrontVerifyProductAfterPartialReindexOnSeveralWebsitesTest se ha refactorizado para mejorar la confiabilidad. GitHub-38359
  • Se ha corregido la prueba AdminSimpleProductwithTextandVisualSwatch mediante la introducción de un paso adicional que establecía explícitamente los atributos que se usarían en la búsqueda.
  • Se corrigió el error tipográfico en la prueba unitaria de SortbyTest. GitHub-37792
  • Se eliminaron las referencias a clases inexistentes en las pruebas unitarias. GitHub-37636
  • Se mejoró la prueba AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders para eliminar los errores causados por la finalización prematura del campo de correo electrónico.
  • Se refactorizó la prueba Magento\GraphQl\Catalog\ProductSearchTest::testFilterProductsBySingleCategoryId para controlar el orden aleatorio de categorías en las respuestas de consulta products.
  • Se han resuelto los problemas de rendimiento con matrices grandes en TableNameSniff.
  • Las pruebas de integración para la funcionalidad de edición del registro de regalos ya no dependen de los ID de entidad existentes. Todos los datos necesarios ahora se obtienen mediante accesorios. Anteriormente, \Magento\GiftRegistry\Controller\Index\EditPostTest fallaba.
  • CollectionTest::testGetDateRangeFirstPart() ahora cuenta para el horario de verano.
  • Se corrigió el aviso de desuso de StorefrontDeleteItemFromRequisitionListPrintView.

Marco de IU

  • El cargador de imágenes ahora funciona como se espera en las filas dinámicas. Las imágenes ahora se cargan correctamente cuando se envían como una matriz multinacional. GitHub-37957
  • 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
  • Se corrigió el comportamiento del cursor en el campo de texto del Registro de regalos Message.
  • 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. Commerce ahora muestra un mensaje informativo. Anteriormente, Commerce mostraba fugas de HTML cuando se producía un error de PHP.
  • Los atributos personalizados del cliente (tipo File attached) ahora funcionan correctamente con imágenes que se eliminaron y luego se cargaron. 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, Commerce 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.
  • Ahora las contraseñas se muestran según lo esperado cuando la casilla de verificación Show Password de la página de inicio de sesión está activa.
  • Adobe Commerce ahora muestra los precios correctos de 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.
  • Si se quita el nodo de rutas de exploración estableciendo remove=true a través del XML de diseño, ya no se eliminará el título de página de la 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, Adobe Commerce arrojaba 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. Adobe Commerce también mostraba errores de consola.
  • Adobe Commerce ya no genera un error cuando intenta cambiar rápidamente la vista entre el historial de comentarios y Devoluciones en la página Orden de administración. Anteriormente, Adobe Commerce 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 ámbito all stores view.
  • 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, Adobe Commerce 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 la asignación de administradores de la empresa contienen una variable CMS Block URL.
  • 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 escribir texto en el área de comentarios, Adobe Commerce 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 en Administración 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 Adobe Commerce 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 activó 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

  • El atributo crossorigin se ha agregado a linkTypes para HEAD elementos.GitHub-32509
  • 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, no se generaban reescrituras de URL para tiendas no predeterminadas cuando la visibilidad del producto se establecía en no visible en el ámbito de tienda predeterminado.
  • Category::getUrl() ya no obtiene una redirección 301. GitHub-38152
  • Commerce ya no genera reescrituras de URL de producto para categorías raíz y para productos que se establecen 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
  • Commerce ya no genera un error cuando intenta crear una redirección 301/302 para una dirección URL de producto cuando Generar reescrituras de categoría/dirección URL de producto está habilitado. 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 de la tabla url_rewrite. Anteriormente, se producían condiciones de carrera al actualizar configuraciones de sufijos de URL, y los sufijos de URL configurados y la tabla url_rewrite no coincidían.
  • Adobe Commerce 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 páginas de CMS recién creadas con un nodo secundario ahora se incluyen en la cuadrícula de filtros de marketing (Marketing > URL rewrites). Anteriormente, las reescrituras de URL no se creaban para esas páginas de CMS.
  • 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.

Visual Merchandiser

  • Ahora puede usar el atributo Categories para las reglas de Visual Merchandiser. Anteriormente, Adobe Commerce arrojaba esta excepción: Something went wrong while saving the category.

Marco de API web

  • Commerce ya no muestra una advertencia Integration not secure en Administración System > Extensions > Integrations cuando los campos Callback URL y Identity link URL están vacíos. GitHub-36407
  • Se agregaron los atributos de extensión taxes, itemized_taxes y additional_itemized_taxes a 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 configuración Use Decimal Quantity estuviera habilitada.
  • El extremo REST V1/orders/{id}/comments 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.
  • El extremo de la API de REST GET y POST V1/products/attributes ya no devuelve el mismo valor para el atributo is_filterable para las opciones Filterable(with results) y Filterable(no results) de la opción Use in Layered Navigation. Anteriormente, este extremo devolvía el mismo valor porque la propiedad del atributo is_filterable era del tipo Boolean, que no permitía establecer esta propiedad en Filterable(no results). GitHub-37979
  • El campo media_gallery_entries que falta se ha agregado al extremo REST V1/configurable-products/sku/children. Anteriormente, a esta función le faltaba el código necesario para almacenar y mostrar media_gallery_entries. GitHub-37607
  • El método REST V1/carts/mine/estimate-shipping-methods ahora valida todos los niveles de datos de 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, Commerce 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 Commerce mostraba este error: The product was unable to be saved. Please try again.
  • El extremo POST /V1/products/tier-prices devuelve ahora 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, Adobe Commerce 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.
  • La llamada POST V1/guest-carts ya no envía pedidos de invitado cuando Allow Guest Checkout está deshabilitado.
  • Ahora puede abrir un pedido del administrador con el estado Received cuando AsyncOrder no esté habilitado. Anteriormente, no se podía abrir la página de detalles del pedido desde el Administrador cuando POST V1/orders cambió el estado del pedido.
  • Adobe Commerce ahora devuelve correctamente el atributo content (código de imagen base64) en GET V1/products/sku/media respuestas de API de medios del producto. El atributo content no aparecía anteriormente en la respuesta.

Lista de deseos

  • Commerce ahora muestra un mensaje que indica que ya se ha añadido un artículo a una lista de deseos cuando un comprador intenta añadir el mismo artículo a una lista de deseos varias veces. Anteriormente, en estas condiciones, Commerce aumentaba la cantidad de productos en la lista de deseos.
  • Adobe Commerce ahora agrega correctamente a la lista de deseos productos con los archivos de opciones personalizables cargados necesarios. Anteriormente, Commerce agregaba dos productos a la lista de deseos, no uno. GitHub-37437

Requisitos del sistema

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

Instrucciones de instalación y actualización

Puede instalar Adobe Commerce 2.4.7 con Composer.

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