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 BIC. Los principales problemas incompatibles con versiones anteriores se describen en Puntos destacados de BIC. No todas las versiones introducen BIC importantes.

Otra información de la versión

Aunque el código 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 la última discusión de estos problemas corregidos.

Hasta la fecha no se han producido ataques confirmados relacionados con estos problemas. Sin embargo, es posible que se aprovechen ciertas vulnerabilidades para acceder a la información de los clientes o hacerse cargo de las sesiones de administrador. La mayoría de estos problemas requieren que un atacante obtenga acceso primero al administrador. Como resultado, le recordamos que tome todas las medidas necesarias para proteger a su administrador, incluidas, entre otras, las siguientes:

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

Mejoras de seguridad adicionales

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

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

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

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

  • Se agregó compatibilidad con Integridad de los subrecursos (SRI) cumplir con los requisitos de PCI 4.0 para la verificación de la integridad de las secuencias de comandos en las páginas de pago. La compatibilidad con la Integridad de los subrecursos (SRI) proporciona hashes de integridad para todos los recursos 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 subrecursos en el Guía para desarrolladores de Commerce PHP.

  • Cambios en la Política de seguridad de contenido (CSP): actualizaciones y mejoras de configuración de las Políticas 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 el Guía para desarrolladores de Commerce PHP.

    • La configuración predeterminada CSP para páginas de pago para administración de comercio y áreas de tienda es ahora restrict modo. Para las demás páginas, la configuración predeterminada es report-only modo. En las versiones anteriores a 2.4.7, el CSP se configuraba en report-only modo 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 config.xml archivo.

      note note
      NOTE
      Actualizar la configuración de CSP a restrict Este modo podría bloquear los scripts en línea existentes en las páginas de pago de la administración y de la tienda, lo que provoca el siguiente error en el explorador cuando se carga 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 el 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 protocolo HTTP {BASE-URL}/page_cache/block/esi punto final. Este punto de conexión admite fragmentos de contenido cargados dinámicamente y sin restricciones desde los controladores de diseño de Commerce y las estructuras de bloque. El nuevo Handles params size La configuración de establece el valor del punto de conexión handles , que determina el número máximo permitido de identificadores por API. El valor predeterminado de esta propiedad es 100. Los comerciantes pueden cambiar este valor desde el Administrador (Stores > Settings:Configuration > System > Full Page Cache > Handles params size). Consulte Configure la aplicación Commerce para utilizar Barniz.

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

  • El comportamiento predeterminado del isEmailAvailable GraphQL query y el (V1/customers/isEmailAvailable) El extremo REST ha cambiado. De forma predeterminada, las API ahora siempre devuelven true. Los comerciantes pueden activar el comportamiento original configurando la variable Habilitar cierre de compra de invitados en la opción Administrador para yes, pero hacerlo 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 soporta 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 solo con Adobe Commerce 2.4.7 con RabbitMQ 3.13.

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

  • Elasticsearch 8.11 compatibilidad

  • Compatibilidad con Opensearch 2.12 y OpenSearch 1.3

  • Redis 7.2

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

  • jquery/fileUpload se ha eliminado la biblioteca.

Todas las bibliotecas JavaScript y dependencias NPM del código principal 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 son compatibles con PHP 8.3.

Actualizaciones adicionales

  • Compatibilidad con varios cupones por pedido. Los comerciantes ahora pueden configuración del número máximo de cupones que se puede aplicar por pedido con el nuevo Maximum number of coupons per order opción de configuración. Este valor se establece en 1 de forma predeterminada. Ahora puede utilizar 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 al nuevo API de REST de Commerce UPS para admitir las actualizaciones que UPS está realizando en sus Modelo de seguridad de API. (UPS está implementando un modelo de seguridad OAuth 2.0 (tokens de portador) para todas las API). Todas las API XML anteriores de Commerce UPS se han eliminado de la base de código de Adobe Commerce 2.4.7.

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

  • Se ha agregado compatibilidad con el nuevo método de envío USPS Ground Advantage. Esta es una integración lista para usar con el nuevo método de envío de USPS, USPS Ground Advantage, que se publicó en julio de 2023. Esta nueva integración se puede utilizar para recuperar las tarifas de envío y programar las entregas y devoluciones a través del servicio de envío de USPS. El método de envío USPS Ground Advantage reemplaza estos métodos de envío, que se retiraron cuando se lanzó el método de envío USPS Ground Advantage:

    • Masa para minoristas de USPS
    • Servicio de paquetes de primera clase
    • Masa de selección de paquetes
  • Los módulos de envío Temando se han eliminado de la base del código de comercio principal. Esta función 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 de precio de carro de compras activas basadas en cupones en Adobe Commerce sin degradaciones de rendimiento significativas de las operaciones de carro de compras y cierre de compra.

  • Administración mejorada del indexador. El nuevo indexer:set-status El comando admite la administración dinámica del estado del indizador. Los usuarios administradores pueden utilizar este comando para cambiar el estado del indexador 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.

  • El formato JSON ahora es compatible con el REST API de importación. Los comerciantes ahora pueden importar hasta 100 000 registros por minuto en Adobe Commerce en formato JSON.

  • Mejoras de rendimiento de 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 del 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 en el 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 Configuración asincrónica Este módulo habilita las operaciones de guardado de configuración asincrónica ejecutando un trabajo cron que utiliza 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 bin/magento cache:clean config El comando ahora precalienta 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 el config_scopes antes de escribir datos en la caché, 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 resulta en un mayor rendimiento, una menor latencia y un uso eficiente de los recursos 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 considerablemente 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. Usted debe enviar una asistencia de Adobe Commerce ticket para activar GraphQL Application Server en proyectos Pro.

NOTE
GraphQL Application Server no es compatible actualmente con Amazon Simple Storage Service (AWS S3). Clientes de Adobe Commerce en infraestructura en la nube que actualmente utilizan AWS S3 para almacenamiento remoto no puede utilizar 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 composer update se ejecuta, 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. Consulte Información general sobre Adobe Commerce Webhooks

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. Consulte Notas de la versión B2B.

Braintree

  • Vaulted PayPaly Pay Later Cambios—Los clientes que hayan iniciado sesión y que hayan almacenado o devuelto previamente su cuenta PayPal tienen la opción de pagar con:

    • Pay Now (sin tener que iniciar sesión en su PayPal cuenta, el usuario puede pagar con su tarjeta predeterminada)
    • Pagar con una fuente de financiación diferente
    • Paga con una cuenta diferente
    • PayPal Pay Later o PayPal Credit botón
  • Compatibilidad con 3DS paraGoogle Pay—Se incluye el soporte de verificación 3DS para el Google Pay tarjetas no identificadas. Consulte la Documentación del Braintree para obtener más información.

  • Vault Apple Pay Payments: permite a los clientes que han iniciado sesión almacenar o almacenar su Apple Pay pagos a su cuenta de la tienda de Commerce para utilizarlos 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 a los clientes que han iniciado sesión almacenar o almacenar su Google Pay pagos a su cuenta de la tienda de Commerce para utilizarlos 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 a los clientes que han iniciado sesión almacenar o almacenar su Venmo cuentas a su cuenta de la tienda de Commerce para usarlas en futuras transacciones. 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: permita a los clientes que iniciaron sesión almacenar o Vault sus pagos ACH en su cuenta de la tienda de 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 fomentar 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 por PayPal, PayPal Pay Later, Apple Pay, y Google Pay Express pagos.

  • BraintreeNotas de la versión y vínculos de asistencia 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 con GraphQL para todos Braintree métodos de pago 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 han iniciado sesión ahora pueden almacén/almacén nuevas tarjetas de crédito/débito y PayPal cuentas en el área 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 fricción: las transacciones sin complicaciones aceleran el proceso de pago al reducir la cantidad de clics/pasos del cliente para completar una transacción de tarjeta de crédito/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 disputa: Cuando un cliente disputa una transacción en Braintree, el estado de la disputa ahora se pasa a Commerce. Se puede buscar en la Sales > Order y se adjuntan a cada pedido.

Integración de Commerce con Adobe IMS

El paquete de integración de Adobe IMS (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 de carritos más flexible. El clearCart la mutación ahora borra el contenido de un carro de compras especificado en una sola acción. Sustituye al clearCustomerCart mutación, que ha quedado obsoleta.

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

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

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

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

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

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

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

Nuevos campos para las mutaciones existentes

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

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

    • fax
    • middlename
    • prefix
    • suffix

Nuevas consultas y mutaciones

Consultas y mutaciones obsoletas

Inventory management

Inventory management (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 servicios de pago se describen en Finalizar 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 PayPal, Google Pay y Apple Pay Express botones.

Opciones de pago introduce 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 sobre la corrección de errores, consulte Versiones del PWA Studio. Consulte Compatibilidad de versión para obtener una lista de versiones de PWA Studio y sus versiones principales de Adobe Commerce compatibles.

Marco de API web

Uso de 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 el V1 versiones de los extremos. Estos extremos solo 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 REST que proporcionan una solución para una limitación con la API REST GET y POST V1/products/attributes puntos finales. Estos extremos devuelven el mismo valor para is_filterable para ambos Filterable(with results) y Filterable(no results) opciones del Use in Layered Navigation opción. (La is_filterable la propiedad del atributo es del tipo Boolean, que no permite establecer esta propiedad en Filterable(no results).)

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

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

Problemas solucionados

Hemos corregido cientos de problemas en el código principal de 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 la versión beta de Commerce 2.4.7.

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

IU de administración

  • 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
  • Select Las opciones de menú desplegable ahora están visibles en Administración Content > Pages cuando se seleccionan varias páginas en la cuadrícula. GitHub-35386
  • Se ha corregido la ruta al valor predeterminado de system/dashboard/enable_charts en los ajustes 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 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 ambos title y la etiqueta meta title para páginas de productos. GitHub-37680
  • La condición de estado de stock de productos ahora se aplica correctamente a las reglas de productos relacionadas.
  • El Login as Customer ahora se muestra correctamente en los dispositivos móviles.
  • Adobe Commerce ya no muestra el Administrador Add new customer group botón si el usuario administrador que ha iniciado sesión no tiene permiso para agregar un nuevo grupo de clientes.
  • Un usuario administrador con permisos restringidos ahora puede guardar un producto secundario cuyo producto principal esté asignado a un ámbito diferente. Anteriormente, Commerce invalidaba la caché de un producto principal que no estaba asignado al ámbito en el que se cambió el producto secundario.
  • Los usuarios administradores ahora pueden cambiar correctamente entre las vistas de filtro de administración sin que se dañen o pierdan los datos de vista. GitHub-37529
  • 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 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

  • La página de detalles del producto meta itemprop="image" y meta itemprop="description" Las propiedades de ya están disponibles para la imagen principal del producto. 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 se establece 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
  • price y quantity Los valores 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 de paquete cuando Display Out Of Stock* está activada.
  • El customerCart La consulta ahora devuelve todos los descuentos aplicados a los productos agrupados según lo esperado. Anteriormente, los descuentos totales aplicados a un producto agrupado se devolvían como cero.
  • Las páginas de detalles del producto ahora muestran el precio correcto para los productos agrupados para los que se ha aplicado un descuento del 100%. Anteriormente, 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 ha corregido un error que se producía al usar el POST V1/shipment extremo para crear un envío que contenga un producto agrupado. El extremo ahora agrega elementos según lo esperado y ya no devuelve este error: The shipment couldn't be saved.
  • Ahora puede 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 utilizar la variable GET V1/shipment/ Ruta de API para crear un envío con un paquete de producto cuando el producto tiene el together tipo de envío establecido. Los productos agrupados ahora también se validan en función de su propiedad de tipo de envío.
  • Los compradores ahora pueden editar la cantidad de un paquete en su carro de compras de la tienda. Anteriormente, Adobe Commerce no administraba valores nulos para ItemId cuando los productos se editaban en el carro de compras de la tienda y se mostraba un error. GitHub-37696
  • Ahora, los productos agrupados se pueden añadir correctamente a un pedido del administrador mediante SKU que contengan una barra diagonal (/) carácter. Anteriormente, los usuarios administradores no podían utilizar este método para agregar productos a un pedido de administración y 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.
  • Problemas de rendimiento al añadir productos en paquete con opciones no requeridas al carro de compras mediante addBundleProductsToCart se han resuelto las mutaciones.
  • El categoryList query ahora devuelve todas las opciones de paquete como se espera cuando la variable Show out-of-stock products La opción de configuración está habilitada. Anteriormente, las opciones sin existencias no se incluían en la respuesta de consulta.
  • Paquete de productos creado con POST V1/products ahora se realiza correctamente cuando el ámbito del precio de catálogo se establece en website. Anteriormente, se producía una infracción de restricción de integridad. GitHub-35595

Caché

  • Las 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 un producto simple se actualiza por POST V1/products. Anteriormente, no todos los precios se actualizaban en la tienda y las cachés tenían que borrarse manualmente. GitHub-36726

Carro y cierre de compra

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

Regla de precio del carro

  • La condición de subselección de producto de la regla de precio del carro de compras ahora incluye total (incl.tax) como se esperaba. GitHub-34871
  • El If an item is FOUND/NOT FOUND in the cart with ALL/ANY of these conditions true la condición de regla de precio de catálogo ahora funciona correctamente con los atributos category y SKU. Anteriormente, esta condición no se aplicaba correctamente en la lógica de cupones de precio de carro de compras y se aplicaban cupones no válidos a los pedidos. GitHub-37660
  • Ahora puede guardar correctamente una nueva regla de precio del carro de compras con la variable Magento_OfflineShipping extensión deshabilitada. Anteriormente, Adobe Commerce arrojaba este error: report.ERROR: Warning: Undefined array key "simple_free_shipping". GitHub-37580
  • Las reglas de precios del carro de compras ahora se aplican según lo esperado cuando se configura una regla de precios del carro de compras relacionada con un método de envío para la tienda y este método de envío se cambia por otro durante el cierre de compra. Anteriormente, la variable applied_rule_ids El valor nunca se cambió en sales_order_item y la regla de precio del carro de compras no se aplicó al pedido.
  • Ejecutando bin/magento cache:clean o bin/magento cache:flush ya no vacía toda la caché integrada o de página completa de barniz a menos que se especifique lo contrario. GitHub-38301
  • Los comerciantes ahora pueden utilizar el carrusel de productos para crear bloques de CMS cuando catalog_product_price dimensions-mode se establece en website. Anteriormente, Commerce no guardaba el bloque y arrojaba este error de 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 pub/media/catalog/product carpeta. Anteriormente, los directorios ocultos provocaban problemas de espacio en disco durante las operaciones de limpieza. Se pudo finalizar la operación, lo que dejó directorios ocultos temporales que nunca se eliminaron.
  • Los precios de los paquetes de productos ahora se calculan correctamente y se ha resuelto un problema con el orden de las operaciones al calcular los precios. GitHub-35665
  • Se ha eliminado una cláusula innecesaria de catalog_product_price consultas de índice, lo que ha mejorado el rendimiento de este indexador en tiendas con catálogos grandes. GitHub-32382
  • Commerce ya no inserta texto de descripción del producto en la página de detalles del producto Meta Description cuando este campo se haya dejado vacío. Anteriormente, cuando una descripción de producto contenía código de HTML generado por Page Builder u otro editor de HTML, el HTML se mostraba en el Meta Description y no se ha podido dejar vacío este campo.
  • Las opciones de producto configurables en páginas de PDP de producto configurables ya no se ven afectadas por otras opciones de productos configurables de la página. Anteriormente, los productos configurables con atributos desplegables ya no déclencheur una excepción cuando hay un carrusel de productos en la página de detalles del producto. Las opciones de producto configurables no se podían seleccionar cuando había otros productos configurables con opciones de muestra en la página.
  • La información de productos visualizada recientemente ahora se muestra de acuerdo con la configuración de la vista de tienda. Anteriormente, los datos de productos vistos recientemente no se actualizaban por vista de tienda, incluidos el nombre y el idioma preferido.
  • Los vídeos de Vimeo ahora se reproducen como se espera en las páginas de productos en la vista móvil en navegadores web basados en Chromium.
  • El bin/magento catalog:images:resize ahora genera correctamente imágenes de producto para los productos asignados a un sitio web personalizado con un tema personalizado.
  • Metadatos con NULL o NOT NULL Los valores de ahora se guardan para el almacén predeterminado de acuerdo con las Utilizar valor predeterminado como se esperaba. Anteriormente, los metadatos con NULL El valor no se ha guardado cuando esta casilla de verificación no estaba marcada.
  • Los comerciantes ahora pueden eliminar correctamente una imagen existente de la página de detalles del producto y, a continuación, cargar una nueva imagen con el mismo nombre. Anteriormente, en estas circunstancias, la página de producto de la tienda no mostraba la imagen correcta.
  • El productDetail query ahora devuelve el nombre del producto en lugar de nulo cuando la imagen del producto alt el atributo se ha definido como vacío.
  • Los pedidos que incluyen productos descargables y físicos ahora incluyen vínculos de trabajo al producto descargable en cuanto se completa el pedido. Anteriormente, los vínculos a productos descargables no estaban disponibles hasta que se enviaban los productos físicos del mismo pedido.
  • Las reescrituras de URL ahora se actualizan cuando una categoría se mueve de una categoría store/root a otra categoría store/root. Las entradas de base de datos obsoletas ahora se eliminan cuando las subcategorías se transfieren a nuevas categorías principales. La base de datos ahora incluye solo las entradas relevantes. Anteriormente, la variable url_path no se ha actualizado con el ID de tienda correcto.
  • El resto V1/products/<sku>/media el punto final ahora puede procesar la carga simultánea de varias imágenes de medios. Anteriormente, al procesar varias solicitudes simultáneamente, se creaban datos incoherentes y 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, la variable indexer_update_all_views el trabajo de cron ejecutó reindexadores varias veces por un solo producto o categoría.
  • Cuando el estado de stock del producto se actualiza automáticamente a agotado en función de la configuración de stock (cantidad), el estado de stock se actualizará posteriormente a en stock cuando se actualice la cantidad de stock. Anteriormente, la variable stock_status_changed_auto se ignoró cuando la configuración de stock de un producto se actualizó a en stock.
  • La ordenación de la barra de herramientas ahora funciona como se espera en las páginas de búsqueda cuando Remember Category Pagination La configuración está habilitada. GitHub-33220
  • Los atributos de selección múltiple ahora se guardan según lo esperado cuando Use Default Value la casilla de verificación del ámbito de vista de tienda está seleccionada. Anteriormente, esta casilla de verificación no estaba 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.
  • Definido por el usuario special_from_date, special_to_date, news_from_date, y news_to_date Los valores de no se anulan cuando se edita un producto en el ámbito de la vista de tienda.
  • Ahora, Commerce muestra el nombre correcto después de ordenar los productos por su nombre en Administración > Category > Products in category en implementaciones de varias tiendas en las que los nombres de los productos varían según la tienda. GitHub-36208
  • El addProductsToCart mutation ahora devuelve opciones personalizables con datos. Anteriormente, solo devolvía opciones personalizables vacías. GitHub-37599
  • 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 manage_stock cuando el use_config_manage_stock valor 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 la categoría de catalog_category_product_index tabla. Se ha corregido el error tipográfico que activaba este error. GitHub-35417
  • La imagen principal del producto en la página de detalles del producto ya no se desplaza visiblemente hacia abajo durante la carga de la página cuando product_image_white_borders en el tema view.xml está deshabilitada. Anteriormente, la imagen del producto se desplazaba visiblemente hacia abajo durante la carga de la página debido a la configuración de altura incorrecta en Fotorama JS.
  • Ahora se notifica a los clientes sobre caídas en el precio del producto cuando el cliente está suscrito a las alertas de caída de precios. Anteriormente, las notificaciones de caída de precios no siempre se enviaban debido al almacenamiento en caché de nivel de aplicación.
  • La validación del lado del servidor se ha añadido al proceso de creación de atributos de producto a través de la API web. No se puede activar la variable Use in Layered Navigation Catalog cuando la variable Catalog Input Type for Store Owner el valor del campo es Text Field, Text Area, Text Editor, Date, o Date and Time. Anteriormente, los productos se omitían de las categorías y los resultados de búsqueda.
  • La página de categoría ahora se vuelve a cargar con la paginación correcta después de que un comprador abra la página, cambie la paginación, navegue a una página de producto y, a continuación, vuelva a la página de categoría. GitHub-36563
  • Los productos simples sin existencias que son opciones para un producto configurable ahora se muestran como deshabilitados en la tienda cuando Display Out of Stock Products se establece en . Anteriormente, todas las opciones se mostraban como disponibles, a pesar de su estado y disponibilidad real.
  • Al actualizar el atributo de ámbito del sitio web en una vista de almacén específica, ya no se anula el valor de ese atributo en el ámbito global. Anteriormente, los precios de importación de productos cuando había varias filas disponibles con el mismo SKU y store_view_code Esto provocaba precios inexactos para los ámbitos de vista predeterminado y de Todas las tiendas.
  • Los comerciantes ahora pueden añadir una imagen de GIF a la galería de imágenes de un producto desde el administrador. Anteriormente, 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 devolvía este error: Invalid input datetime format of value '1/01/1970. GitHub-37274
  • routes las consultas que utilizan fragmentos ahora devuelven información de categoría según lo esperado. Anteriormente, se producía un error interno del servidor en la página de categoría. GitHub-35906
  • Problemas con el cataloginventory_stock se ha resuelto el proceso de reindexación parcial y el rendimiento del indexador ha mejorado. Anteriormente, las categorías de stock y producto no se actualizaban con precisión.
  • 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 al origen de los productos simples asociados. Anteriormente, seleccionando Skip quantity at this time resultó en la desaparición de las fuentes de productos.
  • El As low as ya no se muestra la etiqueta para un precio de producto configurable cuando todas las opciones tienen el mismo precio.
  • Los usuarios administradores con permisos de sitio web ahora pueden guardar un producto secundario que forme parte de un producto configurable en un contexto de tienda diferente. Los procesos de reindexación ahora omiten este tipo de producto configurable.
  • Los productos configurables con dos productos secundarios ya no se marcan como agotados cuando una actualización programada desactiva un producto secundario.
  • 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 Uses per Coupon ahora está habilitado cuando el tipo de cupón seleccionado es Auto (similar para el tipo de cupón =Specific Coupon). Esto, a su vez, permite al comprador aplicar varios códigos de cupón al mismo precio del carro de compras si los códigos son diferentes.
  • El valor de cupón de un solo uso de un comprador ahora se restaura según lo esperado cuando se cancela el pedido al que se aplicó.
  • El GET V1/coupons/<couponId> ahora, el punto final devuelve la respuesta esperada completa para los cupones creados manualmente, igual que para los cupones generados automáticamente. Anteriormente, se omitían algunos campos (por ejemplo, usage_limit, usage_per_customer, y created_at).

cron

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

Cliente

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

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 contengan dos puntos desde la sección Almacenar direcciones de correo electrónico del Administrador Stores > General. Anteriormente, los comerciantes podían guardar un nombre de remitente que contuviera dos puntos, lo que daba como resultado errores del servidor de correo.
  • 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 asignación de administrador de la empresa contienen un CMS Block URL variable.
  • Las direcciones de correo electrónico de los clientes ahora pueden incluir diacríticos. Anteriormente, la validación del front-end prohibía la creación de un usuario con diacríticos en su dirección de correo electrónico. GitHub-12075
  • Los correos electrónicos de alerta de cotizaciones y precios ahora se traducen según el idioma configurado para la vista de tienda predeterminada del sitio web. Anteriormente, estos correos electrónicos no se traducían.
  • POST V1/order/notify-orders-are-ready-for-pickup ahora envía un mensaje de correo electrónico avisando a los clientes de que un pedido está listo para su recogida solo cuando el pedido está listo. Ahora, el correo electrónico solo se activa cuando se ha satisfecho la solicitud sin excepción.

Marcos

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

Correcciones generales

  • Se ha cambiado el nombre del reponseBody variable a responseBody in app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/NewConditionHtml.php.GitHub-38093
  • La programación de actualizaciones de productos ya no borra los datos de atributos de selección múltiple. Anteriormente, cuando se programaba una actualización para un producto, los datos de atributos de selección múltiple del producto se borraban por error. GitHub-37675
  • Guardar un producto con un ámbito de almacén no predeterminado ya no provoca que los atributos sin modificar se conviertan en ámbitos de almacén al cargarse mediante ProductRepository. GitHub-8897
  • 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 regla de producto relacionada Es uno de ahora funciona correctamente cuando se configura con la variable Productos para combinar configuración. 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.
  • Las contraseñas ahora se muestran según lo esperado cuando se define la variable Show Password La casilla de verificación de la página de inicio de sesión está activa.
  • El atributo del sistema Restablecer token de contraseña de la entidad del cliente (rp_token) la validación se ha eliminado de la validación de atributos durante la creación de la cuenta del cliente, y la validación de diacríticos se incluye únicamente en el correo electrónico del cliente resultante. Anteriormente, Commerce no guardaba el registro de cliente y mostraba este error: Something went wrong while saving the customer.
  • Ahora puede guardar correctamente las ediciones en la cuadrícula Páginas de administración y Bloques después de eliminar una columna. GitHub-37525
  • Los administradores de la empresa ahora pueden agregar usuarios de la empresa desde la tienda. Anteriormente, Commerce registraba este error cuando un usuario administrador intentaba agregar un usuario nuevo: 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.
  • La dirección del cliente administrador Estado/Provincia El campo ahora conserva el último valor guardado según lo esperado. Anteriormente, cuando se eliminaba el valor de este campo, Commerce seguía mostrando el valor eliminado en la variable Estado/Provincia field. 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á activada. Anteriormente, la exploración de la página de categoría de fuente RSS resultaba en Elasticsearch CRITICAL errores en archivos de registro al RSS Feed Top Level Category se ha activado.
  • El valor correcto ahora se guarda para gws_store_groups cuando se cambia el ámbito de la función durante la creación de la función del usuario. Anteriormente, cuando el ámbito de función se seleccionaba como All, el gws_store_groups el valor se guardó como nulo durante la creación del usuario, pero no durante la edición de funciones. Además, si el ámbito de función se seleccionó como Customy, a continuación, el gws_store_groups el valor siempre se ha guardado como nulo.
  • Ahora se puede acceder a la página de restablecimiento de contraseña haciendo clic en el vínculo Admin reset password de la página de inicio de sesión de Admin cuando el Add Store Code to Urls La configuración está habilitada. El vínculo Admin reset password abría anteriormente la página de inicio de sesión o la página 404.
  • El intervalo de fechas del tablero de estadísticas de administración ahora se calcula en función de la zona horaria establecida en los ajustes de configuración y, a continuación, se convierte a UTC para recuperar datos de la base de datos.
  • El filtro de jerarquía de CMS funciona según lo esperado después de filtrar una vista de tienda y hacer clic en Save en administración Content > Hierarchy. Anteriormente, al hacer clic en Save actualizó la página, pero se perdió el contexto y la vista de tienda seleccionada ya no se mostraba.
  • Haciendo clic en Send invitation botón (Administración) Marketing > Private sales > Invitation) ahora envía una solicitud de POST junto con la clave del formulario y envía la invitación correctamente. Anteriormente, al hacer clic en este botón, no estaban presentes ni el método POST HTTP ni la clave del formulario.
  • Los archivos de cero bytes ahora se pueden copiar correctamente en el almacenamiento remoto con AWS S3.
  • Los usuarios administradores ahora pueden añadir una nueva dirección de cliente desde el Administrador cuando el cliente se ha creado para otro sitio web cuyo ID de tienda no coincide con el ID de sitio web. Anteriormente, Adobe Commerce mostraba este mensaje emergente: Something went wrong. GitHub-36582
  • La página del editor de bloques de CMS ahora muestra el widget correcto block_id valor. GitHub-29644

Tarjetas de regalo y envoltorio

  • Los comerciantes ya no pueden crear una tarjeta regalo con un valor negativo.
  • El setGiftOptionsOnCart La mutación ahora elimina el envoltorio para regalos de un pedido según lo esperado. El valor de gift_wrapping_id ahora no está configurado en el nivel de carro de compras. Anteriormente, la variable gift_wrapping_id se ha actualizado 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.
  • El setGiftOptionsOnCart La mutación de 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.
  • El registro de regalos Event Information La etiqueta de 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 send() llama a una vez que la emulación ha finalizado durante el getInfoBlockHtml() y no se registra ningún error. Anteriormente, la variable system.log el archivo se inundó con este error: main.ERROR: Environment emulation nesting is not allowed. GitHub-35603
  • Ahora puede utilizar la variable updateCartItems mutación 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.
  • El addProductsToCart la mutación 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

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

Imagen

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

Importar/exportar

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

Índice

  • Rendimiento mejorado del catalogrule_product indexador cuando no se ha definido 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.
  • Crear un tipo de producto personalizado cuando los indizadores están configurados en Update on schedule ya no provoca la actualización del índice cron tarea que debe fallar. GitHub-36471
  • 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, a continuación, volvía a indexar durante un catalogpermissions_product o catalogpermissions_category proceso de indexación. 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 ha añadido un return al controlador de habilitación de uso de administrador. Anteriormente, no había return y el controlador en FrontendController La clase se ha gestionado incorrectamente. GitHub-31374
  • MySQL reemplazado CREATE TEMPORARY TABLE ... LIKE con refactorizado CREATE TEMPORARY TABLE para conformidad 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 a explode como segundo argumento.
  • restricted_classes.php ha reemplazado Zend_Validate_File_Upload. Anteriormente, el validador se bloqueaba durante la carga de un archivo de importación mayor que el valor configurado en php.ini . GitHub-37281
  • 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 Las consultas con datos de agregación ahora devuelven los valores de etiqueta correctos para los atributos de producto de tipo booleano. GitHub-29123
  • Los archivos CSS ya no se dañan al combinarse al var/tmp y pub/static están en diferentes sistemas de archivos y CSS Merging Enabled está activada. Los archivos temporales se han creado en el mismo directorio estático que el archivo de destino para garantizar que ambos archivos estén en el mismo sistema de archivos. Como resultado, la llamada para cambiarle el nombre es atómica. GitHub-29172
  • Se corrigió un posible error al llamar a una función miembro getId() el int, que ocasionalmente activaba una excepción cuando un cliente era visto en el Administrador.
  • Las comprobaciones de tipos ahora se aplican al tipo de matriz en el procesador de configuración del tema de diseño. GitHub-34440

Inventory management

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

Registro

  • 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 Commerce Media Storage 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 a un boletín informativo. 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.
  • Ahora, Commerce aplica el importe de descuento correcto a los pedidos parcialmente cancelados. Anteriormente, el importe de descuento se calculaba en la variable base_discount_cancelled se calculó incorrectamente cuando se cambió un pedido. Se ha añadido compatibilidad con valores negativos a las facturas de pedidos con descuento.
  • El resto V1/orders el punto final 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.
  • Ahora, Commerce 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 Admin.
  • 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 Request-URI Too Long error 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 ha mejorado el rendimiento del OrderRepository::get() reduciendo el número de veces que carga un pedido de la base de datos. Anteriormente, este método cargaba un pedido varias veces. GitHub-36636
  • Los comerciantes ahora pueden generar notas de abono para pedidos que contienen algunos artículos con un total cero cuando hay otros artículos de pedido disponibles para devolución. Anteriormente, los comerciantes no podían realizar varios reembolsos cuando un cliente tenía un descuento del 100% en algunos artículos del pedido.
  • Los vínculos entre productos secundarios y principales ahora se muestran en la página de pedidos durante la reordenación del producto secundario desde el administrador. GitHub-37028
  • La sección de cabecera de la página de pedido ahora contiene la información esperada sobre la factura, la nota de abono y el envío enviados. GitHub-27474
  • Las notas de abono de los pedidos que solo contienen un producto configurable ahora se generan correctamente. Anteriormente, la variable isLast() la función no ha devuelto true como se esperaba. GitHub-36722
  • Rendimiento mejorado del aggregate_sales_report_bestsellers_data trabajo cron al optimizar la consulta de datos principal.
  • 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 itemy el usuario administrador no pudo crear una devolución 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 registraba 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 GET V1/orders/<OrderID> ahora, endpoint devuelve información sobre los productos configurables y simples en el orden, independientemente del estado de stock de los productos simples. Los usuarios administradores ahora solo pueden realizar pedidos si los artículos seleccionados (productos) están en stock o son vendibles. Anteriormente, esta API solo devolvía información sobre los productos que estaban en stock.
  • La página de nota de abono ya no se bloquea cuando el envío gratuito está activado cuando el precio de envío incluye impuestos y los cálculos de impuestos se aplican después de los descuentos. Anteriormente, Adobe Commerce arrojaba un Division by zero excepción. GitHub-36800
  • Uso del rest/V1/orders/{id}/comments el punto final para publicar un comentario sobre un pedido sin proporcionar el estado del pedido ya no afecta a la visualización del pedido. Anteriormente, el estado del pedido se registraba como NULL en sales_order y sales_order_grid y ni la página Mis pedidos ni la cuadrícula de orden de administración mostraban el orden. GitHub-34180
  • 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 la variable Magento_AsyncConfig El módulo está desactivado. Anteriormente, las plantillas de correo electrónico solo contenían HTML sin procesar.
  • Se ha mejorado el rendimiento de las operaciones de guardado de Page Builder en el explorador Chrome.
  • Ahora puede utilizar la opción Page Builder en Administración > Content > Pages para insertar texto copiado en todos los estilos utilizando text Elemento. 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 ejecutándose en el explorador Chrome era lento y Commerce registraba 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 Uncaught TypeError Error de JavaScript.
  • Las imágenes cargadas a través del editor de Page Builder ahora están etiquetadas como utilizadas en Content > Media Gallery. Anteriormente, estas imágenes se marcaban como no se usa en ninguna parte en 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 tabindex Atributo de HTML a etiquetas de hipervínculo a al editar un hipervínculo, guarde una plantilla.
  • El widget de productos y la vista previa del Page Builder ahora gestionan correctamente los caracteres especiales del HTML. Anteriormente, el widget de producto no mostraba correctamente los SKU que contenían el & carácter.
  • El contenido del elemento de texto de Page Builder ahora se actualiza según lo esperado al seleccionar y actualizar el bloque de contenido completo en el modo de vista previa.
  • Copiar y pegar texto de un editor de texto de Page Builder a otro ahora funciona según lo esperado. Anteriormente, la página en la que intentaba pegar texto no se podía guardar y Adobe Commerce mostraba este error de consola: [ERROR] Page Builder was rendering for 5 seconds without releasing locks..
  • Page Builder column-block El tipo de contenido creado en versiones anteriores de Page Builder ahora se muestra correctamente.
  • Se ha mejorado el filtrado de la descripción de metadatos del producto durante la creación del producto desde Admin. Anteriormente, si Page Builder estaba habilitado, la descripción de los metadatos del producto se generaba en función de los valores predeterminados {{name}} {{description}} máscara. La máscara de metadescripción de producto predeterminada ahora está compuesta por {{name}}. GitHub-36107
  • Añadir un bloque dinámico sin contenido ya no genera déclencheur de error.

Pago

  • Ahora, Commerce gestiona correctamente los errores 502 de PayPal al evitar la creación de pedidos cuando se produce este error. Anteriormente, los pedidos se seguían creando a pesar de un error 502 de PayPal, que conducía a incoherencias entre los registros de comercio y los de PayPal.
  • Las transacciones de Pago y envío de PayPal Express ahora incluyen SKU de productos secundarios y títulos de productos completos. El Magento/Paypal/Model/Cart.php Este archivo ahora recopila los SKU de producto secundarios con su título de producto principal para identificar el título del producto con el SKU secundario. GitHub-36808
  • El Card Security Code Does Not Match El ajuste de configuración ahora se procesa según lo esperado durante el proceso de pago de Payflow Pro. Anteriormente, este proceso de evaluación nunca se completaba, lo que bloqueaba el cierre de compra.
  • La opción de método de pago Vault ya no aparece en el flujo de trabajo de cierre de compra del administrador cuando el comprador no tiene un token de Vault. GitHub-36273
  • El Venmo ahora se puede ocultar cuando los botones de PayPal están activados. Anteriormente, la variable Venmo No se ha podido eliminar el botón del carro de compras, del minicarrito, de los detalles del producto o de las páginas de cierre de compra.
  • Los compradores ahora pueden seleccionar un método de envío al aplicar el código de cupón durante el cierre de compra. Anteriormente, en estas condiciones, 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 el Enable Vault for Card Payments está activada. 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 método My billing and shipping address are the same botón.
  • Se han resuelto problemas con el cierre de compra con PayPal mediante Braintree después de actualizar desde Adobe Commerce 2.4.5-p2. GitHub-37242
  • Los números de teléfono ahora se representan según lo esperado con las direcciones en los campos de dirección de envío emergente de Google Pay. Anteriormente, faltaban números de teléfono.
  • Los pedidos ahora se realizan correctamente con el Braintree cuando la respuesta del Braintree incluye un valor vacío para threeDSecureInfo/eciFlag. Anteriormente, se producía un error de PHP durante el cierre de compra cuando este valor estaba vacío.
  • 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 PayPal para adquirir un producto configurable sin seleccionar primero las opciones requeridas. Anteriormente, los compradores podían hacer clic en PayPal y, posteriormente, se redirigieron de nuevo a la página del producto con un error:
  • El PayPal ahora se muestra según lo esperado en las páginas del carro de compras y del minicarro de compras. Anteriormente, este botón no se mostraba en la página del carro de compras y se duplicaba en la página del minicarrito.

Rendimiento

  • Varios clics en la variable Ventas > Pedidos el menú desplegable acción masiva de la página ya no genera varias solicitudes de POST. GitHub-37997
  • Solo 200 o 404 Las respuestas de 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, un estado HTTP 200 con private en el encabezado Cache-Control se almacenaba en caché, y se almacenaba en caché un estado HTTP 301 a menos que contuviera private en su encabezado Cache-Control. GitHub-36492
  • Se eliminaron los no utilizados Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper de Magento\Catalog\Model\ProductRepository. Anteriormente, ProductRepository cargó este asistente, que es un Adminhtml controlador. GitHub-37864
  • Se ha mejorado el rendimiento de la velocidad de carga de la página cuando se añaden muchas opciones a los productos agrupados. GitHub-29409
  • Proceso de asignación de productos a categorías desde el Products in Category se ha optimizado. El Assign y Remove botones en la Add Product by SKU ahora están desactivadas hasta que los productos se carguen completamente en la cuadrícula. Anteriormente, los usuarios administradores no podían agregar productos por SKU en catálogos que contenían millones de productos registrados.
  • El rendimiento de la addProductToCart ha mejorado la mutación al ejecutar con muchos atributos de producto personalizados. Anteriormente, cuando esta mutación se ejecutaba con muchos atributos de producto ( aproximadamente 1000), 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 bin/magento setup:perf:generate-fixtures setup/performance-toolkit/profiles/ee/small.xml ahora se ejecuta correctamente cuando se ejecuta varias veces. Anteriormente, arrojaba este error cuando se ejecutaba más de una vez: Coupon with the same code already exists.

Promoción

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

reCAPTCHA

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

Informes

  • El informe Pedidos (REPORTS > Sales > Orders) ahora incluye valores de pedido correctos cuando los pedidos son generados por tiendas que utilizan monedas no predeterminadas. Anteriormente, este informe incluía valores incorrectos. GitHub-36742
  • Se ha revisado la información engañosa en el formulario de informe de pedido de ventas para mayor claridad.
  • Los usuarios administradores ahora pueden buscar registros con correos electrónicos que contengan + (más) anuncios de la página Informe de Carros de compras abandonados. GitHub-36560
  • Los nombres de las transacciones de GraphQL ahora se muestran correctamente después de deshabilitar New Relic desde el Administrador de comercio. 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. El magento_reward_balance_warning_notification y magento_reward_expire_points las tareas cron 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

  • El resto POST /V1/returns La solicitud de 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 añaden automáticamente al formulario EAV predeterminado cuando la variable Show on Storefront El atributo RMA se establece en no. Anteriormente, la ventana emergente de detalles del elemento RMA estaba en blanco cuando se creaba un atributo de devolución personalizado y el Show on Storefront El atributo RMA se ha establecido en no.
  • El valor del Enable RMA ahora coincide con el valor especificado en la configuración cuando el atributo Use Config la casilla de verificación de la página de edición del producto está activada.
  • El Enable RMA El atributo en el nivel de producto individual ahora respeta la configuración de la tienda RMA. 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 el search_query , cuanto más tardara la consulta en completarse.
  • La ordenación alfabética de productos por nombre ahora funciona correctamente para nombres que contienen caracteres turcos.
  • El Use in Search Results Layered Navigation la propiedad de atributos del producto ahora solo se muestra cuando Use in Search se establece en Yes.
  • Los filtros de SKU y precio de búsqueda avanzada ahora funcionan correctamente cuando se aplican juntos en una búsqueda avanzada. GitHub-37581
  • Ya no se realizan búsquedas en campos de búsqueda vacíos. Esto reduce el tamaño del search_query tabla. Anteriormente, las consultas incorrectas o la consulta en campos de búsqueda vacíos devolvían un conjunto de datos enorme, lo que aumentaba el tamaño del search_query y ha originado problemas con /tmp.
  • Los filtros de tienda ahora funcionan según lo esperado al ordenar las entradas de catálogo con atributos personalizados desplegables.
  • Los resultados de búsqueda ahora muestran los resultados relevantes en función de la ponderación de búsqueda de los atributos según lo esperado.
  • Texto informativo en la sección Search Weight atributo de Storefront Properties campo de entrada en administración Stores > Attributes > Product ahora describe posibles valores. GitHub-36646

Envío

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

Sitemap

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

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 arrojaba 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.
  • El staging.synchronize_entity_period cola de consumidor en magento_bulk ya no aumenta cuando no hay actualizaciones de ensayo que procesar. Anteriormente, cuando cron se configuró para ejecutarse cada minuto, un nuevo registro relacionado con el staging.synchronize_entity_period consumidor se agregaba a esta tabla cada minuto.
  • 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 Regular Price valor cuando se selecciona una opción personalizada para un producto que tiene un Special Price valor cuando Price Display Settings está configurado para incluir impuestos.
  • Ahora, los impuestos se incluyen según lo esperado en el precio de envío del flujo de trabajo de cierre de compra, tal como especifican los ajustes de configuración.
  • El cart query applied_taxes el valor de respuesta ahora incluye todas las reglas fiscales individuales según lo esperado. Anteriormente, devolvía el valor fiscal total cuando se configuraban varias reglas fiscales.
  • El icono contraer/expandir para Additional Settings La sección durante la creación de la regla fiscal ahora funciona según lo esperado. Anteriormente, solo funcionaba el icono de expansión. GitHub-37922
  • Ahora puede editar el valor de País y Región de Tipo Impositivo desde la página de edición de Regla Fiscal según lo esperado. Anteriormente, las ediciones realizadas desde esa página no se guardaban.
  • El importe de impuestos en el área de estimación del carro de compras ahora se actualiza según lo esperado cuando se actualiza el método de envío. Anteriormente, la tasa impositiva no se actualizaba después de que un comprador cambiara de país durante el registro de salida.
  • El tax class El valor de los productos simples recién creados ahora se establece en el valor del producto principal al crear nuevas variaciones de un producto configurable existente en el ámbito de la vista de tienda. Anteriormente, este valor se establecía en ninguno. Como resultado, no se añadió ningún impuesto a estos productos en el carro de compras y los clientes recibieron un impuesto inferior al cobrado. GitHub-37180

Prueba

  • Se ha mejorado la AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders pruebe para eliminar los errores causados por la finalización prematura del campo de correo electrónico.
  • StorefrontVerifyProductAfterPartialReindexOnSeveralWebsitesTest se ha refactorizado para mejorar la fiabilidad. GitHub-38359
  • Se ha corregido el AdminSimpleProductwithTextandVisualSwatch pruebe introduciendo un paso adicional que establezca explícitamente los atributos que se utilizarán en la búsqueda.
  • Error tipográfico corregido en SortbyTest prueba unitaria. GitHub-37792
  • Se eliminaron las referencias a clases inexistentes en las pruebas unitarias. GitHub-37636
  • Se ha mejorado la AdminCreateOrderWithVirtualProductFromDefaultSourceWithBackorders pruebe para eliminar los errores causados por la finalización prematura del campo de correo electrónico.
  • Refactorizado Magento\GraphQl\Catalog\ProductSearchTest::testFilterProductsBySingleCategoryId prueba para gestionar el orden aleatorio de categorías en products respuestas a consultas.
  • Problemas de rendimiento con cabinas grandes en TableNameSniff se han resuelto.
  • 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 error.
  • CollectionTest::testGetDateRangeFirstPart() ahora corresponde al horario de verano.
  • Aviso de obsolescencia corregido para 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
  • Comportamiento corregido del cursor en el registro de regalos Message campo de texto.
  • 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.
  • Atributos del cliente personalizados (tipo) File attached) ahora funcionan correctamente con imágenes que se han eliminado y luego cargado. Anteriormente, los atributos personalizados cargados, eliminados y cargados de nuevo no se podían guardar desde la tienda.
  • Se ha corregido un error de sintaxis en el archivo de plantilla de calendario. GitHub-37725
  • Los usuarios administradores ahora pueden cambiar el logotipo de la tienda cuando el modo de tienda única está activado. Anteriormente, 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.
  • Las contraseñas ahora se muestran según lo esperado cuando se define la variable Show Password La casilla de verificación de la página de inicio de sesión está activa.
  • 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.
  • Eliminación del nodo de rutas de exploración mediante la configuración remove=true a través del XML de diseño ya no se elimina el título de página de la página de categoría. Anteriormente, al eliminar las rutas de exploración de esta manera se quitaba el título de página de la página de categoría.
  • El formulario de registro de cliente ahora se carga según lo esperado cuando incluye atributos del cliente de selección múltiple. Anteriormente, Adobe Commerce producía esta excepción: [2023-03-05T05:57:40.032602+00:00] report.CRITICAL: Exception: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /magento2ee/app/code/Magento/CustomAttributeManagement/Block/Form/Renderer/Multiselect.php on line 53 in /lib/internal/Magento/Framework/App/ErrorHandler.php:62. GitHub-37189
  • Los mensajes de bienvenida que contienen comillas simples ahora se representan correctamente en la tienda sin errores de consola. Anteriormente, si un mensaje de bienvenida contenía una comilla simple, el mensaje de bienvenida no se cargaba durante la representación de la tienda. 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 all stores view ámbito.
  • El widget de lupa ahora se carga según lo esperado en la página del producto.
  • Las opciones personalizables de varias líneas ahora se representan correctamente en los documentos de PDF de facturas, envíos y notas de abono. Anteriormente, el texto multilínea iba precedido de un salto de página inesperado y, si el texto superaba la página, se truncaba.
  • Los usuarios administradores ahora pueden añadir una nueva dirección de cliente desde el Administrador cuando el cliente se ha creado para otro sitio web cuyo ID de tienda no coincide con el ID de sitio web. Anteriormente, 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 asignación de administrador de la empresa contienen un CMS Block URL variable.
  • Los mensajes de error asociados con el envío de comentarios en la página de detalles del pedido ahora son más informativos. Anteriormente, cuando un comprador hacía clic en Submit comment sin cambiar el estado del pedido ni introducir texto en el área de comentarios, 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 del Administrador Marketing > Cart Price Rules después de seleccionar una fecha para un campo. Anteriormente, después de seleccionar una fecha para un campo, el icono del calendario ya no se mostraba en otros campos y 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 activaba el siguiente error: report.CRITICAL: Exception: Deprecated Functionality: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /magento2ee/app/code/Magento/CustomAttributeManagement/Block/Form/Renderer/Multiselect.php on line 53 in /lib/internal/Magento/Framework/App/ErrorHandler.php:62. GitHub-37189
  • Al hacer clic en una miniatura de vídeo en el modo de pantalla completa de la galería de productos, ahora el vídeo se muestra según lo esperado. Anteriormente, el vídeo no se mostraba y la consola del explorador mostraba un error de JavaScript. GitHub-36456
  • Se ha agregado una variable a la línea de copyright que se actualiza automáticamente cada año. GitHub-36776
  • El regulador de imagen de la página de producto ahora funciona como se espera en la vista móvil. Anteriormente, solo se mostraba correctamente la primera imagen. GitHub-37232

Reescrituras de URL

  • El crossorigin se ha añadido el atributo 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, las reescrituras de URL no se generaban para tiendas no predeterminadas cuando la visibilidad del producto se establecía en no visible en el ámbito de almacenamiento predeterminado.
  • Category::getUrl() ya no obtiene una redirección 301. GitHub-38152
  • Commerce ya no genera reescrituras de URL de producto para categorías raíz y para productos que están configurados en Not Visible Individually en configuraciones de varias tiendas al generar reescrituras de URL que faltan para tiendas personalizadas.
  • Las etiquetas de URL canónicas ahora reflejan los cambios según lo esperado después de actualizar la propiedad de clave de URL de categoría. Anteriormente, se utilizaba la URL de categoría obsoleta, que activaba inmediatamente la redirección a la nueva URL.
  • Las reescrituras de URL de producto de categoría ahora se generan según lo esperado para todas las vistas de tienda cuando se agrega un producto a una categoría. GitHub-32910
  • Commerce ya no genera un error cuando intenta crear una redirección 301/302 para una URL de producto cuando Generar reescrituras de URL de categoría/producto está activada. Cuando se crea un producto y se asigna a una categoría, se crean reescrituras de URL automatizadas: una para la URL directa y otra para el producto a través de la ruta de la categoría. Cuando se crea una nueva reescritura de URL de producto, se comprueban las correlaciones entre el producto, la categoría y la tienda. Esta comprobación ahora se basa en las propiedades de entidad correlacionadas (categoría y producto). Anteriormente, esta comprobación se realizaba en reescrituras de URL preexistentes.
  • Las reescrituras de URL de categorías ahora se generan para todas las vistas de tiendas cuando se importa una nueva categoría desde un archivo CSV.
  • Las configuraciones de sufijo de URL de producto y sufijo de URL de categoría ahora coinciden con los sufijos del url_rewrite tabla. Anteriormente, se producían condiciones de carrera al actualizar las configuraciones de sufijos de URL, y los sufijos de URL configurados y el url_rewrite La tabla no coincide.
  • 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 filtro 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 utilizar la variable Categories para reglas de Visual Merchandiser. Anteriormente, Adobe Commerce producía esta excepción: Something went wrong while saving the category.

Marco de API web

  • Commerce ya no muestra un Integration not secure advertencia en el administrador System > Extensions > Integrations cuando la variable Callback URL y Identity link URL Los campos de están vacíos. GitHub-36407
  • Se ha añadido la taxes, itemized_taxes, y additional_itemized_taxes atributos de extensión para Magento\Sales\Api\Data\OrderInterface. Estos atributos le permiten guardar los impuestos aplicados con llamadas REST de pedidos.
  • La API de REST de precios de nivel ahora admite cantidades decimales. Anteriormente, esta API no permitía cantidades decimales aunque la variable Use Decimal Quantity se ha habilitado la configuración.
  • El resto V1/orders/{id}/comments el punto de conexión ya no cambia el estado de un pedido al intentar agregar un comentario al estado de un pedido pendiente. Ahora se muestra un error informativo. Anteriormente, este punto final cambiaba el estado del pedido al agregar un comentario.
  • La API de REST GET y POST V1/products/attributes el extremo ya no devuelve el mismo valor para is_filterable atributo para ambos Filterable(with results) y Filterable(no results) opciones del Use in Layered Navigation opción. Anteriormente, este extremo devolvía el mismo valor porque la variable is_filterable la propiedad del atributo era del tipo Boolean, que no permitía establecer esta propiedad en Filterable(no results). GitHub-37979
  • Los desaparecidos media_gallery_entries se ha añadido el campo a REST V1/configurable-products/sku/children punto final. Anteriormente, a esta función le faltaba el código necesario para almacenar y mostrar media_gallery_entries. GitHub-37607
  • El resto V1/carts/mine/estimate-shipping-methods El método ahora valida todos los niveles de datos del campo de carga útil y devuelve un código HTTP 400 para datos no válidos. Anteriormente, solo se validaba el primer nivel de carga útil de API y, si se devolvían datos no válidos en niveles no validados de la carga útil, 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 POST /V1/products/tier-prices el extremo ahora devuelve un mensaje de error más informativo cuando se utiliza un nombre de grupo de clientes no válido durante la creación del precio de nivel. Anteriormente, 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.
  • El POST V1/guest-carts la llamada ya no envía pedidos de invitado cuando Allow Guest Checkout está deshabilitada.
  • Ahora puede abrir un pedido del administrador con el estado Received cuando AsyncOrder no está activada. Anteriormente, no se podía abrir la página de detalles del pedido desde el Administrador cuando cambiaba el estado del pedido POST V1/orders.
  • Adobe Commerce ahora devuelve correctamente el content atributo (código de imagen base64) en GET V1/products/sku/media respuestas de API de medios del producto. El content anteriormente el atributo no aparecía en la respuesta.

Lista de deseos

  • Commerce ahora muestra un mensaje que indica que un artículo ya se ha añadido 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 mediante Compositor.

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