Notas de la versión de Adobe Commerce 2.4.3
Adobe Commerce 2.4.3 incorpora mejoras en el rendimiento y la seguridad, además de mejoras significativas en la plataforma. Las mejoras de seguridad incluyen la expansión de la cobertura de reCAPTCHA y la inclusión de una limitación de velocidad integrada. Las dependencias del compositor principal y las bibliotecas de terceros se han actualizado a las últimas versiones compatibles con PHP 8.x.
Esta versión incluye más de 370 nuevas correcciones del código principal y 33 mejoras de seguridad. Todos los problemas conocidos identificados en las notas de la versión 2.4.2 de Adobe Commerce se han corregido en esta versión.
Consulte las notas de la versión de Adobe Commerce 2.4.2-p2 para obtener información sobre Adobe Commerce 2.4.2-p2.
Otra información de la versión
Aunque el código de estas funciones está empaquetado con versiones trimestrales , varios de estos proyectos (por ejemplo, B2B, Page Builder y Progressive Web Application (PWA) Studio) también se publican de forma independiente. Las correcciones de errores para estos proyectos se documentan en la información de versión independiente y específica del proyecto que está disponible en la documentación de cada proyecto.
Aplique MC-43048__set_rate_limits__2.4.3.patch para solucionar el problema de limitación de velocidad de API
Esta revisión proporciona una solución para el problema en el que las API web no pueden procesar solicitudes que contengan más de 20 elementos en una matriz. Este problema afecta a las implementaciones que ejecutan el Magento Open Source 2.4.3, Adobe Commerce 2.4.3 o 2.3.7-p1. Se ha añadido una limitación de velocidad integrada a estas versiones para evitar ataques de denegación de servicio (DoS), y el máximo predeterminado se estableció en 20. Este parche revierte el límite predeterminado a un valor más alto. Si sospecha que su tienda está experimentando un ataque de denegación de servicio, Adobe recomienda reducir los límites de entrada predeterminados a un valor más bajo para restringir el número de recursos que se pueden solicitar. Consulte el artículo de la base de conocimiento API web no puede procesar solicitudes con más de 20 elementos en la matriz.
Aplique AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch para solucionar el error grave de PHP en la actualización
Durante la actualización a Adobe Commerce 2.4.3 puede producirse el siguiente error grave:
PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74
Este error se debe al uso de la función str_contains
, que es una función de PHP 8.x. Adobe Commerce 2.4.3 no admite PHP 8.x. Este hotfix reemplaza esta función con una función compatible con PHP 7.x. Consulte el artículo de la base de conocimiento Actualización de Adobe Commerce 2.4.3, 2.3.7-p1 Error irrecuperable de PHP.
Aplicar AC-3022.patch
para seguir ofreciendo DHL como transportista
DHL ha introducido la versión de esquema 6.2 y dejará de utilizar la versión de esquema 6.0 en un futuro próximo. Adobe Commerce 2.4.4 y las versiones anteriores compatibles con la integración de DHL solo admiten la versión 6.0. Los comerciantes que implementen estas versiones deben aplicar AC-3022.patch
lo antes posible para seguir ofreciendo DHL como transportista. Consulte el artículo de la base de conocimiento Aplicar un parche para seguir ofreciendo DHL como transportista para obtener información sobre cómo descargar e instalar el parche.
Características destacadas
Busque los siguientes aspectos destacados en esta versión.
Mejoras sustanciales de seguridad
Esta versión incluye 33 correcciones de seguridad y mejoras de seguridad de la plataforma. Muchas de estas correcciones de seguridad se han trasladado a 2.4.2-p2 y 2.3.7-p1.
Treinta y tres mejoras de seguridad que ayudan a cerrar las vulnerabilidades de ejecución de código remoto (RCE) y ejecución de scripts en sitios múltiples (XSS)
Hasta la fecha no se han producido ataques confirmados relacionados con estos problemas. Sin embargo, es posible que se aprovechen ciertas vulnerabilidades para acceder a la información de los clientes o hacerse cargo de las sesiones de administrador. La mayoría de estos problemas requieren que un atacante obtenga acceso primero al administrador. Como resultado, le recordamos que tome todas las medidas necesarias para proteger a su administrador, entre las que se incluyen, entre otras, las siguientes: inclusión en la lista de permitidos de IP, autenticación de doble factor, uso de una VPN, uso de una ubicación única en lugar de /admin
y buena higiene de la contraseña. Consulte Boletín de seguridad del Adobe para ver una discusión de estos problemas corregidos.
Mejoras de seguridad adicionales
Las mejoras de seguridad para esta versión mejoran el cumplimiento de las prácticas recomendadas de seguridad más recientes, que incluyen:
-
Un nuevo complemento de Compositor ayuda a evitar la confusión de dependencias e identifica paquetes malintencionados con los mismos nombres que los paquetes internos en el repositorio de paquetes públicos. Consulte el nuevo complemento de compositor de versiones de Adobe con la publicación de blog 2.4.3.
-
La limitación de velocidad está ahora integrada en las API para evitar ataques de denegación de servicio (DoS). Las API web ahora imponen restricciones en el tamaño o el número de recursos (el máximo predeterminado se establece en 20 y se puede configurar en un valor diferente según las necesidades comerciales) que un cliente puede solicitar. Consulte Limitación de velocidad para obtener información sobre cómo configurar estas restricciones.
-
Se ha ampliado la cobertura de ReCAPTCHA para incluir:
-
Las API web que tienen páginas de HTML correspondientes se tratan mediante ReCAPTCHA. (Esto excluye las API web a las que se accede mediante integraciones). La cobertura ReCAPTCHA protege los puntos finales de ataques de spam. Cuando un servicio de integración de terceros que utiliza OAuth tiene acceso a las API web, ReCAPTCHA se deshabilita.
-
La página de tienda Realizar pedido y las API web relacionadas con pagos. La protección ReCAPTCHA para estas páginas está desactivada de forma predeterminada y se puede activar desde el Administrador. Esta cobertura agrega un mecanismo de fuerza anti-bruta para proteger las tiendas de ataques de carding.
-
Mejoras de infraestructura
Esta versión incluye mejoras que mejoran la calidad del marco de trabajo y las siguientes áreas funcionales:
-
Cuenta del cliente
-
Catálogo
-
CMS
-
OMS
-
Importar/Exportar
-
Promociones y direccionamiento
-
Carro y cierre de compra
-
B2B
-
Ensayo y previsualización
PayPal más tarde ahora es compatible en implementaciones que incluyen PayPal. Esta función permite a los compradores pagar un pedido en cuotas quincenales en lugar de pagar el importe completo en el momento de la compra.
Nuevo modo de indización use_application_lock
. El modo use_application_lock
le permite habilitar la reindexación mediante el uso de variables de entorno o configurando el archivo app/etc/env.php
. Ya no es necesario restablecer manualmente el indexador después de un error con este modo habilitado. Consulte Uso del modo de bloqueo de aplicación para reindexar procesos.
Mejoras de Platform
La versión 2.4.3 aún no es compatible con PHP 8.x, pero las siguientes actualizaciones de la plataforma nos acercan a la futura compatibilidad con PHP 8.x.
-
Las dependencias del Compositor principal y las bibliotecas de terceros se han actualizado a las últimas versiones compatibles con PHP 8.x.
-
La biblioteca KnockoutJS se ha actualizado a la versión 3.5.1 (la versión más reciente).
-
Se ha eliminado la biblioteca obsoleta TinyMCE v3. El módulo
Magento_Tinymce3Banner
y las pruebas MFTF relacionadas con TinyMCE v3.x se han eliminado de Adobe Commerce. -
La versión 2.4.3 se ha probado y confirmado que es compatible con Redis 6.0.12. (la versión 2.4.x sigue siendo compatible con Redis 5.x.)
-
Las dependencias de la biblioteca Laminas se han actualizado a versiones compatibles con PHP 8.x. Se han quitado algunas dependencias redundantes del archivo
composer.json
. Adobe Commerce 2.4.3 usa Laminas 3.4.0.
Mejoras de rendimiento
Esta versión incluye mejoras que reducen el tiempo de indexación de los indexadores Precio del producto y Regla de catálogo. Los comerciantes ahora pueden excluir un sitio web de un grupo de clientes o un catálogo compartido, lo que reduce el número de registros para la indexación y mejora los tiempos de indexación.
Live Search
Live Search con tecnología de Adobe Sensei ofrece una experiencia de búsqueda intuitiva mediante inteligencia artificial y algoritmos de aprendizaje automático para realizar un análisis profundo de los datos agregados de visitantes. Ver Notas de la versión de Live Search.
GraphQL
Esta versión agrega compatibilidad con GraphQL para las siguientes funciones:
-
Catálogos compartidos
-
Listas de deseos. La mutación addWishlistItemsToCart mueve elementos de la lista de artículos deseados especificada al carro de compras del cliente.
-
Registros de regalos. Las tareas cubiertas incluyen:
-
Use la consulta de registro de regalos para devolver el contenido de los registros de regalos del cliente.
-
Busque registros de regalos por tipo, correo electrónico o ID.
-
Crear, actualizar o eliminar registros de regalos.
-
Actualizar o quitar elementos de un registro de regalos.
-
Mover todos los elementos del carro de compras al registro de regalos.
-
Agregar, actualizar o quitar inscritos de un registro de regalos.
-
Compartir un registro de regalos con invitados.
-
-
Comillas negociables. Ver las consultas
negotiableQuote
ynegotiableQuotes
.Las nuevas mutaciones incluyen:
-
Rutas compartidas. La consulta de ruta y InterfazEnrutable admiten solicitudes de enrutamiento en páginas de productos, categorías y CMS. La consulta
urlResolver
ha quedado obsoleta y su funcionalidad ha sido reemplazada por la consultaroute
.
Consulte la Guía para desarrolladores de GraphQL para obtener más información sobre estas mejoras.
B2B
La versión 2.4.3 presenta B2B v1.3.2. Esta versión incluye varias correcciones de errores. Ver Notas de la versión B2B.
Page Builder
Page Builder ya está disponible como extensión agrupada en Magento Open Source. Ahora es la herramienta de edición de contenido predeterminada para Adobe Commerce 2.4.3 y Magento Open Source 2.4.3. Puede reemplazar el editor WYSIWG con cualquier módulo de terceros.
Page Builder reemplaza el editor TinyMCE en las siguientes áreas de administración:
- Página de CMS
- Bloque CMS
- Descripción de categoría
- Descripción del producto
Todo el contenido creado en TinyMCE se ha migrado a Page Builder como HTML.
PWA Studio
Para obtener información acerca de mejoras y correcciones de errores, consulte Versiones de PWA Studio. Consulte compatibilidad para obtener una lista de versiones de PWA Studio y sus versiones compatibles.
Actualizar herramienta de compatibilidad
El ámbito de la herramienta de compatibilidad de actualización se ha ampliado en función de los comentarios de la comunidad. Únase a nuestro canal de Slack #upgrade-compatibility-tool para obtener soporte del equipo de productos de Adobe y de la comunidad, así como para guiar la futura dirección de la herramienta.
Actualizaciones de Cloud Managed Services
Esta versión incluye mejoras en nuestra compatibilidad con Amazon Simple Storage Service (AWS S3) y los servicios administrados en la nube de Amazon Aurora. Proporciona compatibilidad certificada con AWS ElastiCache, AWS Elasticsearch y AWS Managed Queues (Rabbit MQ). (Hemos probado la funcionalidad, el rendimiento y la integración de estos servicios con Adobe Commerce).
Integración de Adobe Stock
Esta versión incluye Adobe Stock Integration v2.1.1.
Extensiones desarrolladas por el proveedor
Consulte los siguientes temas para obtener actualizaciones sobre las funciones y los cambios de esta versión:
-
Amazon Pay. Amazon Pay se ha desaprobado y se eliminará en una versión posterior de la versión 2.4.x. La versión 2.4.3 y posteriores solo contendrán actualizaciones para la compatibilidad y correcciones de errores importantes.
Problemas solucionados
Hemos corregido cientos de problemas en el código principal 2.4.3.
Instalación, actualización e implementación
- El comando
bin/magento setup:db:status
devuelve ahora un mensaje que indica que todo está actualizado después de una actualización correcta. Anteriormente, la aplicación mostraba este error:Declarative Schema is not up to date
.
- Los valores de configuración ahora se conservan en la recarga del formulario cuando falla la creación de un nuevo producto configurable. Anteriormente, los valores se perdían durante la recarga del formulario y la aplicación mostraba este error:
The value specified in the URL Key field would generate a URL that already exists
. GitHub-32102
- La aplicación ya no genera una excepción cuando ejecuta
bin/magento setup:upgrade
para actualizar desde una implementación de Magento Open Source con Redis a Adobe Commerce.
- Las reglas de precios de carro de compras creadas anteriormente ahora se muestran en la página del panel Ensayo de contenido después de actualizar una implementación de Magento Open Source a Adobe Commerce.
- Las implementaciones que se ejecutan en Galera Cluster ahora admiten más clientes. GitHub-31038
- Los administradores ahora pueden iniciar sesión correctamente en una implementación cuando la aplicación se haya instalado con la opción
—use-rewrites=0
o conweb/seo/use_rewrites
establecido en 0 encore_config_data_table
. GitHub-32100
- Se actualizó la carga de
sortOrder
paraAsyncCssPlugin
. La aplicación ahora cargaAsyncCssPlugin
antes deJsFooterPlugin
. GitHub-30882
Magento\Config\Model\Config\PathValidator
ahora comprueba la ruta de acceso de visualización para determinar si existe un elemento y, si tiene una ruta de acceso de configuración, utiliza la ruta de accesoconfig.xml
en su lugar para la validación. GitHub-27678
- La compilación de archivos Less con Grunt o por compilación del lado del servidor ahora produce los mismos resultados. Anteriormente.
.abs- styles
, que extiende otros.abs- styles
en_extends.less
, no se generaron correctamente cuando se compilaron con Grunt. Esto resultaba en diferencias entre las implementaciones de producción y desarrollo. GitHub-7231
AdminGWS
- El GWS de administración ahora usa valores de
int
para la condición SQLwebsite_id
en las colecciones de administración para administradores con permisos personalizados.
Integración de Adobe Stock
- La aplicación ahora muestra un mensaje informativo y un vínculo a la página Administrador Tiendas > Configuración > Avanzado > Sistema en la página Buscar Adobe Stock cuando no se han establecido Clave de API (ID de cliente) y Secreto de cliente. Anteriormente, la aplicación mostraba este error:
We couldn't find any records
y ningún vínculo.
Servidor
- Los administradores con acceso restringido (por ejemplo, a los que se les asigna acceso a un solo sitio web) ya no pueden editar las categorías configuradas como Ámbito global.
- El informe del sistema generado (Sistema > Soporte técnico > Informe del sistema) ahora se representa correctamente. Anteriormente, el contenido del informe estaba desalineado.
- La aplicación ahora desactiva la validación en el campo Price, como se espera cuando la configuración Dynamic price está habilitada durante la creación del paquete de productos. Anteriormente, la aplicación arrojaba un error de validación cuando se quitaba un valor del campo Precio cuando se habilitaba la configuración Precio dinámico. GitHub-26214
- Las redirecciones infinitas ya no se producen cuando la URL del administrador difiere de la URL del sitio web predeterminado en implementaciones en las que la aplicación está configurada para ser accesible desde dos direcciones URL.
Paquete de productos
- Ahora puede usar la mutación
addProductsToCart
para agregar un paquete de productos con más de una opción de casilla de verificación al carro de compras.
- La indexación de precios de los productos agrupados ahora se ejecuta mediante tablas temporales, lo que evita el bloqueo de tablas de base de datos. Anteriormente, la aplicación utilizaba tablas físicas, lo que resultaba en tablas bloqueadas.
- Ahora, el precio de un paquete de artículos se puede establecer en 0,00. Anteriormente, cuando se volvía a la página de edición después de establecer el precio en 0,00, el precio volvía a su valor predeterminado. GitHub-32383
- Los detalles del pedido para pedidos que contienen productos agrupados ahora muestran el precio correcto para los productos agrupados si el precio se cambió antes de realizar el pedido.
- El estado de stock del producto agrupado ahora se actualiza en función del estado de stock de sus productos secundarios. Anteriormente, los productos agrupados se mostraban como agotados cuando se eliminaba una opción del producto y el producto agrupado tenía dos opciones con el mismo SKU.
- Un administrador ahora puede cambiar el valor del atributo
Shipment Type
de un producto agrupado después de que se haya movido a un grupo de atributos diferente. Anteriormente, este atributo siempre se guardaba con un valorTogether
si se movía a un grupo de atributos distinto del predeterminado en el conjunto de atributos.
- La mutación
setGuestEmailOnCart
de GraphQL ahora actualiza correctamente el correo electrónico de invitado. Anteriormente, las tablas de direcciones de presupuesto y presupuesto no se actualizaban.
- Añadir, eliminar o actualizar un producto secundario a un producto del paquete a través de llamadas a la API de REST ahora déclencheur la reindexación según lo esperado. Anteriormente, estas acciones no tenían déclencheur para volver a indexar y, como resultado, el producto del paquete no cambiaba su estado de stock hasta que se realizaba una reindexación manual.
- La aplicación ahora muestra el rango de precios correcto para los productos agrupados con precios de nivel. GitHub-30284
- La aplicación ahora muestra el mismo precio total que se espera en la página del carro de compras y en la etapa de envío del flujo de trabajo de cierre de compra después de que haya cambiado el precio de una opción de paquete.
- Ahora puede configurar correctamente un producto agrupado accediendo a él desde un carro de compras del cliente. Anteriormente, la página Configurar producto nunca se cargaba completamente y no se podía guardar la configuración.
- Los comerciantes ahora pueden asignar un precio único para un paquete de productos en cada vista de tienda de una implementación de varias tiendas. Los precios específicos del sitio web se guardan en la tabla
catalog_product_bundle_selection_price
. Anteriormente, la aplicación no basaba el precio de un producto agrupado en el ámbito del sitio web ni siquiera cuando Tiendas > Configuración > Catálogo > Catálogo > Precio > Ámbito del precio de catálogo se establecía enWebsite
. No se guardaron precios específicos de sitios web encatalog_product_bundle_selection_price
. GitHub-12584
- Las facturas de los productos agrupados ahora muestran la cantidad correcta para los productos simples asociados cuando se deshabilita Asignación dinámica de precios. Anteriormente, los productos simples asociados con el producto agrupado tenían la cantidad del producto principal, no el producto agrupado). GitHub-30802
- La mutación
updateProductsInWishlist
ahora actualiza correctamente los elementos que pertenecen a un paquete de productos en una lista de artículos deseados. Anteriormente, en lugar de actualizar el elemento de la lista de artículos deseados, esta mutación eliminaba el elemento y creaba uno nuevo, que cambiaba el ID del elemento.
- Ahora puede establecer los atributos del paquete
required_options
yhas_options
como se espera al crear o actualizar un producto del paquete mediante el extremoPOST /V1/product/:sku
. Anteriormente, estos atributos personalizados se establecían en 0 (cero) a pesar de los esfuerzos por establecerlo en 1 (uno).
- Los datos de producto del paquete que faltaban anteriormente ahora se incluyen en el proceso de ensayo. Esto resuelve las incoherencias en el comportamiento del producto cuando los compradores compraron un producto agrupado desde la página de lista de productos en lugar de agregarlo directamente desde una página de producto.
Caché
- El archivo
varnish6.vcl
se ha actualizado para omitir el almacenamiento en caché de la página del cliente.
CAPTCHA
- CAPTCHA ahora valida correctamente los datos proporcionados por un comprador, y los campos CAPTCHA ahora se muestran como se espera después de los múltiples intentos fallidos de un comprador para pagar con PayPal Payflow Pro.
- La validación CAPTCHA ya no falla aleatoriamente en la página de pago del flujo de trabajo de cierre de compra.
- La aplicación ahora muestra los campos CAPTCHA como se espera después de superar el número de intentos de finalización fallidos. Anteriormente, aunque la aplicación le pedía que intentara volver a intentar el desafío CAPTCHA, no mostraba los campos CAPTCHA.
- CAPTCHA ahora funciona como se espera en la página de cierre de compra. Anteriormente, después de que un comprador respondiera correctamente a un desafío CAPTCHA, el cargador de la página de pago nunca se completaba y la aplicación mostraba este error:
captchaData[formId] is undefined
. (Este error solo se producía cuando el comprador utilizaba el mismo explorador desde el que había accedido anteriormente a una implementación que ejecutaba 2.3.5-p1.)
_.isEmpty()
comprobaciones en el archivodefaultCaptcha.js
ahora se completaron correctamente. Anteriormente, estas comprobaciones no se completaban y, como resultado, la página de cierre de compra no se cargaba después de la actualización. GitHub-31641
Carro y cierre de compra
- La aplicación ahora tiene en cuenta las ubicaciones decimales específicas de la configuración regional al convertir y actualizar la cantidad de productos en el carro de compras.
- Los pedidos ya no omiten un nombre de cliente proporcionado con una dirección de envío. Anteriormente, los nombres se omitían porque el indicador
same_as_billing
no se guardaba en la base de datos.
- Los vínculos a los registros de regalos ahora persisten como se espera cuando edita un producto en el carro de compras. Anteriormente, estos vínculos desaparecían al hacer clic en el botón Actualizar carro.
- Todos los mensajes en cola del consumidor
quoteItemCleaner
ahora cambian su estado acomplete
como se espera después de la eliminación de varios productos. Anteriormente, solo un mensaje para este consumidor cambiaba su estado acomplete
y el resto cambiaba su estado ain progress
.
- La aplicación ahora muestra el mensaje de validación de Términos y condiciones en el bloque correspondiente solo cuando un comprador hace clic en el botón Realizar pedido. Anteriormente, la aplicación mostraba este mensaje en el bloque Aplicar código de descuento cada vez que un comprador cambiaba el método de pago en el flujo de trabajo de pago:
The order wasn't placed. First, agree to the terms and conditions, then try placing your order again
.
- Ahora se le redirigirá a la página de cierre de compra como se espera después de agregar un producto agrupado al carro de compras desde una vista previa de Programar actualización y hacer clic en el carro de compras. GitHub-447
- La aplicación ahora descarta los cambios en el formulario de dirección de facturación en el paso de pago de cierre de compra si el comprador no hace clic en el botón Actualizar y vuelve al paso de envío.
- La aplicación ahora muestra un mensaje de error informativo y no actualiza la cantidad del producto cuando un comprador agrega una cantidad de producto no válida y hace clic en el botón Actualizar artículos y cantidades de la página Administrar carro de compras. Anteriormente, la aplicación actualizaba la cantidad de productos y no mostraba un mensaje de error. GitHub-459
- Los productos con una opción personalizable
(File)
ahora incluyen vínculos activos según lo esperado a lo largo del proceso de cierre de compra de envío múltiple. Anteriormente, faltaba este vínculo. GitHub-31095
- El carro de compras Administrador ahora muestra los precios de los productos en las monedas correctas para las tiendas que admiten varias monedas. Anteriormente, los precios se convertían a la moneda especificada más de una vez: primero, cuando se agregaban productos al carro de compras desde la tienda y, después, cuando el pedido se procesaba posteriormente en el administrador.
- La aplicación ahora vacía el carro de compras como se espera después de que un administrador complete un pedido del administrador creado por un comprador en la tienda. Anteriormente, cuando el cliente volvía a iniciar sesión después de que el administrador completara el pedido, el carro de la tienda seguía conteniendo contenido del pedido. GitHub-30262
- Los compradores ahora pueden agregar un producto al carro de compras cuyo precio mínimo anunciado (MAP) exceda su precio normal del producto.
- Los compradores ahora pueden cambiar correctamente su dirección de facturación del flujo de trabajo de cierre de compra al realizar el cierre de compra con varias direcciones.
- Todas las transacciones de pago creadas por los invitados ahora se guardan en la base de datos y son visibles en el Administrador según lo esperado. Anteriormente, solo se guardaba un pequeño subconjunto de pedidos simultáneos en la base de datos y la mayoría de los pedidos se perdían debido a los tiempos de espera resultantes de los bloqueos de la base de datos. GitHub-25862
- La aplicación ahora muestra correctamente los mensajes de bienvenida en línea que contienen caracteres especiales cuando un invitado coloca un producto en el minicarrito. Anteriormente, la aplicación no agregaba el producto al minicarrito ni mostraba el mensaje de bienvenida. GitHub-32250
- La página de envío del flujo de trabajo de cierre de compra ahora se carga correctamente cuando la entrega en tienda está activada. Anteriormente, la aplicación arrojaba un error de JavaScript y la página de cierre de envío no se representaba completamente.
- Se agregó el argumento
itemResolvers
al archivo de catálogodi.xml
. Como resultado, el cierre de compra ya no se interrumpe si los módulos de producto configurables y agrupados están desactivados. GitHub-30860
- La aplicación ahora muestra los botones de opción en la sección Información de pago y envío, tal como se espera durante el flujo de trabajo de reorganización del administrador. GitHub-30257
- La aplicación ahora aplica correctamente las reglas de precio del carro de compras con un descuento fijo de nivel de carro de compras cuando el carro de compras contiene un producto agrupado con varias opciones. Anteriormente, la regla de precio del carro de compras no se aplicaba completamente al pedido. GitHub-30952
- El botón Agregar al carro de la vista de lista de categorías ahora funciona según lo esperado. GitHub-32232
- Ahora puede usar el POST
/V1/carts/mine/items
para agregar una cantidad personalizada de productos agrupados a un carro de compras. GitHub-26909
- La aplicación ya no rellena el área de la dirección de facturación del flujo de trabajo de cierre de compra con la dirección de envío. Anteriormente, cuando el campo Estado/Provincia de la dirección de facturación estaba vacío y las direcciones de envío y facturación diferían, la aplicación rellenaba el campo de la dirección de facturación Estado/Provincia con información de la dirección de envío. GitHub-31608
Catálogo
- La actualización masiva de los atributos Habilitar incrementos de cantidad y Incrementos de cantidad ahora funciona según lo esperado. GitHub-29544
- Ahora puede duplicar correctamente un catálogo compartido que contenga SKU solo numéricas. Anteriormente, la aplicación generaba un error al intentar duplicar un catálogo compartido porque la clase
\Magento\Catalog\Model\ProductIdLocator
no funcionaba correctamente con SKU de solo número.
- La aplicación ya no genera un error de JavaScript después de habilitar la sincronización de productos recientes con el administrador. Anteriormente, la aplicación mostraba este error de JavaScript:
Cannot read property 'status' of undefined
.
- Las actualizaciones del diseño del tema personalizado ahora se aplican según lo esperado. Anteriormente, las actualizaciones de diseño de temas personalizados se omitían.
- La caché de categoría de producto ahora se borra según lo esperado por
cron
durante la ejecución deindexer_update_all_views
. Anteriormente, los recuentos de productos en la página Categoría después de la reindexación eran incorrectos.
- Los valores de atributo ahora permanecen inalterados cuando no se especifica un atributo en una solicitud de API de REST de actualización de producto para una vista de tienda. Anteriormente, si no se especificaba un atributo, la aplicación restablecía el valor del atributo a su valor de ámbito predeterminado.
- La cuadrícula Productos de administración (Administración Catálogo > Productos) ahora muestra el recuento de productos correcto cuando los productos se filtran por SKU.
- La aplicación ahora muestra un estado de stock preciso cuando se agrega un producto a una página de CMS cuando los permisos de categoría están habilitados y evita la visualización del precio para el grupo del cliente especificado. Anteriormente, todos los productos se mostraban agotados, independientemente del estado real de las existencias.
- El campo de entrada de precio del bloque de precios del grupo de clientes de precios avanzados ahora tiene una anchura mínima de cinco dígitos. Anteriormente, solo se veían dos símbolos en este campo en pantallas de baja resolución.
- La aplicación ahora elimina correctamente una imagen multimedia del producto después de eliminar un producto. Anteriormente, la imagen multimedia del producto permanecía en la carpeta después de eliminar correctamente el producto.
- El diseño de la página ahora se actualiza según lo esperado al crear o editar un producto en el Administrador y, a continuación, crear una actualización de diseño de programación. GitHub-32007
- Ahora, un atributo de producto personalizado con un valor de cero se puede guardar correctamente como en blanco. Anteriormente, la aplicación no actualizaba este valor a en blanco.
- Los archivos de actualización de diseño de categoría personalizada ahora se aplican a los productos según lo esperado. Anteriormente, el identificador del archivo de actualización (
catalog_category_view_*
) no coincidía con el identificador del producto. GitHub-27285
- Se ha deshabilitado la ordenación para la columna Impuesto de producto fijo (FPT) de la lista Productos de administración. Anteriormente, la página Productos no se podía volver a cargar después de ordenar la columna FTP.
- La vista previa del widget de productos de Page Builder ahora funciona como se espera en una implementación de varios sitios web cuando los productos coincidentes tienen un precio diferente en cada sitio web.
- La ordenación por posición en la búsqueda de productos mediante el GET
/rest/V1/products/?searchCriteria[filterGroups]
ahora funciona según lo esperado. Anteriormente, la colección de productos no tenía un valor de campoposition
para ordenar. GitHub-31591
- Los usuarios administradores ahora pueden ver espacios dobles en los campos Nombre y SKU de la cuadrícula del producto. Anteriormente, la aplicación contraía varios espacios en uno solo.
- Los productos ahora aparecen como agotados en la tienda cuando la cantidad vendible en el administrador es 0. Anteriormente, estos productos estaban disponibles en la tienda y la aplicación mostraba un botón Agregar al carro activo. GitHub-31117
- Los administradores ahora pueden agregar productos con opciones personalizables
(File)
a la cuadrícula Artículos pedidos desde la sección Carro de compras (columna Actividades del cliente) de la página Administrador - Cliente. Anteriormente, la aplicación no agregaba el elemento a la lista porque el valor no tenía el formato correcto antes de insertarse en\Magento\Catalog\Model\Product\Type\AbstractType::_prepareOptions
.
- La aplicación ya no pide a los compradores que seleccionen una opción de producto para un producto agrupado que solo tiene una opción.
- La aplicación ahora muestra todas las subcategorías en las actualizaciones de diseño (categorías de anclaje y no anclaje) durante la creación de un nuevo widget.
- La consulta
product
ya no sobrescribe los valores predeterminados de todas las vistas de tienda en una implementación de varias tiendas cuando se actualiza un nombre de producto solo para una vista de tienda. GitHub-31083
- Adobe Commerce actualiza el recuento total de páginas según lo esperado cuando cambia el valor por página de la lista Productos relacionados con el administrador, Aumentar ventas y Realizar ventas cruzadas. GitHub-31059
- Los administradores ahora pueden agregar productos con dos o más opciones personalizables
(File)
a un pedido por SKU.
- La aplicación ya no genera un error cuando un administrador con permisos restringidos agrega un widget de producto a una página de CMS en el Administrador. Anteriormente, la aplicación arrojaba este error cuando el administrador hacía clic en el botón Guardar:
We are sorry, an error has occurred while generating the content
.
- Las páginas de detalles del producto ahora se abren con la opción personalizable de fecha rellenada con la fecha del pedido anterior en que Usar JavaScript Calendar está habilitado. El solucionador de valores de la opción de fecha personalizada ahora vuelve a un formato alternativo si el valor no tiene un formato basado en la configuración actual. Anteriormente, el valor de la opción de fecha personalizada estaba vacío.
- La aplicación ahora solo muestra un error en el carro de compras cuando el producto está agotado. Anteriormente, la aplicación mostraba mensajes redundantes. GitHub-27469
- Los administradores ahora pueden agregar un producto con una opción personalizable
(File)
a un pedido por SKU. GitHub-30285
- Ahora puede guardar un producto y un precio sin especificar
type_id
. GitHub-13639
- Los productos de grupo ahora están disponibles en la tienda como se espera cuando se usa una solicitud REST
PUT /V1/products/:sku/links
para asociar un nuevo producto secundario con un nuevo producto de grupo. Anteriormente, los productos no se indexaban correctamente después de ejecutarbin/magento cron:run
.
- Ya no puede crear un producto con un valor de SKU
NULL
. Anteriormente, se podía crear un producto sin un valor de SKU a través de un importador personalizado o directamente en la base de datos, pero cuando se intentaba editarlo desde el administrador, la aplicación arrojaba un error. GitHub-27411, GitHub-32525
- Al añadir las opciones personalizadas necesarias a un producto simple, ya no se eliminará de los productos compuestos principales sin previo aviso. La aplicación ahora muestra una advertencia informativa y no guarda el producto. Anteriormente, la aplicación guardaba los cambios del producto y no mostraba una advertencia. GitHub-30492
Regla de catálogo
- La consulta
products
devuelve ahora los valores actuales cuando se aplica una regla de precio de catálogo a un artículo. GitHub-26738
- Las tablas temporales que comienzan con
catalogrule_product__temp
ahora se eliminan como se espera cuando la reindexación falla después de que caduque una regla de carro de compras o catálogo, esté deshabilitada o quede inactiva. GitHub-22273
- Ahora las zonas horarias se aplican del mismo modo en
\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexById
y\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIds
. GitHub-29549
Contenido de CMS
- Las imágenes grandes ahora cambian de tamaño según lo esperado durante la carga cuando el ajuste de configuración Habilitar cambio de tamaño de front-end está habilitado.
- Se ha corregido el control de errores del controlador de guardado de páginas de CMS. Anteriormente, cuando se arrojaba un objeto
Error
en el eventocms_page_prepare_save
, la aplicación pasaba este objeto a la funciónaddExceptionMessage
, rompiendo su contrato porque esta función espera unException
. Esto se resolvió agregando un mensaje de error mediante la funciónaddErrorMessage
. GitHub-30149
- Ahora puede asignar una nueva página a varios nodos desde la pestaña CMS Editar jerarquía de página. Anteriormente, se producía una infracción de restricción única al intentar asignar la página a un nodo. GitHub-363
Productos configurables
- La aplicación ya no duplica miniaturas de productos en la galería de imágenes de un producto cuando hace clic en las opciones configurables de un producto.
- La ventana emergente de configuración que la aplicación muestra cuando edita un producto configurable desde una lista de artículos deseados ahora se cierra como se espera cuando hace clic en el botón Aceptar.
- La aplicación ahora genera correctamente facturas para pedidos que contienen solo un producto configurable. GitHub-31143
- Los compradores ahora pueden agregar productos configurables al carro de compras desde una vista de tienda no predeterminada. Anteriormente, cuando el comprador de una vista de tienda no predeterminada intentaba agregar un producto configurable, la aplicación mostraba este error:
Could not add item to cart. Please check required options and try again
. GitHub-31660
Política de seguridad de contenido (CSP)
- La directiva de seguridad de contenido ahora admite la carga de imágenes y fuentes codificadas en Base64 mediante
data: scheme
.
cron
- Las consultas de limpieza de Cron se han refactorizado para reducir o eliminar los siguientes problemas de rendimiento:
cron
trabajos permanecen atascados en un estado pendiente, consultas MySQL cada vez más lentas y un aumento en el uso de la CPU. GitHub-26507
cronjobs
que han estado en estadorunning
durante más de 24 horas ahora se cambian automáticamente al estadoerror
. Como resultado, se puede volver a ejecutar una nueva instancia de ese trabajo y no es necesario cambiar manualmente el estado del trabajo cuando un trabajo permanece establecido incorrectamente en el estadorunning
. Anteriormente, si un(a)cronjob
estaba bloqueado(a) en el estadorunning
, la aplicación impedía que se iniciaran nuevas instancias del mismo trabajo y tenía que cambiar manualmente el estado del trabajo. GitHub-8933
cron
trabajos ahora se completan según lo esperado y ya no arrojan este error de serialización:[Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28')
. GitHub-18409
indexer_update_all_views
trabajos cron ahora se ejecutan como se esperaba después de un error anterior. La ejecución fallida se marca como un error encron_schedule schedule
, y la ejecución posterior no falla automáticamente. Anteriormente, la tablacron_schedule
se llenaba con trabajos pendientes y el trabajo cronindexer_update_all_views
no se ejecutaba. GitHub-23054
cron
interbloqueos ya no se producen como resultado decron
que intenta establecer un bloqueo en implementaciones grandes en las que los grupos se superponen. GitHub-8933
cron
interbloqueos ya no se producen en la tablacron_schedule
después de que se hayan ejecutado unos pocoscron
trabajos. GitHub-22438
Atributos del cliente personalizados
- El campo Estado de la libreta de direcciones de la cuenta de cliente de la tienda ahora se carga como y sigue siendo un elemento de página desplegable. El botón Enviar ahora está deshabilitado hasta que todos los elementos de la página se hayan cargado por completo. Anteriormente, la aplicación cargaba este campo como un cuadro de texto antes de procesarlo como un elemento desplegable y los compradores podían introducir y guardar valores en el campo de texto, lo que posteriormente provocaba un error durante la desprotección.
- La aplicación ahora muestra correctamente los atributos de dirección del cliente personalizados en las páginas de la tienda y del pedido del administrador. Anteriormente, la opción seleccionada del atributo desplegable no aparecía en la sección Información de dirección y el valor del atributo de entrada contenía el código de atributo. GitHub-508
- La aplicación ya no genera un error cuando se guarda un atributo de dirección del cliente con un archivo adjunto en el campo Dirección del cliente del administrador al cargar archivos. Esto se produjo debido a la falta de una instrucción return en la acción del controlador. Anteriormente, la aplicación arrojó este error:
Something went wrong while saving the file
.
- Las llamadas a la API del carro de GET de REST ahora devuelven valores de atributo personalizados correctos para las direcciones de facturación y envío. Anteriormente, los atributos de direcciones personalizadas se mostraban incorrectamente en la página de detalles de pedidos de la página Mi tienda de cuentas y en el Administrador.
- La aplicación ahora administra correctamente archivos que contienen atributos de dirección de cliente con tipo de entrada
file (attachment)
. Anteriormente, la aplicación arrojó este error durante la carga del archivo adjunto:Something went wrong while saving the file
.
Cliente
- El correo electrónico de crédito de almacenamiento ahora tiene en cuenta el ámbito seleccionado y se envía desde la dirección de correo electrónico correcta.
- El filtrado por fecha de creación de cuenta ahora produce resultados que cumplen con la configuración de zona horaria configurada y que capturan todas las cuentas creadas relevantes.
- El filtro de cuadrícula de cliente ahora utiliza una opción de sitio web correcta para un usuario restringido si los datos se almacenaron en caché anteriormente. Anteriormente, el filtro de cuadrícula del cliente recuperaba parámetros de sitio web de la caché e incluía datos incorrectos para usuarios restringidos.
- La aplicación ya no genera una excepción en la página Admin Customers cuando se elimina un sitio web en una implementación de varios sitios web. Anteriormente, cuando un administrador intentaba obtener acceso a la lista completa de clientes, la aplicación no mostraba todos los clientes y mostraba este error:
The website with id 2 that was requested wasn't found. Verify the website and try again
.
- Los administradores con permiso ahora pueden reasignar clientes a distintos sitios web desde la pestaña Información de la cuenta del cliente.
- Ahora puede cargar un archivo correctamente al crear un atributo de dirección de cliente con un tipo de entrada de
(File)
. Anteriormente, al intentar cargar y guardar un archivo, la aplicación arrojaba este error:Something went wrong while saving the file
.
Segmento de cliente
- La aplicación ahora muestra productos relacionados basados en segmentos de clientes en la tienda, según lo esperado. Anteriormente, la aplicación no mostraba esta sección cuando se creaba una regla de productos relacionada para segmentos de clientes específicos.
- Los bloques dinámicos ahora se muestran para los clientes registrados en sus carros de compras cuando el segmento de clientes correspondiente se aplica tanto a los invitados como a los clientes registrados. Anteriormente, la aplicación solo mostraba el bloque para invitados.
- Los segmentos de clientes ahora se actualizan automáticamente después de realizar un pedido desde el administrador. Anteriormente, después de crear un pedido de administración, el usuario administrador tenía que actualizar manualmente los datos de segmentos relacionados navegando a segmentos de clientes relacionados y haciendo clic en el botón Actualizar datos de segmentos.
- La aplicación ahora muestra bloques dinámicos en el carro de compras para todos los clientes en los segmentos de clientes relevantes. Anteriormente, los invitados no veían un bloque incluso cuando el segmento de clientes incluía clientes y clientes registrados.
- Se han resuelto los problemas de rendimiento de la base de datos que resultan de las reglas de segmentación de clientes que utilizan la condición
Product was Ordered
.
- SOAP Se ha añadido un observador de eventos de segmentos de clientes para la API de REST/. SOAP Como resultado, los segmentos de clientes ahora se actualizan automáticamente según lo esperado si los criterios definidos en los segmentos coinciden cuando los pedidos se realizan a través de la API de REST/.
- Se ha agregado un procesador de eventos de segmentos de clientes para las solicitudes de GraphQL. Anteriormente, los descuentos de regla de precios de carro de compras no se aplicaban al carro de compras cuando se usaba un segmento de cliente en una condición de regla de precios de carro de compras. GitHub-371
Directorio
- La aplicación ya no genera una excepción cuando un comprador introduce un código postal no válido durante la sección de envío del flujo de trabajo de cierre de compra. GitHub-23371
Descargable
- La aplicación ahora muestra vínculos a productos descargables en el correo electrónico Nuevo pedido cuando el pedido contiene un producto descargable y un producto configurable con una opción descargable. Anteriormente, la aplicación mostraba el vínculo al producto descargable independiente, pero no el vínculo al producto configurable con una opción descargable.
Bloque dinámico (anteriormente banner)
- Los bloques dinámicos ahora solo se muestran en la página especificada. Anteriormente, la aplicación mostraba todos los titulares asignados al widget en todas las páginas si no se especificaba ningún bloque dinámico.
- Ahora puede guardar bloques dinámicos con contenido vacío.
EAV
- Los valores de fecha de atributo de dirección del cliente ahora se guardan en formato de cuatro dígitos en lugar de formato de dos dígitos.
Correo electrónico
- El vínculo para restablecer la contraseña en la página de restablecimiento de contraseña de administrador ahora funciona según lo esperado. Anteriormente, cuando se utilizaba una plantilla personalizada para la página Restablecer contraseña de administrador, la aplicación mostraba este mensaje cuando un administrador hacía clic en el vínculo dentro del correo electrónico:
Your password reset link has expired
. Esto ocurría porque la plantilla de correo electrónico personalizada contenía la variable incorrecta para el ID de usuario.
- El envío de correos electrónicos de clientes desde el administrador ahora funciona correctamente cuando se habilita en el nivel de vista de tienda. Anteriormente, la aplicación no enviaba correos electrónicos a los clientes cuando la configuración de las notificaciones por correo electrónico se habilitaba en el nivel de vista de tienda, pero no en el nivel global.
- La aplicación ahora envía correos electrónicos como se espera en implementaciones de varios sitios en las que no todos los sitios web han habilitado el envío asincrónico de correos electrónicos. Anteriormente, si al menos un sitio web tenía esta configuración deshabilitada, no se enviaba correo electrónico desde ningún sitio web, incluso cuando estaba habilitada. Los correos electrónicos de factura, envío y nota de abono tenían problemas similares. Sin embargo, los correos electrónicos Comentarios sobre pedidos, Comentarios sobre facturas, Comentarios sobre envíos y Comentarios sobre notas de abono se han enviado correctamente. GitHub-31950
- El mensaje de correo electrónico que envía la aplicación cuando comparte un registro de regalos del administrador contiene ahora un vínculo válido a la ubicación del registro. Anteriormente, este vínculo provocaba un error 404. GitHub-504
- Las facturas y los PDF de facturas ahora incluyen los mismos precios para los productos agrupados que se espera. Anteriormente, los PDF de facturas incluían el precio incorrecto de los productos agrupados. GitHub-12856
- La conversión de cadenas se ha agregado al método de filtro de la plantilla de correo electrónico para garantizar que el valor devuelto sea un
string
. Anteriormente, cuando se detectaba una excepción sin estar en modo de desarrollador, la aplicación devolvía un objetophrase
. Esto a su vez desencadenó unUncaught TypeError
irrecuperable. GitHub-32671
- Los correos electrónicos de confirmación de pedido ahora se envían según lo esperado cuando se habilita el envío asincrónico (Tiendas > Configuración > Ventas > Correos electrónicos de ventas > Configuración general > Envío asincrónico) en un sitio web en una implementación de varios sitios. GitHub-31950
- La aplicación ahora registra un error como se espera cuando se produce una excepción cuando un cliente intenta enviar un correo electrónico desde el formulario de contacto. GitHub-23645
Marcos
- Ahora se comprueba la existencia de anotaciones docblock en las clases principales del administrador junto con la clase original y las interfaces heredadas. Anteriormente, como las clases principales no se comprobaban, la realización de cualquier acción relacionada con el cliente en el Administrador que activaba un evento provocaba un error. La aplicación registró este error en el registro de excepciones:
report.CRITICAL: Method's return type must be specified using @return annotation.
.
- La aplicación ya no genera un error grave cuando el servidor Redis se detiene en una implementación en la que el almacenamiento en caché de páginas Redis está habilitado.
- La aplicación ahora cumple la configuración Excluir la carpeta multimedia de la copia de seguridad cuando la copia de seguridad está habilitada con
bin/magento config:set system/backup/functionality_enabled 1
. Anteriormente, se hizo una copia de seguridad de la carpeta de medios a pesar de esta configuración porque la ruta de acceso a/magento
se formó incorrectamente con un // doble.
- La aplicación ahora traduce todas las cadenas traducibles como se espera para la página del carro de administración. Anteriormente, la carga de traducción se producía demasiado tarde y omitía todos los observadores suscritos a la acción de controlador antes del envío. GitHub-31849
- La validación del formulario en la página Crear nueva cuenta de cliente ahora funciona correctamente cuando la configuración de la extensión de habilitación de Iniciar sesión como cliente está deshabilitada. Anteriormente, la aplicación arrojaba un error de JavaScript.
- El uso de
bin/magento setup:db-schema:split-sales
para mover tablas de base de datos ahora funciona según lo esperado. Ahora, las tablas se crean y rellenan correctamente con datos. Anteriormente, debido a que la comprobación de la existencia de la tabla era incorrecta, la aplicación arrojóSQLSTATE
errores al ejecutarbin/magento setup:db-schema:split-sales
.
- Se ha mejorado la administración de excepciones para los procesos secundarios bifurcados por
ProcessManager
. Cuando ahora se produce una excepción, se sale del proceso principal y se muestra un mensaje de error solo una vez. Anteriormente, se registraban varios errores de indizador y se mostraban varios mensajes. GitHub-30622
- Los complementos de Adobe Commerce globales (por ejemplo,
webapi_rest
ygraphql
) ya no se activan para un nuevo tipo de área personalizada cuando eldi.xml
de este archivo de área no contiene complementos registrados.
- Las excepciones que se producen durante la inicialización ya no se almacenan en caché y ahora almacenan en déclencheur un código de respuesta 500.
- Los comerciantes ahora pueden asignar o eliminar una imagen desde y hacia un evento de catálogo según la vista de la tienda. Anteriormente, cuando se cambiaba la vista de la tienda al editar un evento de catálogo, la casilla de verificación Eliminar imagen no estaba activa y la aplicación mostraba este error:
Uncaught ReferenceError: toggleValueElements is not defined at HTMLInputElement.onclick
. GitHub-364
- El último controlador combinado en un archivo
communication.xml
ya no invalida todos los controladores creados anteriormente. GitHub-29528
Correcciones generales
- La aplicación ahora muestra el número correcto de estrellas en la página Mis críticas de producto y en la página Mi cuenta revisiones recientes. Anteriormente, la aplicación solo aplicaba las estrellas de revisión a la primera revisión y dejaba sin protagonizar las demás revisiones de la página.
- Los vínculos de cuenta en los encabezados ahora siguen los estándares WCAG. Anteriormente, los vínculos de cuenta en los encabezados contenían ID duplicados, lo que provocaba que fallara la validación de WCAG.
- La aplicación ahora guarda las fechas de los eventos del catálogo en las zonas horarias UTC. Anteriormente, la aplicación guardaba las fechas de eventos de catálogo en el huso horario del usuario.
- La aplicación ya no genera errores generados por el registro del sistema cuando un comprador invitado utiliza una dirección no válida. Anteriormente, la aplicación mostraba este error intermitentemente en lugar de procesar la página:
No such entity with addressId
. GitHub-15115
- El proceso de cambio de tamaño de la imagen ya no se detiene para las imágenes en formato no compatible. Anteriormente, cuando
catalog:images:resize
encontraba un formato de imagen no compatible, el proceso se detuvo y la aplicación mostró este error:bin/magento catalog:images:resize Unsupported image format
.
- Se ha agregado compatibilidad con WEBP y AVIF para imágenes de logotipo al administrador. GitHub-32495
- Ya no puede cambiar el ámbito del atributo
media_gallery
. Anteriormente, cuando se volvía a cambiar el ámbito del atributomedia_gallery
aglobal
, la aplicación arrojaba un error.
- Los productos relacionados que se agregaron como una actualización programada ya no se muestran en la página de productos de una tienda después de la fecha de finalización de la actualización. GitHub-469
- La aplicación ahora muestra un mensaje informativo y preciso cuando hace clic en Administrar elementos en la página Registro de regalos de Mi cuenta y los productos del Registro no están disponibles. Anteriormente, la aplicación arrojó este error:
Error: Call to a member function getId() …
. GitHub-490
- Ahora puede agregar una página de CMS desde la página Agregar nueva página a la jerarquía raíz del sitio web según lo esperado.
- El filtrado ahora funciona como se espera en la lista de exportaciones programadas cuando se selecciona el tipo de entidad. Anteriormente, el filtro no funcionaba y la aplicación arrojaba un error de JavaScript. GitHub-361
- Las imágenes de categoría ahora se copian como se espera del directorio
catalog/tmp/category
al directoriocatalog/category
cuando las categorías se guardan mediante el método de almacenamiento de la base de datos. La fila de imagen de la tablamedia_storage_file_storage
ahora también tiene eldirectory_id
correcto. GitHub-11995
- Ahora se notifica a los comerciantes sobre las cachés invalidadas según lo esperado después de enviar cambios a la jerarquía de CMS. Anteriormente, la aplicación no invalidaba las cachés al guardar la jerarquía de CMS.
- AJAX Se han reducido las solicitudes de redundantes a la sección del carro de compras. Anteriormente, la aplicación no cargaba correctamente el subtotal del carro de compras, lo que activaba la recarga de nuevo.
- Se ha agregado validación para las direcciones URL para evitar que las palabras reservadas se incluyan en las claves URL. Consulte Definición de identificadores uniformes de recursos (URI) conocidos
- En implementaciones que ejecutan PHP 7.4, la aplicación devuelve ahora un error 404 cuando la configuración Generar reescrituras de URL de "categoría/producto" se establece en No, y un comprador intenta acceder a una ruta de categoría inexistente. Anteriormente, la aplicación devolvió un error 500 que indica:
Trying to access array offset on value of type bool
. GitHub-31984
- Ahora puede editar correctamente un producto que se creó con un conjunto de atributos del cual se quitaron Grupo de diseño y actualización de diseño de programación grupos. Anteriormente, al intentar editar un producto creado a partir de ese conjunto de atributos, la aplicación arrojaba un error grave. GitHub-44
nowdoc
ha reemplazado aheredoc
en el conmutador de almacénMagento_Backend
. GitHub-32262
- Ahora se redirige directamente a los administradores a la página de administración solicitada después de iniciar sesión. Anteriormente, cuando un administrador iniciaba sesión, se le redirigía al tablero de administración (o a cualquier página configurada como página de inicio) y tenía que desplazarse manualmente a su destino. GitHub-31042
- Se agregaron las regiones Argentina, Bolivia, Chile, Ecuador, Guyana, Paraguay, Perú, Surinam y Venezuela a la tabla
directory_country_region
. GitHub-31169
- Se agregaron las regiones de Albania, Dinamarca, Grecia, Islandia, Portugal y Suecia a la tabla
directory_country_region
. GitHub-31040
- Los mensajes ahora se marcan como errores en la cola de mensajes de MysqlMQ cuando se producen excepciones. GitHub-18140
- La aplicación ahora hace referencia al objeto de clase correcto al cargar la información de impuestos para las páginas de nota de abono de administrador y factura. GitHub-31197
- La integración de Royal Mail Click & Drop ahora funciona según lo esperado. Anteriormente, la aplicación arrojó este error cuando intentó activar esta integración:
Sorry! Something went wrong. Please try again later
. GitHub-28996
- La aplicación ahora muestra un mensaje de error informativo cuando se pasa un envío, una nota de abono o un ID de factura incorrectos en una dirección URL. Anteriormente, la aplicación arrojaba un error grave. GitHub-30424
- Se ha eliminado la recursión en la ubicación de los archivos estáticos. La aplicación ahora muestra una página 404 en lugar de un error 500. Anteriormente, un error en la configuración predeterminada de NGINX provocaba una recursión infinita. GitHub-31530
- El nombre del archivo
cms_index_noroute.xml
se ha corregido acms_noroute_index.xml
. GitHub-31300
- El archivo
.editorconfig
se ha refactorizado para corregir el formato automático dedb_schema_whitelist.json
archivos. GitHub-31171
- El cambio de tamaño de una ventana del explorador ya no almacena en déclencheur los eventos de lupa de enlace duplicados. GitHub-30788
- La aplicación ya no emite una excepción SQL al filtrar
Magento\Users\Model\ResourceModel\Users\Collection
poruser_id
. GitHub-31216
Tarjetas de regalo
- Los cargos por pago pendiente ahora se eliminan de una tarjeta regalo como se espera cuando se cancela una tarjeta regalo. Anteriormente, la aplicación arrojaba un error cuando
cron
se ejecutaba después de que se eliminara la tarjeta regalo.
- Los compradores ahora pueden retirar tarjetas de regalo de un pedido en la página Revisar pedido al realizar el registro con varias direcciones. Anteriormente, la aplicación no quitaba la tarjeta regalo del pedido cuando el comprador seleccionaba la tarjeta y luego hacía clic en Quitar.
- La aplicación ahora muestra el nuevo precio de una tarjeta de regalo en el carro de compras cuando cambia el valor de la tarjeta después de agregarla al carro de compras.
- Se ha añadido la lógica de validación de intervalo de precios a la página de creación de tarjetas regalo. Anteriormente, un administrador podía crear una tarjeta con un valor mínimo que superara el valor máximo. GitHub-493
- La consulta
addRequisitionListItemsToCart
ahora devuelve la cantidad de una tarjeta regalo personalizada como se espera cuando la solicitud no contiene un valor paraallow_open_amount
.
Mensaje de regalo
- La mutación
setGiftOptionsOnCart
ahora crea correctamente mensajes de regalo. GitHub-388
Registro de regalos
- Los valores de Fecha del evento ahora son iguales en la tienda y en el administrador durante la creación o edición del registro de regalos. Anteriormente, cada vez que editaba y guardaba el registro de regalos, la aplicación ajustaba la fecha del evento un día hacia atrás tanto en la tienda como en el administrador. GitHub-466
- La aplicación ya no muestra los productos desactivados en los registros de regalos. Anteriormente, si un producto se deshabilitaba después de agregarse a un registro de regalos, la aplicación mostraba este mensaje cuando un comprador tenía acceso al registro:
Error: Call to a member function getId() …
. GitHub-510
Envoltorio para regalos
- La traducción de las etiquetas de los envoltorios para regalos para las vistas de la tienda ahora funciona según lo esperado.
- El envoltorio para regalos ahora se aplica como se espera a los pedidos que se envían a varias direcciones.
- La aplicación ahora elimina los cargos por envoltorio para regalos del carro de compras cuando se han eliminado todos los productos.
- Los totales de nota de abono ahora son correctos cuando la nota de abono contiene envoltorio para regalos y cargos configurables por productos. Anteriormente, el importe de impuestos del envoltorio para regalos no siempre se incluía en el total de la nota de abono. GitHub-34
Google Analytics
- La aplicación ya no genera un error cuando un administrador intenta cargar una página en la tienda cuando los Google Analytics están activados. AJAX Se ha agregado una entrada CSP para
connect-src
para permitir solicitudes de to www.google-analytics.com. GitHub-30880
Google Tag Manager
- El componente IU para la dirección de facturación en la página de pago del flujo de trabajo de cierre de compra ahora utiliza correctamente la dirección de oferta cuando Google Tag Manager está habilitado. Anteriormente, se producía un error de JavaScript en la página de pago.
GraphQL
- La consulta de GraphQL
products
ahora devuelve opciones de atributo que se ordenan en el mismo orden utilizado en la página de edición de atributos.
- La respuesta a la solicitud de GraphQL
{ category(id: 2){ children { name children { name } } } }
ahora incluye un árbol de categorías ordenado correctamente.
- El objeto
CartItemPrices
ahora contiene el nuevo campo de GraphQLfixed_product_taxes
, que devuelve una matriz de los impuestos fijos sobre productos que se aplican a un elemento del carro de compras. Anteriormente, los impuestos de producto fijos aplicados a un elemento del carro de compras no se incluían en la consulta del carro de compras.
- Las solicitudes vacías a GraphQL ahora emiten el código de respuesta 200 en lugar de 500. Anteriormente, el analizador de GraphQL arrojaba una excepción antes de que se generara el resultado de la consulta.
- La mutación
applyRewardPointsToCart
ahora actualiza el total general de un carro de compras para reflejar con precisión el valor de los puntos de recompensa deducidos. GitHub-486
- Los productos desactivados ya no se incluyen en la respuesta de GraphQL cuando GraphQL se utiliza para vincular productos de ampliación de venta.
- Los comerciantes ahora pueden usar el método GraphQL
setShippingAddressesOnCart
para establecer las direcciones de facturación y envío para el carro de compras de un comprador cuando se deshabilita el cierre de compra de un invitado.
- La consulta
categoryList
ya no genera una excepción cuando contiene varios fragmentos en el objetoCategoryTree
. GitHub-31086
- La consulta de GraphQL
product
ahora devuelve los precios correctos del grupo de clientes.
- La respuesta de consulta
products
de GraphQL ahora ordena las agregaciones según la posición del atributo del producto.
- La aplicación ya no emite errores de tipo durante las consultas de GraphQL cuando los sufijos de URL de productos y categorías contienen valores nulos. GitHub-30909
- El objeto
CustomizableDateValue
ahora contiene el atributotype
. Su valor es una enumeración que se puede establecer en DATE, DATE_TIME o TIME.
- La consulta
dynamicBlocks
devuelve el contenido de bloques dinámicos que coinciden con los filtros especificados.
- La solicitud del POST
V1/products/special-price-delete
ahora elimina solamente el precio con unstore_id
especificado según lo esperado. Anteriormente, la llamada eliminaba todos los precios especiales para el SKU especificado de todas las tiendas. GitHub-25907
- Se ha corregido un error con el atributo
country_code
en la mutacióncreateGiftRegistry
.
- Se han corregido problemas con el atributo
giftRegistryUid
de la mutaciónupdateGiftRegistryItems
.
- Se ha agregado una comprobación adicional para evitar que la mutación
updateGiftRegistryRegistrants
se use para agregar personas aleatorias como inscritos a un registro de regalos.
- La mutación
addConfigurableProductsToCart
devuelve ahora la miniatura correcta del producto especificado. Anteriormente, devolvía la miniatura del producto principal.
- La consulta
products
ya no expone el precio especial de un producto cuando el período de precio especial está establecido para una fecha futura. GitHub-30210, GitHub-29631
- La respuesta a la consulta
customer
ahora incluye el atributototal_giftcard
como parte del objetoOrderTotal
.
- Se ha corregido un problema que hacía que la consulta
products
devolviera información errónea acerca de los niveles de precios en artículos que no tienen establecidos precios de nivel. GitHub-32279
Imagen
- Ahora puede establecer los atributos del paquete required_options y has_options como se espera al crear o actualizar un producto del paquete mediante el extremo del POST
/V1/product/:sku
. Anteriormente, estos atributos personalizados se establecían en 0 (cero) a pesar de los esfuerzos por establecerlo en 1 (uno).
Importar/exportar
- El filtro ID de categoría para entidades de producto en la cuadrícula Exportar atributos de entidad de la página ahora funciona según lo esperado.
- El estado de existencias de productos agrupados ahora se actualiza, según lo esperado, cuando todos los productos secundarios están agotados. GitHub-32647
- El estado de stock de producto configurable ahora se actualiza automáticamente según lo esperado cuando el estado de stock de producto secundario se actualiza mediante la importación. Anteriormente, el estado de existencias del producto no se actualizaba automáticamente cuando el estado de existencias del producto secundario se actualizaba mediante la importación.
- Ahora puede guardar valores vacíos en una exportación programada. Anteriormente, la aplicación actualizaba los valores de filtro vacíos después de crear o guardar la exportación. Los valores
no
ynot specified
se representaban con cero en la base de datos, y se anuló un valor denot selected
conno
.
- El proceso de exportación ahora tiene en cuenta el ámbito de la función del usuario al exportar productos, fuentes de stock y entidades del cliente. Anteriormente, el proceso de exportación ignoraba el ámbito de la función de usuario, que permitía la exportación de entidades de exportación de función de usuario privadas.
- La aplicación ahora establece la clase de impuestos del producto en
None
si se importa un producto contax_class_name
valoresNone
o0
. Anteriormente, siproduct tax_class_name
eraNone
en el archivo CSV, la aplicación creaba una nueva clase de impuestosNone
, que duplicaba la clase de impuestos existente. Siproduct tax_class_name
eran0
en el archivo CSV, la aplicación ignoró ese valor y la clase de impuestos del producto no cambió después de la importación.
- Los administradores ahora pueden cambiar correctamente el
name
debundle_values
de un producto del paquete desde el administrador. Anteriormente, la aplicación mostraba el producto agotado en la tienda después de cambiar el nombre del administrador. Los productos también se combinaron con el mismo SKU en una sola sección de opción de paquete.
- La aplicación ahora tiene en cuenta el ámbito del usuario al exportar los datos del cliente. Anteriormente, al intentar exportar clientes, la aplicación exportaba datos de clientes de todos los sitios web.
- La aplicación ahora elimina las relaciones de producto entre las ventas ascendentes, las ventas cruzadas y los productos relacionados durante la importación del archivo CSV, tal como se espera cuando se especifica
__EMPTY__VALUE__
en el archivo CSV.
- La exportación de datos de direcciones personalizadas para muchos clientes (Administrador Sistema > Exportar) ya no provoca un error de memoria de forma rutinaria. Anteriormente, al exportar los datos de direcciones personalizadas, la aplicación intentaba cargar todos los datos del cliente, lo que provocaba un agotamiento de la memoria, y la aplicación arrojaba un error de no asignación de memoria.
- Los precios de nivel duplicados ya no se importan durante el proceso de importación CSV predeterminado. Anteriormente, faltaba validación para evitar la importación de precios de nivel duplicados y, cuando se producían precios de nivel duplicados, los comerciantes no podían guardar los productos. Los comerciantes también vieron este error cuando intentaron programar un cambio de producto:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…
.
- Todas las imágenes de productos se validan durante la importación. Anteriormente, la aplicación solo validaba la primera imagen cuando un producto tenía varias imágenes. GitHub-28236
- Ahora puede eliminar una región de una dirección de cliente como se espera durante la importación. Anteriormente, la región asignada no cambiaba cuando se importaba una dirección de cliente con una región vacía.
- Los productos con contenido JSON o de HTML como atributos de producto adicionales ahora se exportan correctamente a un archivo CSV. Anteriormente, el archivo CSV contenía cadenas de datos superpuestas en campos incorrectos.
Índice
- Process Manager ahora se cierra con un error cuando falla un proceso secundario. Anteriormente, Process Manager siempre se cerraba correctamente si el número de funciones que se le pasaban (por ejemplo, dimensiones del indizador) era inferior al valor de la variable de entorno
MAGE_INDEXER_THREADS_COUNT
. GitHub-30964
- Los productos ahora están disponibles según lo esperado en los resultados de búsqueda de la tienda al vincular productos con una solicitud de PUT REST
/V1/products/:sku/links
cuando el modo de indizador está establecido en Actualizar al guardar.
- El indizador de reglas de precios de catálogo ahora funciona como se espera cuando el modo de indizador está establecido en Actualizar al guardar. GitHub-370
- La eliminación de una categoría deshabilitada que no incluye un producto ahora no afecta a la búsqueda en el catálogo ni a las tablas de índice plano de categorías. Anteriormente, al eliminar una categoría inactiva se activaba un reindexado completo. GitHub-23297
- Los indexadores personalizados ahora pueden utilizar nombres de columna de entidad diferentes para las suscripciones. Anteriormente, el déclencheur de la base de datos utilizaba el nombre de columna del indizador establecido por última vez en Actualizar por programación en lugar del indizador designado. GitHub-21853
- AJAX La aplicación ya no envía solicitudes de para volver a cargar secciones de datos de clientes (
Magento_Customer/js/section-config
) que no se vean afectadas por la solicitud. GitHub-31948
- Los siguientes indizadores ya no se invalidan después de agregar, quitar o reordenar productos en una categoría:
catalog_category_product
ycatalogsearch_fulltext
(y sus dependientes). Anteriormente, estas eliminaciones involuntarias desencadenaban una reindexación completa de los sitios. Ahora se impide una reindexación completa en estas condiciones cuando el catálogo plano no está habilitado.
Infraestructura
- La dependencia
pelago/emogrifier
se ha actualizado de la versión 3.1.0 a la 5.0.0. Esta actualización resultó en la introducción de cambios incompatibles con versiones anteriores en la claseMagento\Email\Model\Template\Filter
. El código modificado se ejecuta durante el procesamiento de las plantillas de correo electrónico. Consulte Referencia de BIC.
- Se ha corregido un problema con
\Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::getCategoryIdsByProductIds
que impedía guardar un nuevo producto.
- Se ha eliminado la biblioteca obsoleta TinyMCE v3. El módulo
Magento_Tinymce3Banner
y las pruebas MFTF relacionadas con TinyMCE v3.x se han eliminado de Adobe Commerce.
- La aplicación ya no genera un error
Invalid header value detected
en el formulario Contáctenos cuando un comprador introduce una dirección de correo electrónico que contiene marcas diacríticas francesas (como "é", "è"). La aplicación ahora convierte letras UTF-8 en el nombre de usuario a codificación ASCII. Anteriormente, las letras UTF-8 no se convertían a codificación ASCII en la sección única de la dirección de correo electrónico.
- La aplicación ya no genera un error grave de PHP cuando se añade un complemento a una clase principal. GitHub-31291
- Se han actualizado los archivos README.md para estos módulos:
Magento_Msrp
,Magento_MsrpConfigurableProduct
,Magento_MsrpGroupedProduct
,Magento_Multishipping
,Magento_MysqlMq
. GitHub-32577
phpcpd
se ha actualizado a la versión 6.0.3 para garantizar la compatibilidad con PHP 8.
ramsey/uuid
se ha actualizado por compatibilidad con PHP 8.0. GitHub-31777, GitHub-826
colinmollenhour/php-redis-session-abstract
se ha actualizado a la versión 1.4.4 para garantizar la compatibilidad con PHP 8. GitHub-32709
- Se corrigió una combinación no válida de tabulaciones y espacios en el archivo
phpstan.neon
. GitHub-31239
- Se ha eliminado el uso de la propiedad obsoleta
$_isScopePrivate
en toda la base de código. GitHub-30506
- Los diseños de página ya no están codificados en
Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container
. Como resultado, la funcióngetPageLayouts()
devuelve ahora la lista real de diseños de página declarados por los diferentes módulos según lo esperado. Anteriormente, solo devolvía diseños codificados. GitHub-31168
- El archivo
composer.lock
se ha actualizado a la última versión de Coding Standard. GitHub-31152
- Se agregó una dependencia que falta en el paquete
web-token/jwt-framework
almagento/module-jwt-framework-adapter
. GitHub-32578
- Se han agregado agentes de escucha pasivos a la biblioteca
fotorama.js
para mejorar la puntuación de las métricas de Lightthouse. GitHub-31140
- Se ha actualizado el archivo README.md para el módulo Google Analytics. GitHub-32616
- El Administrador de procesos ahora gestiona las excepciones correctamente en los procesos bifurcados. El proceso principal ahora se cierra y la aplicación muestra un mensaje de error solo una vez. Además, las excepciones de los procesos bifurcados ahora se gestionan cuando se inician en el proceso principal. Anteriormente, la aplicación registraba varios errores de indizador y mostraba varios mensajes de error. GitHub-30622
- La aplicación ya no emite un error cuando se añade un complemento a una clase principal. (El parámetro
optionsProvider
ahora se declara después degetContentIdentities
enAssest.php
). Anteriormente, la aplicación arrojó este error:Error: Cannot instantiate interface Magento\Framework\Data\OptionSourceInterface
. GitHub-31291
- Al ejecutar
Magento\Framework\Filesystem\Io\Ftp::ls()
en una carpeta vacía, ahora se devuelve una matriz vacía como se esperaba. Anteriormente, la aplicación arrojó esta excepción:Invalid argument supplied for foreach() in vendor/magento/framework/Filesystem/Io/Ftp.php…
. GitHub-31288
- El método
update
tanto para el Rol como para las Reglas se ha marcado como obsoleto enapp/code/Magento/Authorization/Model/Role.php
. GitHub-30756
- Se ha corregido la concatenación de los parámetros de cookie de SameSite. Anteriormente, una concatenación incorrecta adjuntaba el sufijo
lex
avalue
,domain
y otros parámetros. GitHub-26377, GitHub-32440
allure-framework/allure-phpunit
se ha actualizado a la versión 1.3.1 en toda la base de código. Anteriormente, la aplicación mostraba este error:Warning: Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP) in /var/www/html/src/vendor/allure-framework/allure-phpunit/src/Yandex/Allure/Adapter/AllureAdapter.php:74.
GitHub-24635
- La aplicación ahora muestra más errores informativos cuando se producen errores al ejecutar comandos
bin/magento
en el modo de producción. Anteriormente, la aplicación no mostraba mensajes de error o mostraba mensajes sin información. GitHub-32786
- El objeto PHP
ArrayIterator
se ha actualizado para que funcione según lo esperado con PHP 7.4. GitHub-32088
- La aplicación ya no genera un error cuando un cliente intenta completar un pedido cuando no hay transportistas disponibles. En su lugar, muestra la página de cierre de compra y este mensaje:
Sorry, no quotes are available for this order at this time
. Anteriormente, la aplicación mostraba una página de desprotección en blanco y registraba este mensaje en el registro de excepciones:array_keys() expects parameter 1 to be array, null given
. GitHub-30830
- La aplicación ya no registra cada cookie como un contexto independiente. La matriz
$_COOKIE
también se ha convertido en una cadena. Anteriormente, debido a que cada cookie se registraba como un contexto independiente, cuando el número de cookies superaba las 50, la aplicación registraba este mensaje:Unable to send the cookie. Maximum number of cookies would be exceeded
. GitHub-31334
Factura
- Al crear nuevas facturas en el Administrador, la casilla de verificación Copia de correo electrónico de ahora funciona según lo esperado. Anteriormente, la casilla de verificación se ignoraba si la configuración global para enviar correos electrónicos de factura estaba habilitada en Correos electrónicos de ventas. Ahora es coherente y funciona del mismo modo que las páginas de creación de envío y nota de abono. GitHub-28511
Galería de medios
- XMP
bin/magento media-gallery:sync
ahora falla como se espera al procesar imágenes PNG que carecen de información de la.
- Las entradas de la tabla
catalog_product_entity_media_gallery
se quitan según lo esperado cuando se eliminan productos relacionados. GitHub-17727
- Los detalles de la imagen ahora se pueden actualizar en la Galería multimedia cuando la minificación de JavaScript está habilitada. Anteriormente, los detalles de la imagen no se guardaban y la aplicación mostraba este error:
TypeError: Cannot read property 'call' of undefined in jquery.validate
. GitHub-31633
MFTF
Las nuevas características y las correcciones de errores principales de MFTF se describen en Registro de cambios del marco de pruebas funcionales.
- Los comandos
magento indexer:reindex
ycache:flush
y el grupo de acciónAdminReindexAndFlushCache
se han eliminado de las pruebas para mejorar la ejecución de los siguientes módulos:Bundle
,Catalog
,CatalogRule
,CatalogRuleConfigurable
,CatalogUrlRewrite
,Downloadable
,Indexer
,Paypal
ySales
. GitHub-31031
AdminSubmitCategoriesPopupActionGroup
se ha agregado a las pruebas para evitar errores en las pruebas. GitHub-31251
- Las pruebas se han refactorizado con
StorefrontCheckQuickSearchStringActionGroup
yStorefrontAssertProductNameOnProductMainPageActionGroup
(grupos de acción existentes). GitHub-31251
Pruebas refactorizadas
Las siguientes pruebas se han refactorizado para mejorar el tiempo de ejecución:
AddOutOfStockProductToCompareListTest
AdminApplyTierPriceToProductWithPercentageDiscountTest
AdminCheckingCreditMemoTotalsTest
AdminCheckDashboardWithChartsTest
AdminConfigDefaultProductLayoutFromConfigurationSettingTest
AdminCreateInvoiceTest
AdminCreateOrderAddProductCheckboxTest
AdminMassOrdersCancelCompleteAndClosedTest
AdminMassOrdersCancelProcessingAndClosedTest
AdminMassOrdersHoldOnCompleteTest
AdminMassOrdersHoldOnPendingAndProcessingTest
(reemplazo de AdminMassOrdersHoldOnPendingAndProcessingTest
obsoleto)
AdminMassOrdersUpdateCancelPendingOrderTest
AdminMassProductPriceUpdateTest
AdminMassUpdateProductAttributesMissingRequiredFieldTest
AdminOrdersReleaseInUnholdStatusTest
AdminPanelIsFrozenIfStorefrontIsOpenedViaCustomerViewTest
AdminSortingByWebsitesTest
AdminUpdateSimpleProduct
AdminUpdateSimpleProductWithRegularPriceInStockEnabledFlatTest
AdminValidateShippingTrackingNumberTest
CancelOrdersInOrderSalesReportTest
ProductsQtyReturnAfterOrderCancelTest
StorefrontConfigurableProductBasicInfoTest
Grupos de acción
Las acciones repetitivas se han sustituido por grupos de acciones en estas pruebas:
AdminCheckConfigurableProductPriceWithDisabledChildProductTest
AdminConfigurableProductCreateTest
AdminConfigurableProductRemoveAnOptionTest
AdminCreateProductDuplicateUrlkeyTest
AdminCreateSimpleProductNegativePriceTest
AdminCreateSimpleProductZeroPriceTest
AdminCreateVirtualProductFillingRequiredFieldsOnlyTest
AdminUpdateSimpleProductWithRegularPriceInStockDisabledProductTest
AdminUpdateSimpleProductWithRegularPriceInStockNotVisibleIndividuallyTest
AdminUpdateSimpleProductWithRegularPriceInStockVisibleInCatalogOnlyTest
Nuevos grupos de acción
AdminClearFiltersOnGridActionGroup
AdminClickAddNewPageOnPagesGridActionGroup
AdminClickInsertWidgetActionGroup
AdminClickRefundOfflineOnNewMemoPageActionGroup
AdminFillAccountInformationOnCreateOrderPageActionGroup
AdminGoToOrderStatusPageActionGroup
AdminOpenCMSPagesGridActionGroup
AdminSelectAttributeSetOnEditProductPageActionGroup
AssertAdminProductIsAssignedToCategoryActionGroup
(reemplaza la cuadrícula de productos de filtrado por SKU y hace clic en la primera fila (para reducir el tiempo de ejecución de la prueba)
AssertLinkActionGroup
AssertStorefrontCartDiscountActionGroup
ClickPlaceOrderActionGroup
SaveCmsPageActionGroup
StorefrontAssertProductNameIsNotOnProductMainPageActionGroup
StorefrontGuestCheckoutProceedToPaymentStepActionGroup
StorefrontHoverProductOnCategoryPageActionGroup
StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup
Grupos de acciones eliminados
- Se quitó
CliIndexerReindexActionGroup
(o se cambió el valor) de las pruebas para mejorar el tiempo de ejecución de los módulosBackend
,Bundle
,BundleImportExport
,Catalog
,CatalogRule
,CatalogSearch
,Checkout
,Downloadable
,Elasticsearch
,Elasticsearch6
,Indexer
,LayeredNavigation
,LoginAsCustomer
,Newsletter
,Sales
,SalesRule
,Search
,Store
,Swatches
,UrlRewrite
,Weee
yWishlist
.
- Se eliminaron
CliCacheFlushActionGroup
deCatalog
,CatalogUrlRewrite
,Checkout
,Config
,ConfigurableProduct
,Contact
,Cookie
,CurrencySymbol
,Customer
,Downloadable
,Elasticsearch
,Elasticsearch6
,Fedex
,Indexer
,LayeredNavigation
,LoginAsCustomer
,Msrp
,Multishipping
,Sales
,Swatches
,Translation
,UrlRewrite
,Vault
,Weee
yWishlist
módulos.
Newsletter
- La aplicación ya no envía correos electrónicos de newsletter a un cliente que se ha dado de baja de la newsletter en el periodo de tiempo entre la creación de la cola de la newsletter y el envío de la newsletter. GitHub-32116
- La aplicación respeta ahora la configuración de habilitación de boletines informativos (Tiendas > Configuración > Configuración > Clientes > Boletín > Opciones generales). Anteriormente, esta configuración siempre se recuperaba del ámbito predeterminado en implementaciones de varias tiendas. GitHub-31188
- La GET de llamadas REST
/V1/customers/search
devuelve ahora la información correcta para los clientes suscritos a varios boletines. GitHub-31168
- El estado de suscripción de almacenamiento en caché se ha eliminado del complemento de newsletter. GitHub-19345
Pedido
- La aplicación ahora calcula correctamente un saldo de cliente facturado al devolver el crédito de tienda a una cuenta de cliente para un pedido parcialmente facturado.
- La aplicación guarda ahora un pedido modificado como se espera cuando guarda un saldo de cliente reembolsado. GitHub-393
Métodos de pago
- La aplicación ahora procesa bloques de pago en
frontend
independientemente del área desde la que se envió el correo electrónico. (El área actual ahora se emula comofrontend
antes de que se represente el bloque de pago). Anteriormente, los bloques de pago se representaban en el área desde la que se enviaba el correo electrónico. Como resultado, tanto si el correo electrónico de ventas se activó desde el administrador como desde la API de REST, las direcciones URL de los recursos intentaron cargarlos desde un área incorrecta (webapi_rest
oadminhtml
).
- La aplicación ahora envía el vínculo de un producto descargable a la dirección de correo electrónico especificada durante el cierre de compra. Anteriormente, cuando un comprador invitado utilizaba el Pago y envío de PayPal Express e introducía diferentes direcciones de correo electrónico para enviar el pedido y para pagar, la aplicación enviaba el vínculo de producto descargable a la primera dirección.
- La aplicación ahora muestra un valor preciso para el crédito de tienda disponible en la página Método de pago en implementaciones que admiten varias monedas.
- La lista de métodos de pago ahora se actualiza según lo esperado cuando un comprador invitado cambia la dirección de envío de un pedido a un país diferente durante el cierre de compra. Anteriormente, el cambio de la dirección de facturación no almacenaba en déclencheur una actualización de los posibles métodos de pago.
PayPal
- Los compradores ahora pueden realizar correctamente un pedido de PayPal Payflow Pro con una dirección de envío que contenga caracteres especiales. Anteriormente, la aplicación rechazaba el pago de estos pedidos.
- Ahora se redirige a los compradores a la página de éxito del pedido después de un pago realizado correctamente con PayPal. Anteriormente, se redirigía a los compradores a una página en blanco porque se perdían datos de sesión.
Rendimiento
- Se ha mejorado el rendimiento de la búsqueda de SKU de administrador en catálogos grandes. Las sugerencias del optimizador de consultas ahora fuerzan el uso del índice durante la ejecución de la consulta.
- Se ha mejorado el rendimiento del proceso
catalog_product_alert
cron
al ejecutarse en tablas grandes (varios millones de filas). Anteriormente,catalog_product_alert
cargaba todas las alertas de producto, lo que provocaba una excepción de memoria insuficiente.
- La aplicación ya no carga todas las páginas de CMS cuando solo se necesita una página de edición para procesar un formulario de administrador. Estas páginas ahora se cargan más rápido. GitHub-30936
-
Los valores numéricos de las expresiones
WHERE IN
ahora se convierten en números, no en cadenas, lo que mejora el rendimiento de las consultas en algunas versiones de MariaDB. GitHub-31135 -
El modo
use_application_lock
le permite habilitar la reindexación mediante el uso de variables de entorno o configurando el archivoapp/etc/env.php
. Ya no es necesario restablecer manualmente el indexador después de un error con este modo habilitado. Cuando este modo no está habilitado, debe restablecer manualmente el indexador tras producirse un error. Consulte Uso del modo de bloqueo de aplicación para reindexar procesos.
Precio
- La aplicación ahora actualiza correctamente el precio de un producto con precios agrupados cuando un comprador actualiza la cantidad del producto en la tienda. GitHub-32669
- Los productos agrupados ahora se pueden guardar cuando se ha asignado un precio de nivel a los productos y se utiliza
Magento\Framework\Api\ExtensibleDataObjectConverter
para convertir los datos del producto. Anteriormente, cuando se usabaMagento\Framework\Api\ExtensibleDataObjectConverter
para convertir datos de producto en una matriz al guardar un producto, la aplicación no lo guardó y mostró este error:Notice: Undefined index: price in app/code/Magento/Catalog/Model/Product/Type/Price.php on line 382.
- Las actualizaciones de precios programadas ahora se aplican a productos que ya están en el carro de compras de un comprador. GitHub-356
- El precio de nivel ahora se aplica a un producto como se espera cuando los incrementos de cantidad están activados y el inventario decimal es inferior a 1. Anteriormente, la cantidad mínima de precio de nivel se establecía en 1.
Vídeo del producto
- Ahora puede usar el botón Agregar vídeo (Administrador Catálogo > Productos) para agregar varios vídeos de forma consecutiva. Anteriormente, los campos de vídeo conservaban los detalles del vídeo anterior.
- La introducción del modo de pantalla completa para un vídeo de producto en una página de producto ahora funciona como se espera en dispositivos móviles. Anteriormente, al entrar en modo de pantalla completa, el vídeo se pausaba antes de salir del modo de pantalla completa.
- Los botones de flecha de navegación (Siguiente y Anterior) ahora están visibles como se espera en los vídeos de productos de tienda.
- Los comerciantes ahora pueden agregar videos de Vimeo usando el botón Insertar video en la página del producto según lo esperado. Anteriormente, la aplicación mostraba un error 404. GitHub-31753
Cita
- La llamada a
/V1/guest-carts/examplecartid/items
ahora devuelve la vista de almacén solicitada. Anteriormente, devolvía la primera vista de tienda de la tienda, no la solicitada.
- El envío de facturas ahora se puede configurar. Anteriormente, el envío de facturas no se podía configurar y la aplicación siempre enviaba una factura después de crearla. Los correos electrónicos de factura y pedido se enviaron en el ámbito de un observador. Los observadores independientes ahora rigen el envío del correo electrónico de pedido y el correo electrónico de factura. GitHub-27656
Informes
- Ahora, todos los informes del sistema se pueden ver y descargar desde el proyecto de infraestructura de Adobe Commerce en la nube. Anteriormente, no se podían descargar informes del sistema para Registros, Datos, Diseño o Tiendas.
- La fecha de la última revisión en Administración Informes > Revisiones > Por productos ahora muestra la fecha de revisión correcta. Anteriormente, la aplicación mostraba la fecha de creación del producto en lugar de la fecha de revisión.
Autorizaciones de devolución de mercancía (RMA)
- El atributo RMA
resolution
ya no se muestra como obligatorio cuando el valor del campo de atributorequired
se establece en no.
- Ahora puede seleccionar varios pedidos para la devolución desde el administrador. Anteriormente, la aplicación generaba un error al hacer clic en Enviar después de seleccionar varias devoluciones y seleccionar Cierre en el menú desplegable Acciones.
- La aplicación ahora envía notificaciones por correo electrónico a los clientes según lo esperado después de cambiar el estado de una devolución mediante la API de REST.
- La aplicación ahora filtra los registros según los valores de filtro en la cuadrícula Administrador que devuelve el cliente. Anteriormente, la aplicación lo dirigía a la página Administrar todos los clientes y al hacer clic en el botón Restablecer filtro también se redirigía a esta página. GitHub-436
Críticas
- Las estrellas de clasificación de revisión de productos ahora se calculan correctamente en la sección Detalles de revisión de la página Mi cuenta.
- Las secciones Clasificación promedio del producto y Clasificación del producto de la página de detalles de revisión del producto ahora se representan correctamente. Anteriormente, el ID de revisión no se establecía cuando la aplicación calculaba la clasificación de tiendas y la plantilla de revisión de producto no se representaba correctamente.
- El vínculo Sea el primero en revisar este producto ahora cambia según lo esperado a un recuento de revisiones después de que un administrador apruebe una revisión.
- Los administradores ahora pueden ordenar las revisiones de producto en la sección Revisiones de producto de la página de edición de productos según lo esperado. GitHub-30270
- Las revisiones ahora se guardan con el ID de almacén correcto después de que un administrador apruebe y guarde la revisión desde un dominio diferente al del almacén. GitHub-17510
Recompensas
- Los comerciantes ahora pueden cancelar un pedido que se haya realizado total o parcialmente con puntos de recompensa después de que el cliente que ha realizado el pedido se haya eliminado del sistema.
- Los comerciantes ahora pueden eliminar los puntos de recompensa de las reglas de precios del carro de compras. Anteriormente, cuando un comerciante intentaba establecer puntos de recompensa en 0 al crear una regla de precio del carro de compras, el valor anterior de la cantidad de puntos de recompensa persistió.
- Los puntos de recompensa por las críticas de productos ahora están asociados con el sitio web correspondiente cuando se aprueban múltiples críticas desde la cuadrícula del administrador Marketing > Revisiones pendientes. Anteriormente, los puntos de recompensa no se mostraban en la tienda y no estaban vinculados al sitio web correspondiente en el Administrador.
- La aplicación ahora actualiza la lista de métodos de pago cuando un comprador que ha cerrado la compra con varias direcciones comprueba o desmarca la opción Crédito de tienda (puntos de recompensa).
Ventas
- Los usuarios administradores ahora pueden realizar pedidos de artículos sin existencias cuando la opción Pedidos no satisfechos está habilitada (Tiendas > Configuración > Catálogo > Inventario > Opciones de productos). Anteriormente, la aplicación arrojaba un error.
- Los compradores ahora pueden encontrar un pedido en la página Pedidos y devoluciones cuando el apellido termina en un espacio en blanco.
- Las facturas ahora se crean con el total general correcto cuando se aplica una regla de precio del carro de compras que asigna un descuento del 100% a un pedido que también está sujeto a impuestos de descuento y productos del catálogo y que cumple los requisitos para el envío gratuito. Anteriormente, el pedido tenía el precio correcto, pero la factura no. GitHub-30853
- Filtrar los pedidos por fecha ahora devuelve resultados precisos. Anteriormente, la aplicación no devolvía un pedido realizado después de las 00:00 UTC cuando se filtraban los pedidos por fecha de pedido.
- La cuadrícula de notas de crédito ahora muestra el símbolo de moneda correcto cuando se usa el ámbito Sitio web para un atributo Price en una implementación de varias tiendas.
- Los botones de opción Métodos de pago ya no desaparecen en la sección Información de pago y envío del flujo de trabajo de cierre de compra después de volver a cargar la página Crear nuevo pedido del administrador. GitHub-32106
- El texto en árabe ahora se muestra correctamente en las facturas.
- La aplicación ahora calcula correctamente los totales de impuestos de la nota de abono parcial para las notas de abono que se basan en un pedido o en una factura en tiendas que implementan PayPal Payment Pro como pasarela de pago. Anteriormente, para pedidos con varias facturas, la aplicación aplicaba todo el impuesto de ese pedido para la cancelación parcial de la factura en la nota de abono.
- La aplicación ya no crea interbloqueos de base de datos aleatorios al enviar nuevos correos electrónicos de pedido a los clientes. Anteriormente, se producían interbloqueos porque la aplicación guardaba todo el objeto y sus objetos relacionados en lugar de columnas SQL actualizadas. La aplicación mostró este tipo de error:
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
. GitHub-31090
- La página de detalles de pedido de tienda ahora muestra la cantidad de producto enviada correctamente. Anteriormente, las cantidades de productos eran incorrectas porque la plantilla de la página Envío de pedidos procesaba Cantidad enviada como
int
. Esto se cambió afloat
.
- La aplicación ya no envía copias por correo electrónico de una factura de pedido cuando el botón Enviar copia por correo electrónico de la factura está desmarcado. Anteriormente, la aplicación enviaba un correo electrónico a Cliente y Enviar copia del correo electrónico de factura a. GitHub-28511
- La aplicación ya no crea entradas de direcciones duplicadas para una cuenta de cliente al crear un nuevo pedido desde el administrador para un cliente existente. Se cambió el nombre de la casilla de verificación Guardar en la libreta de direcciones a Agregar a la libreta de direcciones y ahora está desactivada de forma predeterminada en el administrador.
- La aplicación ahora usa el logotipo que se ha cargado en la configuración de Logotipo para la vista impresa del HTML cuando los compradores imprimen un pedido desde su cuenta. Anteriormente, la aplicación mostraba el logotipo de LUMA en lugar del logotipo cargado.
- El localizador de artículos de la tienda ahora funciona como se espera cuando el número de artículos supera los 20. Anteriormente, el localizador tenía en cuenta productos secundarios y el recuento total era incorrecto.
- La aplicación muestra ahora los símbolos de divisa correctos para los valores de subtotal y envío y gestión en las cuadrículas de la página Pedido y de la página Nota de Abono. GitHub-22662
- Los administradores que utilizan Safari ahora pueden añadir correctamente un producto a un pedido del administrador. Anteriormente, cuando el administrador hacía clic en el botón Agregar productos seleccionados al pedido, la aplicación mostraba el icono de carga giratoria y la página se bloqueaba. GitHub-30265
Regla de ventas
- La aplicación ahora aplica las reglas de precio del carro de compras con Descuento de cantidad máxima aplicado a o Paso de cantidad de descuento (comprar X) condiciones correctamente cuando se aplican varias reglas de precio del carro de compras. Anteriormente, si se aplicaba una regla de precio del carro de compras con Descuento de cantidad máxima a o Paso de cantidad de descuento (comprar X) después de otra regla de precio del carro de compras, el descuento total se reducía al valor configurado para Descuento de cantidad máxima se aplica a o Paso de cantidad de descuento (comprar X) veces el precio del producto.
- El informe Coupon ahora refleja con precisión la actividad de los cupones en implementaciones en las que se implementa una base de datos dividida.
- Las reglas de precios del carro de compras que contienen la condición Categoría IS NOT se aplican ahora según lo esperado a productos simples o secundarios configurables que no están asignados a una categoría pero cuyos productos principales están asignados.
- La consulta de GraphQL
cart
ahora devuelve el total general correcto para el paso de facturación de un carro de compras cuando se aplica un cupón al pedido.
Buscar search-heading
- La página de categoría ya no contiene estos identificadores de elemento de HTML duplicados:
modes-label
,mode-list
,toolbar-amount
,sorter
,limiter
.
- Los resultados parciales de búsqueda de palabras ya no incluyen coincidencias inesperadas o irrelevantes, y las búsquedas producen resultados coherentes tanto en la tienda como en el administrador. La aplicación ahora utiliza un analizador diferente sin un simulador para las búsquedas parciales de palabras. Anteriormente, los resultados de búsqueda mostraban productos que no incluían palabras clave de búsqueda. (Anteriormente, el analizador predeterminado incluía un analizador y, como se utilizó el mismo analizador en el momento de la búsqueda para la búsqueda de palabras parciales, el resultado de la búsqueda podría producir coincidencias inesperadas o irrelevantes).
- La búsqueda rápida ahora devuelve resultados si la consulta de búsqueda tiene varias palabras y el nombre del producto está configurado como no se puede buscar. Anteriormente, si el nombre del producto estaba configurado como no se puede buscar, la aplicación arrojaba una excepción de consulta en consultas de búsqueda con varias palabras.
- Los resultados de búsqueda ahora incluyen el atributo
weight
como se espera cuando se configura como un atributo en el que se puede buscar.
- La aplicación ya no genera un error cuando se ve una página de categoría vacía con el Elasticsearch habilitado. En su lugar, procesa la página según lo esperado y muestra un mensaje informativo. Anteriormente, un índice de texto completo vacío activaba una excepción en una página de categoría.
- La función de autocompletar el campo de búsqueda ahora funciona como se espera si un comprador hace clic fuera del campo de búsqueda después de comenzar su búsqueda. Las sugerencias de autocompletar ahora vuelven a aparecer cuando el comprador reanuda la escritura. Anteriormente, la aplicación no mostraba sugerencias de autocompletar y al hacer clic en el cuadro de búsqueda no se volvían a ver las sugerencias de búsqueda (aunque sí se volvían a escribir cartas adicionales).
- Al buscar un producto en función de su SKU total o parcial en Búsqueda avanzada, ahora se devuelve el producto esperado.
- Los filtros de navegación por capas ahora muestran recuentos de productos precisos. Anteriormente, los valores de recuento de productos del Elasticsearch no se filtraban con permisos de catálogo.
- El Elasticsearch ya no genera un error cuando el parámetro de página de URL de categoría supera la paginación. GitHub-23843
- Ahora puede agregar un asignador de campos de Elasticsearch personalizado a
Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\CompositeResolver
. GitHub-24350
- Los desarrolladores ahora pueden cambiar las asignaciones de Elasticsearch. Anteriormente, las plantillas dinámicas enviadas al servidor de Elasticsearch en las asignaciones predeterminadas estaban codificadas, lo que impedía a los desarrolladores indexar en Elasticsearch cualquier dato adicional asociado a un módulo personalizado. GitHub-24363
- Los campos de búsqueda (minibúsqueda de formularios) ahora funcionan según lo esperado cuando las sugerencias de búsqueda están desactivadas. GitHub-30584
Envío
- La aplicación ahora actualiza el precio de envío como se espera cuando un comprador vuelve a la página del carro de compras después de eliminar un producto durante el cierre de compra con varias direcciones.
- La solicitud ahora muestra el precio de envío ajustado correcto cuando algunos artículos del carro cumplen los requisitos para el envío gratuito. Anteriormente, cuando un subconjunto de artículos del carro de compras cumplía los requisitos para el envío gratuito, la aplicación no ajustaba el precio de envío y mostraba el precio de envío completo al comprador.
- Los administradores restringidos a un sitio web específico ahora pueden crear un envío para un pedido realizado en el mismo sitio web. Anteriormente, la aplicación arrojaba esta excepción cuando un administrador que no tenía permiso para acceder a la vista de almacén predeterminada intentaba enviar un pedido colocado en una vista de almacén a la que el administrador tenía acceso:
Notice: Undefined offset: 1 in /app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php on line 293
.
- La aplicación ahora tiene en cuenta los descuentos pertinentes en la regla de precio de carro de compras al determinar si un pedido cumple las condiciones para el envío gratuito de DHL.
- Las etiquetas de envío ahora utilizan la divisa base como se espera en lugar de la divisa de pedido en tiendas que admiten varias divisas cuando se realiza un pedido en una divisa no base. GitHub-31891
- La aplicación ahora muestra el subtotal de pedido correcto cuando un comprador vuelve a la página del carro de compras durante el cierre de compra después de salir de la página de envío múltiple. GitHub-31889
- La edición de la información de facturación durante la creación del pedido de administración ya no cambia la información de envío para los clientes con diferentes direcciones de envío y facturación predeterminadas. GitHub-31786
- La aplicación ya no desmarca la casilla de verificación Anexar comentarios cuando un comprador hace clic en Obtener métodos y tarifas de envío y selecciona un método de envío al crear un pedido desde el administrador. GitHub-30256
- Los compradores ahora pueden usar el botón Atrás del navegador para volver a la página Seleccionar método de envío mientras retiran un pedido con varias direcciones. Anteriormente, la aplicación mostraba una página Seleccionar método de envío dañada. GitHub-30268
- La cantidad de productos ahora permanece sin cambios según lo esperado después de que un comprador cambie la cantidad en la página Enviar a varias direcciones y haga clic en el botón Atrás del explorador. GitHub-31956
- Los cargos por método de envío de tarifa única ya no se convierten en cero cuando se aplica una regla de precio de carro de compras durante el cierre de compra. GitHub-21832
- La aplicación ya no genera un error cuando un comerciante intenta enviar un pedido mediante DHL cuando la casilla de verificación Crear etiqueta de envío está habilitada y el nombre del producto contiene caracteres Unicode. Anteriormente, la aplicación mostraba este error al solicitar la creación de etiquetas:
The response is in wrong format
. GitHub-31032
- Puede realizar correctamente un pedido del administrador en una implementación de varios sitios en la que
United States
está habilitado en un sitio web yDisable all countries
está habilitado como el ámbito predeterminado en el otro sitio web. Anteriormente, la aplicación no realizó el pedido y mostró este error:Please check the shipping address information. "regionId" is required. Enter and try again
. GitHub-30577
Ensayo
- La función Programar actualización de bloques ahora funciona según lo esperado en implementaciones que implementan Fastly. Anteriormente, la aplicación no actualizaba el contenido del bloque porque las etiquetas de caché de Fastly no se invalidaban y Fastly seguía ofreciendo contenido obsoleto.
- La previsualización de ensayo de la regla de precio del carro de compras ahora se carga en el sitio web adecuado cuando se asigna a varias vistas de tienda de sitios web. Anteriormente, la previsualización de ensayo de la regla de precios del carro de compras se cargaba en la vista de tienda predeterminada independientemente de los sitios web asignados.
- Los precios especiales de los productos en la vista de tienda no predeterminada ahora se establecen en el valor predeterminado como se espera después de que haya finalizado una actualización programada.
- Los comerciantes ahora pueden guardar correctamente un producto descargable con una muestra vinculada de la página de producto descargable después de crear una actualización de ensayo futura con una fecha de finalización. Anteriormente, la aplicación no guardó el producto y mostró este mensaje:
The downloadable sample isn't related to the product. Verify the link and try again
. GitHub-488
- La aplicación ya no ejecuta consultas de base de datos grandes que incluyen todos los ID de producto durante la vista previa de una actualización de programación de una categoría. En su lugar, el filtro de categoría se aplica a la colección de productos para crear una tabla temporal para las vistas previas de ensayo de la categoría. Anteriormente, la aplicación insertaba todos los productos en una tabla temporal para la vista previa de ensayo, lo que reducía el rendimiento.
- El módulo
Magento_SalesRuleStaging
ya no almacena en déclencheur los errores durante la actualización desde la versión 2.3.x.
- La aplicación ahora muestra las condiciones de regla de catálogo con los datos correctos cuando visualiza una actualización de programación. Anteriormente, si se veía una actualización de programación creada con condiciones, la aplicación no mostraba condiciones ni mostraba condiciones con datos incorrectos.
- La casilla de verificación Usar valor predeterminado para un producto permanece marcada después de que una actualización programada esté desmarcada antes de la actualización.
- Las reglas de precios de catálogo ahora se aplican según lo esperado a los productos con valores de atributo no definidos. Anteriormente, los descuentos creados mediante una regla de precios de catálogo no se aplicaban a productos con atributos no definidos. GitHub-461
- Las reglas de catálogo ahora funcionan como se espera en implementaciones de varios sitios web con tiendas en diferentes zonas horarias. Anteriormente, la aplicación aplicaba o desactivaba reglas de catálogo en todos los sitios web al mismo tiempo.
- Los precios de nivel ya no se eliminan cuando se crea una actualización de programación para un sitio web específico.
- Ahora puede guardar un producto desde la página Producto descargable después de crear una actualización de ensayo futura con una fecha de finalización. Anteriormente, la aplicación no guardó el producto y mostró este mensaje:
The downloadable link isn't related to the product. Verify the link and try again
. GitHub-474
Almacenar
- La aplicación ya no trata una cadena de
0
como un valor vacío al mostrar una página principal de la tienda. Anteriormente, la aplicación trataba un valor entero al principio de una ruta de solicitud como un ID de almacén, lo que tenía efectos no deseados en la SEO.
- Los complementos para
\Magento\Framework\App\ActionInterface
enlib/internal/Magento/Framework/App/Action/Plugin
se han quitado para seguir la guía de que los complementos se deben usar para personalizar el comportamiento de un módulo desde otro módulo. GitHub-28050
- La aplicación ahora muestra este mensaje cuando intenta seleccionar
Website
como predeterminado cuandoStore View
está deshabilitado durante la creación del sitio web:Please enable your Store View before using this Web Site as Default
. Anteriormente, el sitio web se bloqueaba y la aplicación no mostraba una alerta.
Impuestos
- La aplicación ahora tiene en cuenta los impuestos ocultos durante la validación del importe mínimo del pedido.
- La aplicación ahora muestra Impuestos fijos sobre productos (FPT), tal como se espera cuando un comprador regresa a su carro de compras y continúa con el cierre de compra después de agregar productos agrupados al carro de compras. GitHub-30250
- La aplicación ahora rellena previamente los campos de entrada Número de IVA para las direcciones de facturación y envío de la sección Información de dirección de la página de nuevo pedido del administrador con números de IVA guardados cuando un administrador crea un pedido para un cliente existente. GitHub-31846
- La aplicación ahora muestra el campo Número de IVA en la página de registro del cliente cuando
customer/create_account/vat_frontend_visibility
está habilitado. GitHub-31326
Prueba
- Los entornos de prueba se han actualizado a Redis 6.0.12.
- Se eliminó
CacheCleaner::cleanAll();
de las pruebas de integración. GitHub-31074
- Se ha añadido una prueba para este escenario: Los usuarios administradores pueden editar una cuenta de cliente cuando el cliente está suscrito a un boletín informativo en cola. GitHub-30645
- Se eliminó el comando
cache:flush
de las pruebas para mejorar el tiempo de ejecución de los módulosCatalog
,CatalogUrlRewrite
yLoginAsCustomer
. GitHub-31056
- Se eliminaron los parámetros redundantes y se cambió el POST a la GET donde era necesario en
\Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShipping
.
Tema
- La página de inicio de sesión del cliente ya no muestra este mensaje cuando la configuración de Mover código JS al final de la página (Almacenar > Configuraciones > Avance > Desarrollador > Configuración de JavaScript) y las cookies están habilitadas:
The store will not work correctly in the case when cookies are disabled
.
- Los vínculos de cuenta en los encabezados ahora siguen los estándares WCAG. Anteriormente, los vínculos de cuenta en los encabezados contenían ID duplicados, lo que provocaba que fallara la validación de WCAG.
- La aplicación ahora prioriza la configuración de la tienda para una imagen de logotipo de tienda sobre la configuración del diseño. Anteriormente, el tamaño de las imágenes de logotipo era fijo y no variaba según el almacén.
- La aplicación ahora muestra los elementos de página de forma coherente en las páginas de tienda que utilizan temáticas estándar de Adobe Commerce. Anteriormente, no todos los estilos se aplicaban en la temática en blanco, por lo que no todos los elementos de página se mostraban en las páginas que utilizaban esta temática. (Por ejemplo, no había ningún icono de lupa en el campo de búsqueda de la página Mis pedidos).
Traducción y configuraciones regionales
- Los corchetes que se agregan a las cadenas ya no se escapan cuando se configura la traducción en línea. Anteriormente, el método
escapeHtmlAttr
convertía los corchetes en códigos de entidad de HTML. GitHub-32000
- Las frases que no se pueden traducir en el administrador ahora se pueden traducir. (Esta solicitud de extracción contribuye a los esfuerzos continuos para que todas las cadenas de administrador sean localizables). GitHub-11175
- Ahora se pueden traducir las cadenas de texto de la plantilla que se usan para administrar los métodos de pago almacenados (Mi cuenta > Métodos de pago almacenados ). GitHub-31211
- Solicite los correos electrónicos enviados desde el administrador ahora usan la configuración regional del almacén, no la configuración regional asociada a la cuenta del administrador. GitHub-26521
IU
- El pie de página del administrador ahora muestra la versión del producto correcta.
- La paginación para orígenes está ahora presente como se espera durante la creación del envío de administración.
- El filtro de cuadrícula de producto ahora funciona correctamente cuando utiliza atributos de fecha personalizados para filtrar productos y la configuración regional del usuario administrador es
en_GB
.
- Los gestos de pellizco y zoom ahora funcionan según lo esperado en la lupa de la galería de imágenes de la página de productos en dispositivos iOS.
- La paginación de los resultados de búsqueda de la cuadrícula de productos de administración ahora comienza en la página uno para cada búsqueda según lo esperado.
- Se han resuelto las anomalías con la visualización del carro de compras al ampliar o reducir. Anteriormente, los elementos de visualización se superponían al ampliar esta página.
- Se han resuelto los problemas de alineación con las fichas de la página de invitaciones de administración (Administración Marketing > Ventas privadas > Invitaciones). Anteriormente, la visualización de pestañas para invitaciones aceptadas por un cliente estaba desalineada. GitHub-333
- La página de revisión de pedidos que se muestra durante el cierre de compra con PayPal Express Checkout ahora se carga correctamente. Anteriormente, la plantilla contenía el botón Actualizar método de entrega que no se usaba y que el script solo ocultaba parcialmente durante la representación de la página. GitHub-32006
- Las estrellas de clasificación y el texto de revisión de la sección de revisiones del cliente de la página del producto ahora se separan correctamente cuando hay nombres de clasificación largos. GitHub-31890
- Las opciones ahora se muestran según lo esperado en la lista desplegable Acciones de las páginas Archivar Facturas, Envíos y Notas de Abono.
- La aplicación ahora muestra un valor de tiempo correcto cuando la opción
datetime
componentetimeOnly
está establecida en yes. GitHub-23157
- Ahora puede quitar una actualización de diseño después de crear un widget nuevo en Administración Contenido > Widgets. GitHub-29936
- El botón Eliminar actualización de diseño ahora funciona como se espera en cualquier diseño que haya agregado desde Administración Contenido > Widgets. Anteriormente, este botón no funcionaba en ningún diseño distinto del primero seleccionado al agregar varios diseños. GitHub-30286
- La aplicación utiliza ahora el título de página definido en el archivo de diseño como título de la página del explorador para el archivo de edición de cuentas de cliente. Anteriormente, la acción del controlador
Magento\Customer\Controller\Account\Edit
aplicaba el valor del título de página aAccount Information
. GitHub-30724
-
Se han añadido a estas páginas las casillas de verificación que permiten a los comerciantes alternar entre mostrar y ocultar contraseñas:
- Inicio de sesión del cliente
- Registro de cliente
- Edición de clientes (sección Cambio de contraseña)
- El cliente estableció la nueva contraseña GitHub-31557
- Se ha eliminado un encabezado redundante en las celdas de la cuadrícula que aparecía cuando un administrador añadía un producto a un conjunto de productos agrupado después de cambiar el conjunto de atributos. GitHub-30911
- La aplicación ahora muestra un filtro
DateRange
en el área de Inicio de sesión de la página Cliente > Inicio de sesión. Anteriormente, la aplicación mostraba un filtroText
. GitHub-30328
- JavaScript se ha eliminado de los archivos de plantilla y se ha movido a archivos independientes para reducir los problemas de procesamiento en las páginas de administración. Anteriormente, las páginas de administración no se representaban correctamente en implementaciones en las que se había habilitado la minificación de HTML. La aplicación mostró este error:
An error has happened during application run. See exception log for details
. GitHub-32454
- El widget
dropdownDialog
ahora carga solamente los fragmentosjquery-ui
arrastrables y redimensionables que necesita. Anteriormente, cargaba grandes cantidades de código innecesario, lo que inflaba el tiempo de carga y reducía el rendimiento. GitHub-32810
Reescrituras de URL
- Las reescrituras de URL de productos para un sitio web específico en una implementación de varios sitios ahora se generan tal como se espera después de que los productos se asignen a un sitio web mediante una actualización masiva.
- La aplicación ahora genera correctamente la ruta de URL para las categorías secundarias cuando la casilla de verificación Usar valor predeterminado para la clave URL está habilitada para la categoría principal. Anteriormente, al mover una categoría en la jerarquía, se producía un valor
url_path
incorrecto al usar claves de URL diferentes en una implementación de vista de varias tiendas. GitHub-16202
- La aplicación ahora actualiza
url_path
de la categoría asignada a todo el ámbito de almacén cuando se mueve una categoría en la jerarquía de categorías. Anteriormente, al mover una categoría en la jerarquía, se producía un(a)url_path
incorrecto.
- Las redirecciones de URL creadas desde el administrador mediante una URL personalizada ahora funcionan correctamente. Anteriormente, GraphQL almacenaba en caché la respuesta de una consulta de GraphQL
urlResolver
y devolvía el valor antiguo después de actualizar la reescritura de la URL.
- Las reescrituras de URL del producto ahora se eliminan según lo esperado cuando se elimina un producto de un sitio web. GitHub-24184
- Se agregó una referencia
main_table
astore_id
en la funciónaddStoreFilter
de la colecciónapp/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php
. Anteriormente, se producían problemas cada vez que se agregaba un(a)join
a la colección en una tabla que también contiene una columnastore_id
. GitHub-31853
- El extremo REST
PUT /V1/products/:sku
ahora vuelve a generar las reescrituras de URL del producto según lo esperado. Anteriormente, el extremo generaba de nuevo los valores de productourl_key
, pero no reescribía las direcciones URL. GitHub-30316
Usuario
- Ahora puede guardar una nueva función de usuario efectiva (Administrador Sistema > Permisos > Funciones de usuario) con todo el árbol
Catalog
seleccionado excluyendoEdit Product Design
(Catálogo > Inventario > Productos > Editar diseño de producto). Anteriormente, la aplicación no guardó los cambios de producto realizados por un usuario con esta función y mostraba este error:Not allowed to edit the product's design attributes
. GitHub-31973
- La aplicación ahora utiliza la plantilla de correo electrónico personalizada correcta al generar correos electrónicos para nuevos administradores. Anteriormente, la aplicación utilizaba la plantilla predeterminada antigua, que omitía el nombre y los apellidos del administrador.
- La aplicación ahora utiliza la plantilla de correo electrónico correcta al enviar correos electrónicos a los nuevos usuarios. Anteriormente, la aplicación utilizaba la plantilla predeterminada incluso cuando se seleccionaba una plantilla personalizada.
VersionCMS
- La aplicación ahora aplica la temática correcta a una página de CMS después de cambiar su diseño. Anteriormente, la aplicación cambiaba el tema asignado a Luma después de guardar los cambios de diseño, independientemente del tema asignado a la página.
- Los administradores con funciones restringidas ahora pueden agregar, actualizar o duplicar correctamente las páginas a las que tiene acceso y que están asignadas a un nodo de jerarquía. Anteriormente, la aplicación arrojaba un error grave en estas condiciones.
Vídeo
- Los vídeos ya están disponibles en la galería de productos como se espera cuando se habilita y utiliza el agrupamiento avanzado de JavaScript. GitHub-32501
- Los vídeos de YouTube para productos simples que pertenecen a un producto configurable ahora funcionan según lo esperado. Anteriormente, las imágenes se ordenaban por ID en lugar de por posición. En consecuencia, algunos videos fueron tratados como imágenes. GitHub-29690
Visual Merchandiser
- Se ha mejorado el rendimiento de las cargas de páginas de categorías de administración con Visual Merchandiser. La carga de páginas de categoría Administrador ya no genera consultas de base de datos de gran tamaño.
Marco de API web
- La API de catálogo ahora actualiza correctamente los valores de opciones personalizadas de un producto añadiendo nuevos valores y eliminando valores antiguos. Anteriormente, la API no eliminaba los valores antiguos.
- El POST
/V1/guest-carts/:cartId/billing-address
ahora devuelve el identificador de dirección como un número entero, no como una cadena.
Restricción de sitio web
- Ahora se redirige a los compradores a la página a la que intentaban acceder antes de que se les pidiera que iniciaran sesión. Anteriormente, en implementaciones en las que las restricciones de sitios web estaban habilitadas y el modo de restricción estaba establecido en Ventas privadas: Iniciar sesión solo, se redirigía a los compradores a la página principal de la tienda.
Widget
- Un administrador ahora puede eliminar todas las actualizaciones de diseño de un widget. Anteriormente, cuando un widget tenía varias actualizaciones de diseño, un administrador solo podía eliminar la primera.
- Al hacer clic en el botón Agregar al carro en el widget del producto, ya no se volverá a cargar la página. Anteriormente, al hacer clic en el botón Agregar al carro de un widget de productos, se volvía a cargar una página actual antes de que se agregara el producto al carro de compras.
- El widget de vínculo de nodo de jerarquía CMS en TinyMCE ahora procesa los vínculos de jerarquía como se espera cuando el campo Anclar texto personalizado está vacío.
Lista de deseos
- La aplicación ya no restablece los ajustes de configuración de un producto configurable cuando hace clic en el botón Editar elemento para el producto de una lista de artículos deseados. GitHub-32119
- La aplicación ahora muestra el precio de producto correcto cuando actualiza un producto con una opción de archivo personalizable en la lista de deseos. Anteriormente, la aplicación mostraba el precio de producto incorrecto y no mostraba un vínculo al archivo cargado.
- El recuento total de productos en una lista de artículos deseados para un cliente con varias listas de artículos deseados ahora coincide con el número de artículos en la lista de artículos deseados. Anteriormente, el recuento total de productos incluía productos sin existencias.
- La aplicación ahora elimina un producto de una lista de artículos deseados después de añadirlo a un pedido. GitHub-30260
- Los compradores ahora pueden añadir productos relacionados a su carro de compras desde una lista de deseos. Anteriormente, la aplicación solo agregaba el producto configurable, no el producto configurable y sus productos relacionados, cuando un comprador hacía clic en el vínculo Seleccionar todo de la sección Productos relacionados. GitHub-32274
Problemas conocidos
Problema: Error de JavaScript cuando reCAPTCHA está deshabilitado. Si reCAPTCHA está deshabilitado para la desprotección, esta continúa, pero la aplicación muestra un error Uncaught TypeError
en el registro de la consola. Este problema se solucionará en una versión posterior.
Problema: Error de la directiva de seguridad de contenido. La tienda muestra el siguiente error en el registro de la consola: The Content-Security-Policy directive frame-ancestors does not support the source expression unsafe-inline
. El rendimiento de la tienda no se ve afectado.
Problema: Anomalías en la visualización de los importes de las tarjetas de regalo con crédito PayPal. Cuando se activa el crédito de PayPal y se configuran varios importes de tarjetas regalo, si un comprador cambia el importe por el valor de una tarjeta regalo, la tienda no actualiza el importe para los pagos a plazos. Se incluirá una corrección para este problema en Adobe Commerce 2.4.4 y en el Magento Open Source 2.4.4.
Problema: El botón Agregar al pedido no funciona para los productos agregados al carro de compras por SKU. la aplicación muestra este mensaje de error cuando hace clic en el botón Agregar al pedido después de agregar productos al pedido por SKU: An error has happened during application run
. Los productos no se añaden al carro de compras. Solución alternativa: use la característica Agregar productos.
Problema: las consultas de GraphQL category
y categoryList
omiten los permisos de categoría que determinan si las categorías de un catálogo compartido están ocultas o expuestas. En este momento, la tienda muestra todas las categorías que se han asignado o dejado de asignar al catálogo compartido. Esto afecta a las implementaciones de Adobe Commerce 2.4.3 que implementan una tienda de PWA para la que se han habilitado los catálogos compartidos B2B.
Contribuciones comunitarias
Agradecemos a la comunidad Magento Open Source en general y quisiéramos agradecer sus aportaciones a esta versión.
El equipo de ingeniería de la comunidad Colaboradores Magento mantiene una lista de las principales personas y socios que aportan contribuciones por mes, trimestre y año. Desde esa página de colaboradores, puede seguir los vínculos a sus PR fusionadas en GitHub.
Contribuciones de socios
En el cuadro siguiente se destacan las contribuciones de los asociados. Esta tabla enumera el socio que contribuyó con la solicitud de extracción, la solicitud de extracción externa y el número de problema de GitHub asociado a ella (si está disponible).
Contribuciones de colaborador individual
La siguiente tabla identifica las contribuciones de los miembros de nuestra comunidad. En esta tabla se enumeran las solicitudes de extracción externas, el número de problema de GitHub asociado a ellas (si está disponible) y el miembro de la comunidad que contribuyó con la solicitud de extracción.
Requisitos del sistema
Nuestra pila de tecnología está construida sobre PHP y MySQL. Para obtener más información, consulte Requisitos del sistema.
Instrucciones de instalación y actualización
Puede instalar Adobe Commerce 2.4.3 con Composer.
Kits de herramientas de migración
La herramienta de migración de datos ayuda a transferir los datos del almacén de Magento 1.x existente al Magento 2.x. Esta interfaz de línea de comandos incluye funciones de verificación, seguimiento de progreso, registro y prueba. Para obtener instrucciones de instalación, consulte Instalar la herramienta de migración de datos. Considere la posibilidad de explorar o contribuir al repositorio de migración de datos.
El Kit de herramientas de migración de código ayuda a transferir las personalizaciones y extensiones de almacén de Magento 1.x existentes a Magento 2.x. La interfaz de línea de comandos incluye secuencias de comandos para convertir módulos y diseños de Magento 1.x.