Notas de la versión de Adobe Commerce 2.4.2

Adobe Commerce 2.4.2 incorpora mejoras en el rendimiento y la seguridad, además de mejoras significativas en la plataforma. Las mejoras de seguridad incluyen la ampliación de la compatibilidad con SameSite para todas las cookies. Las mejoras de B2B se centran en la compatibilidad con los pagos en línea para pedidos de compra. Ahora se admiten Elasticsearch 7.9.x y Redis 6.x.

Esta versión incluye más de 280 nuevas correcciones del código principal y 35 mejoras de seguridad. Incluye la resolución de casi 290 problemas de GitHub por parte de los miembros de nuestra comunidad. Estas contribuciones de la comunidad van desde una limpieza menor del código principal hasta mejoras significativas en GraphQL.

Todos los problemas conocidos identificados en 2.4.1 se han corregido en esta versión.

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

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 la Aplicar un parche para seguir ofreciendo DHL como transportista Artículo de Knowledge Base para obtener información sobre cómo descargar e instalar el parche.

Parche de seguridad disponible

Los comerciantes ahora pueden instalar correcciones de seguridad urgentes sin aplicar los cientos de correcciones y mejoras funcionales que ofrece una versión trimestral completa (por ejemplo, 2.4.1-p1). El parche 2.4.0.12 (Composer package 2.4.1-p1) es un parche de seguridad que proporciona correcciones para vulnerabilidades que se han identificado en nuestra versión trimestral anterior, 2.4.1. Todas las correcciones rápidas aplicadas a la versión 2.4.1 se incluyen en este parche de seguridad. (A) corrección rápida proporciona una corrección de una versión publicada que soluciona un problema o error específico).

Para obtener información general sobre los parches de seguridad, consulte Presentación de la nueva versión del parche de seguridad. Para obtener instrucciones sobre cómo descargar y aplicar parches de seguridad (incluido el parche 2.4.1-p1), consulte Instalación local de inicio rápido. Los parches de seguridad solo incluyen correcciones de errores de seguridad, no las mejoras de seguridad adicionales que se incluyen en el parche completo.

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.

Características destacadas

Busque los siguientes aspectos destacados en esta versión.

Mejoras sustanciales de seguridad

Esta versión incluye más de 35 correcciones de seguridad y mejoras de seguridad de la plataforma. Todas las correcciones de seguridad se han adaptado a 2.4.1-p1 y 2.3.6-p1.

Más de 35 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, incluidas, entre otras, las siguientes medidas: inclusión en la lista de permitidos de IP, autenticación de doble factor, el uso de una VPN, el uso de una ubicación única en lugar de /adminy una buena higiene de las contraseñas. Consulte Boletín de seguridad del Adobe para una discusión de estos problemas fijos.

Mejoras de seguridad adicionales

Las mejoras de seguridad para esta versión incluyen:

  • Todas las cookies principales ahora admiten el SameSite atributo.

  • La aplicación ahora muestra mensajes que identifican contenido potencialmente malicioso en los campos de descripción de productos y categorías cuando el usuario intenta guardar valores en estos campos.

  • Las operaciones del sistema de archivos en todos los componentes se han estandarizado y reforzado para evitar cargas malintencionadas.

  • Se han corregido las infracciones de la Política de seguridad de contenido principal (CSP).

NOTE
A partir de la versión 2.3.2 de, asignaremos y publicaremos números de Vulnerabilidades comunes y exposiciones (CVE) indexados con cada error de seguridad que nos comuniquen partes externas. Esto permite a los usuarios identificar con mayor facilidad las vulnerabilidades sin solucionar en su implementación. Puede obtener más información sobre los identificadores CVE en CVE.

Mejoras de infraestructura

Esta versión contiene mejoras en la calidad principal, que mejoran la calidad del marco de trabajo y estas áreas funcionales: Cuenta de cliente, Catálogo, CMS, OMS, Importación/Exportación, Promociones y direccionamiento, Carro y cierre de compra, B2B y Ensayo y vista previa.

Mejoras de Platform

  • Ahora se admite el Elasticsearch 7.9.x. Aunque se recomienda ejecutar el Elasticsearch 7.9.x, la versión 2.4.x sigue siendo compatible con el Elasticsearch 7.4.x.

  • 2.4.2 se ha ensayado con Barniz 6.4. La versión 2.4.x sigue siendo compatible con Varnish 6.x.

  • Ahora se admite Redis 6.x. La versión 2.4.x sigue siendo compatible con Redis 5.x.

  • 2.4.2 ahora es compatible con Composer 2.x. Recomendamos a los comerciantes migrar a Composer 2.x. Aunque puede instalar esta versión con Composer 1.x, Composer 1.x llegará pronto al final de su vida útil. Para obtener una descripción general de las funciones de Composer 2.x, consulte ¡Composer 2.0 ya está disponible!

La capacidad de configurar una instalación para utilizar una base de datos dividida ha quedado obsoleta en esta versión. Los comerciantes que actualmente utilizan bases de datos divididas deben empezar a planificar la reversión a una sola base de datos o la migración a ella, o utilizar un método alternativo. Consulte la Obsolescencia de la funcionalidad de la base de datos dividida en Adobe Commerce Publicación de DevBlog para obtener una descripción general de este problema. Consulte Revertir de una base de datos dividida a una única base de datos para obtener instrucciones de migración.

Mejoras de rendimiento

Esta versión incluye mejoras de código que mejoran el rendimiento de la API y el tiempo de respuesta del administrador para implementaciones con catálogos grandes. Varias mejoras en la escalabilidad permiten que 2.4.2 admita de forma nativa catálogos complejos hasta 20 veces más grandes que en versiones anteriores.

GraphQL

Esta versión añade cobertura de GraphQL para las siguientes funciones:

  • Se ha agregado compatibilidad con varias listas de deseos. Puede utilizar GraphQL para lo siguiente crear, eliminar, y renombrar listas de deseos y mover o copia elementos entre ellos.

  • Compatibilidad añadida para las autorizaciones de comercialización devueltas (RMA). Los compradores pueden solicitar una devolución. Si el comerciante acepta la solicitud, el comprador puede realizar tareas como las siguientes agregar un comentario y añadir información de seguimiento.

  • Se ha añadido compatibilidad con las siguientes funciones B2B:

  • Se ha añadido apoyo a los sindicatos en GraphQL. GitHub-29425

  • Se ha añadido la compatibilidad con listas de comparación. Los compradores pueden crear y eliminar listas de comparación, y añadir y quitar elementos a las listas de comparación. Además, los compradores que crean una lista de comparación como invitados pueden iniciar sesión como clientes y conservar sus listas de comparación.

  • Se ha añadido la generateCustomerTokenAsAdmin mutación y se ha actualizado el Customer objeto para admitir la asistencia de compra remota.

  • Se ha agregado compatibilidad con la localización en todas las tiendas para admitir tareas como cambiar idiomas, carros de compras y monedas.

  • El esquema de GraphQL se ha mejorado para optimizar la recuperación de datos de productos para productos configurables con muchas variantes.

  • Los ID de objeto de tipo entero se han quedado obsoletos en favor de uid atributos de tipo ID.

  • Se ha añadido la staging atribuir a ProductInterface y CategoryInterface para determinar si un producto está ensayado y ver su información de campaña asociada.

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

B2B

2.4.2 presenta B2B v1.3.1. Esta versión incluye compatibilidad con pagos en línea para pedidos de compra, así como varias correcciones de errores.

Los pedidos de compra ahora se pueden completar usando métodos de pago en línea. Los compradores de B2B deben seleccionar su forma de pago preferida para cada uno pedido de compra durante el cierre de compra inicial. Una vez aprobado el pedido de compra, se pide a los compradores que introduzcan los detalles de pago para convertir el pedido de compra en un pedido final.

Para admitir un flujo de trabajo completo para la aceptación de pagos en línea, esta función también:

  • Anula las plantillas de método de pago existentes durante el cierre de compra inicial para mantener el cumplimiento de PCI.

  • Mantiene la compatibilidad con métodos de pago de terceros, personalizados y desarrollados por la comunidad.

  • Notifica a los compradores por correo electrónico cuando necesitan añadir detalles de pago a un pedido de compra aprobado.

  • Permite la personalización de los correos electrónicos del administrador, lo que permite a los comerciantes utilizar plantillas coherentes con su marca.

  • Presenta un Approved – Pending Payment estado de los pedidos de compra para mostrar claramente cuándo se requiere una acción.

  • Evita que se agreguen o eliminen códigos de descuento en el paso de pago final, lo que garantiza que el importe total del pedido permanezca sin cambios en los pedidos de compra aprobados.

  • Permite a los compradores cambiar la forma de pago durante el paso final del pago para mantener la flexibilidad y aumentar la conversión.

Esta versión también incluye varias correcciones de errores. Consulte Notas de la versión B2B.

PWA Studio

Esta versión de PWA Studio incluye:

  • Internacionalización y localización. Venia ahora es compatible con varios idiomas y monedas.

  • Se ha mejorado el marco de trabajo de extensibilidad para admitir cambios en el código mediante extensiones.

  • Componentes iniciales para funciones relacionadas con Mi cuenta, como Lista de deseos, Pagos guardados, Libreta de direcciones e Historial de pedidos.

  • Varias optimizaciones de rendimiento y correcciones de errores.

Para obtener información sobre mejoras y correcciones de errores, consulte Versiones del PWA Studio. Consulte compatibilidad para obtener una lista de versiones de PWA Studio y sus versiones compatibles.

Page Builder

Esta versión incluye mejoras en la migración de contenido de Page Builder y en la personalización de CSS de Page Builder:

  • Ahora los desarrolladores pueden aplicar un estilo diferente a la salida de tipo de contenido por ventanilla sin utilizar el !important Directiva.

  • El contenido migrado a Page Builder ya no se rellena con el estilo en línea predeterminado.

  • Page Builder ya no requiere que todos los tipos de contenido se coloquen dentro de una fila. El Fase de Page Builder ahora está inicialmente en blanco y admite la adición de los siguientes tipos de contenido directamente al escenario: Filas, Columnas, Pestañas, Código de HTML, Bloques, Bloques dinámicos.

  • Los márgenes y rellenos predefinidos ya no son necesarios para los tipos de contenido.

  • El nuevo móvil conmutador de ventanilla El ámbito de los campos de formulario y ventanilla móvil permite a los usuarios y desarrolladores realizar las siguientes acciones:

    • Ver contenido en diferentes puertos de vista al crear.

    • Optimizar parámetro de campo de altura mínima en diferentes tipos de contenido para cada ventanilla. (Solo se admite un parámetro (altura mínima) de forma predeterminada. Desarrollo personalizado necesario para habilitar la optimización móvil para otros parámetros de contenido).

    • Agregar el ámbito del campo a los campos personalizados y a los conjuntos de campos (desarrolladores).

Guía interactiva en el producto

La Guía interactiva en el producto proporciona a los comerciantes consejos de uso e información desde el administrador sobre anuncios de nuevas funciones, guías de introducción, información de incorporación y consejos sobre herramientas. Los administradores deben optar por no participar en el administrador para recibir orientación interna del producto si esta función no está habilitada. Consulte Recopilación de datos de uso y Uso de administrador.

Integración de Adobe Stock

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

Galería de medios

Nuevos recursos de roles para la galería de medios. Esta versión proporciona a los comerciantes la capacidad de limitar el acceso de administrador solo a la galería de medios y de controlar quién puede realizar estas acciones:

  • Insertar recursos de medios en el contenido

  • Cargar recursos

  • Editar detalles de recursos

  • Eliminar recursos de la Galería multimedia

  • Administrar estructura de carpetas.

Imágenes optimizadas para la web en el contenido. Los comerciantes ahora pueden utilizar representación de imágenes optimizadas para la web en el contenido en lugar de imágenes de alta resolución. La imagen original permanece sin modificar en la Galería multimedia y la representación de la imagen se genera dinámicamente cuando la imagen se inserta en el contenido.

Mejoras de compatibilidad con AWS S3

Se ha mejorado la compatibilidad con Amazon Simple Storage Service (AWS S3) para incluir compatibilidad con:

Se ha añadido compatibilidad con AWS S3 a todos los módulos, incluidos B2B, PageBuilder e Integración con Adobe Stock.

Marco de prueba funcional (MFTF)

MFTF 3.2.1 ya está disponible. Esta versión introduce tolerancia a errores tanto en las pruebas como en la generación de grupos de pruebas. Se describen mejoras adicionales y correcciones de errores en la Registro de cambios del marco de prueba funcional.

Sistema de Gestión de Pedidos (OMS)

El conector MCOM es totalmente compatible con 2.4.2. Las correcciones de errores y mejoras realizadas en el conector se describen en Notas de la versión de Connector. Esta versión incluye mejoras en la interfaz de línea de comandos de OMS, que ahora proporciona información detallada que los socios y los equipos de soporte pueden utilizar para solucionar problemas retry, queue_prune, order_sync, message process, y catalog export procesos.

Extensiones desarrolladas por el proveedor

Consulte los siguientes artículos para obtener actualizaciones sobre las funciones y los cambios de esta versión:

Problemas solucionados

Hemos corregido cientos de problemas en el código principal 2.4.2.

Instalación, actualización e implementación

  • Los comerciantes ahora pueden actualizar correctamente una implementación de código abierto que ejecuta MySQL 8.x a una implementación de comercio. Anteriormente, la aplicación arrojaba una excepción cuando AUTO_INCREMENT valores revertidos a valores iniciales para todas las tablas donde row_id se agregó durante la actualización.
  • La aplicación ahora muestra un mensaje de error que identifica la ruta que se utilizó para crear el parche si se produce un error al ejecutar bin/magento/setup:db:generate-patch. GitHub-27523
  • block_html, full_page, y layout las cachés ahora están desactivadas como se espera después de bin/magento/setup:upgrade ejecución. GitHub-28186
  • La versión mínima requerida de PHP en bootstrap.php se ha actualizado. GitHub-30004
  • Ahora puede ejecutar bin/magento/setup:upgrade después de instalar los datos de ejemplo. Anteriormente, cuando intentaba ejecutar bin/magento/setup:upgrade, la aplicación mostraba este error: unable to apply data patch magento\catalogrulesampledata\setup\patch\data\installcatalogrulesampledata for module magento_catalogrulesampledata. La aplicación también mostraba este error en el registro del sistema: main.ERROR: Sample Data error: Unable to unserialize value. Error: Syntax error. GitHub-30685
  • Ahora puede establecer una clave de API de YouTube desde la línea de comandos según lo esperado. Anteriormente, la aplicación devolvía este error al intentar ejecutar bin/magento config:sensitive:set catalog/product_video/youtube_api_key: There are no sensitive configurations to fill.
  • La aplicación ahora respeta el maxMessages valores definidos en queue_consumer.xml. Anteriormente, la aplicación solo utilizaba los valores de configuración de implementación. GitHub-29522
  • La generación de URL para un nuevo almacén ahora funciona como se espera cuando se crea el almacén con bin/magento setup:config:import. Anteriormente, las reescrituras de URL no se generaban en entornos de producción. GitHub-30025
  • La aplicación ya no muestra esta pregunta cuando se ejecuta bin/magento setup:install para conectarse a una base de datos existente: Overwrite the existing configuration for db-ssl-verify?[Y/n]. GitHub-29612

AdminGWS

  • El Agregar nueva clasificación y el botón Guardar, Eliminar, Restablecer ya no están disponibles en la Tiendas > Atributo > Clasificación para un administrador con permisos restringidos.
  • El administrador ahora solo muestra datos de sitios web para los que el administrador de la sesión tiene permisos. Anteriormente, el administrador mostraba datos de todos los sitios web de la implementación.
  • Todos los sitios web seleccionados ahora se almacenan en gws_websites independientemente del tamaño del ID del sitio web. Anteriormente, los ID de sitio web se truncaban y la lista de sitios web seleccionados no se almacenaba en la base de datos. Las funciones de usuario no se guardaban correctamente y la aplicación mostraba este error cuando un comerciante intentaba cambiar y guardar una función: The "X" store ID is incorrect. Verify the store ID and try again.
  • La aplicación ahora muestra el recuento de elementos correcto en las cuadrículas de administración para los usuarios administradores restringidos. Anteriormente, los recuentos mostrados para estas cuadrículas reflejaban datos de todos los países, mientras que las cuadrículas mostraban datos de países específicos únicamente. (Esta corrección corrige un problema con los segmentos de clientes, las reglas de precios de catálogo, las reglas de precios del carro de compras, todos los usuarios, los usuarios bloqueados y las cuadrículas de funciones de usuario).
  • Administradores cuyos permisos excluyen Magento_Catalog::edit_product_design (Editar diseño de producto) Ahora puede crear un nuevo producto guardando un producto existente con un nombre nuevo en la vista de tienda seleccionada. Anteriormente, la aplicación mostraba este error: Not allowed to edit the product's design attributes. GitHub-28106
  • La aplicación ya no muestra el Añadir atributo en las páginas debajo de Tiendas > Atributos cuando un administrador no tiene los permisos adecuados para crear estas entidades. Anteriormente, la aplicación arrojaba un error 404 cuando un administrador del sitio web que no tenía los permisos adecuados intentaba crear una Conjunto de atributos o Cliente atributo.
  • La aplicación ya no genera un error cuando intenta cambiar backend-frontname uso del ssh después de instalar Adobe Commerce. GitHub-26762

Integración de Adobe Stock

  • Se ha agregado compatibilidad para leer exif_image.png o exif-image.jpeg metadatos. GitHub-1449
  • El contenido que se muestra al hacer clic en el marcador Vista predeterminada de la Galería multimedia ya no se filtra. Anteriormente, la vista predeterminada contenía un filtro que se aplicaba desde url-filter aplicador. GitHub-1813, GitHub-1789, GitHub-1780
  • Se ha eliminado la lógica del controlador WYSIWYG OnInsert (Magento\Cms\Controller\Adminhtml\Wysiwyg\Images\OnInsert::execute()) y se añade a Model\Wysiwyg\Images\PrepareImage::execute() modelo. GitHub-1504
  • La emulación de área se ha eliminado del media-content:sync comando (\Magento\MediaContentSynchronization\Console\Command\Synchronize::execute). GitHub-1784

Analytics

  • Ahora, los informes avanzados funcionan según lo esperado en varios entornos del mismo dominio. Anteriormente, los archivos CSV generados por los informes avanzados fallaban porque las comillas dobles se escapaban con barras invertidas en lugar de con otra comilla doble, como exige el estándar CSV RFC4180.
  • El analytics_collect_data El trabajo de se ejecuta ahora correctamente cuando se utiliza el puerto predeterminado o no predeterminado para conectarse a MySQL en env.php. Anteriormente, analytics_collect_data ha devuelto un error al usar el puerto no predeterminado.
  • Archivos CSV generados por analytics_collect_data ahora se han escapado correctamente. Anteriormente, estos archivos no se generaban con el escape correcto, lo que impedía la generación de informes de inventario.

Braintree

  • Los compradores ahora pueden usar Apple Pay para realizar correctamente un pedido de productos virtuales. Anteriormente, la aplicación arrojaba este error: There are no shipping methods available for you right now. Please try again or use an alternative payment method.

  • El método de pago predeterminado PayPal Express Checkout funciona ahora según lo esperado con el método de pago con tarjeta de crédito del Braintree. Anteriormente, la aplicación no mostraba el PayPal botón cuando el método de pago con tarjeta de crédito de Braintree estaba activado.

Paquete de productos

  • La aplicación ya no establece los precios de los artículos secundarios del paquete de precio fijo entre comillas.
  • La clasificación de precios ahora funciona como se espera cuando los productos agrupados incluyen productos sin existencias. Anteriormente, al ordenar el precio en orden descendente, no se mostraban los productos en orden descendente.
  • La aplicación ahora aplica automáticamente una cantidad predeterminada de 1 para las opciones de producto del paquete cuando existen muchas opciones. Anteriormente, los comerciantes tenían que asignar manualmente una cantidad predeterminada a cada opción.
  • La página de creación de facturas de pedido ahora muestra los productos secundarios de los productos agrupados según lo esperado. GitHub-27350
  • La aplicación ahora asigna precios de producto correctos cuando se reordenan productos simples que forman parte de un paquete de productos con un precio personalizado. Anteriormente, al establecer un precio personalizado en un producto agrupado, se producían precios incorrectos en los productos simples adjuntos cuando se reordenaban. GitHub-30343
  • POST de llamada /V1/order/{orderId}/ship para enviar un pedido que contiene un paquete de productos, ahora el pedido se marca como completado según lo esperado. Anteriormente, la aplicación mostraba este mensaje de error: You can't create a shipment without products. GitHub-9762

Carro y cierre de compra

  • El estimador del método de envío ahora funciona como se espera cuando los atributos de dirección personalizados están presentes en la etapa de envío del flujo de trabajo de cierre de compra. Anteriormente, la aplicación mostraba este mensaje de error: {"message":"Error occurred during \"custom_attributes\" processing. A custom attribute is specified with a missing attribute code. Verify the code and try again."} GitHub-27505
  • La aplicación ahora muestra el You have no items in your shopping cart Mensaje en el minicarrito como se espera cuando un comprador elimina el único artículo del carro de compras. Anteriormente, los datos del carro de compras no se actualizaban para checkout/cart/removeFailed cuando un comprador quitó el solo artículo y la aplicación mostró este mensaje: 1 product requires your attention.
  • La aplicación ya no muestra el coste de envío de un pedido para un método de envío no aplicable. Anteriormente, la aplicación mostraba un precio de 0 para un método de envío no aplicable en el flujo de trabajo de cierre de compra.
  • La dirección de facturación predeterminada de un cliente ahora está seleccionada cuando el Mi dirección de facturación y envío es la misma La casilla de verificación del flujo de trabajo de cierre de compra está desactivada.
  • Los administradores pueden añadir un producto a un carro de compras por SKU desde el administrador sin que se les redirija fuera del administrador. El administrador ya no se redirige a una página de tienda y la aplicación muestra el producto en la sección Administración de elementos del carro de compras según lo esperado.
  • La aplicación ahora muestra mensajes de error informativos al cargar un archivo CSV que contiene varios tipos de errores al añadir productos al carro de compras por SKU. Anteriormente, la aplicación mostraba una página en blanco y un mensaje de error genérico al hacer clic en Elegir archivo el Administrar carro de compras > Agregar al carro de compras por SKU.
  • El contenido del carro de compras ya no se pierde cuando un comprador cambia de una tienda a otra en un dominio diferente.
  • Los compradores ahora pueden completar correctamente un pedido utilizando Desproteger con varias direcciones cuando se utilizan varios métodos de envío. Anteriormente, la aplicación mostraba este error: There has been an error processing your request. GitHub-30197
  • La aplicación ahora muestra el país predeterminado correcto en la página de envío del flujo de trabajo de cierre de compra cuando el comprador cambia la vista de la tienda desde el carro de compras.
  • La aplicación ahora excluye la sesión actual al limpiar las sesiones de los clientes después de un restablecimiento de contraseña posterior al cierre de sesión cuando un comprador invitado inicia sesión. Anteriormente, la aplicación vaciaba el carro de compras cuando el comprador restablecía su contraseña.
  • La aplicación ahora muestra el país predeterminado correcto para una vista de tienda cuando un comprador cambia la vista de la tienda en el carro de compras. Anteriormente, cuando se cambiaba la vista de la tienda en el carro de compras, el país predeterminado era incorrecto.
  • La secuencia en la que se configuran los permisos del catálogo ya no impide que los administradores con los permisos correctos agreguen productos al carro de compras. Anteriormente, la aplicación no verificaba la variable addToCart opciones de configuración para el grupo de clientes actual. Como resultado, cuando un administrador intentaba agregar un producto al carro de compras, la aplicación arrojaba un error.
  • Llamadas redundantes a /rest/V1/guest-carts/cart_id/totals-information Se han eliminado los extremos del carro de compras, lo que ha mejorado el rendimiento del carro de compras. Anteriormente, cuando un comprador agregaba un producto al carro de compras y posteriormente lo veía, la aplicación llamaba a collectAddressTotals método varias veces.
  • La aplicación ya no muestra el Región para un país en el flujo de trabajo de cierre de compra cuando Permitir la selección del estado si es opcional para el país La configuración está deshabilitada. GitHub-30747
  • La aplicación ya no repite una dirección de envío en el flujo de trabajo de cierre de compra de la tienda cuando se vuelve a solicitar un pedido al administrador.
  • Se corrigieron problemas con el diseño de AdminMediaGalleryInsertLargeImageFileSizeTest.
  • Todos los registros nuevos de la quote ahora se asigna un valor de 1 a la tabla para invitados en el customer_is_guest field. Anteriormente, a cada nuevo invitado que agregaba un producto al carro de compras se le asignaba un 0 en elquote.customer_is_guest field.
  • El Enviar botón de la sección Revisión y pagos del flujo de trabajo de cierre de compra que se ha movido a dentro de <form id="purchaseorder-form"...></form>, que hace posible el envío implícito del formulario sin alterar ningún JavaScript. GitHub-27925
  • La aplicación ya no muestra el Región en el flujo de trabajo de cierre de compra cuando Permitir la selección del estado si es opcional para el país La configuración está deshabilitada. GitHub-30747
  • La aplicación ahora actualiza correctamente el subtotal de artículos del carro de compras cuando un comprador hace clic en Actualizar carro de compras mientras se desprotege con varias direcciones. GitHub-30408
  • La aplicación ya no genera una excepción cuando config.xml existen nodos para métodos de pago que no están instalados actualmente. Anteriormente, la aplicación arrojaba una excepción durante el cierre de compra. GitHub-29555
  • La aplicación ahora procesa correctamente en el minicarrito los nombres de productos que contienen caracteres especiales. GitHub-29075
  • La aplicación ahora establece el paquete de descuento correcto para la tarifa de tabla. Anteriormente, la aplicación no aplicaba una regla de carro de compras que estableciera un descuento en el carro de compras al calcular la tasa de tabla. GitHub-30169

Regla de precio del carro

  • Las reglas de precios del carro de compras ahora se aplican según lo esperado cuando se calculan los subtotales de pedidos sin incorporar impuestos. El nuevo Subtotal (Incl. Tax) se ha añadido como una condición de regla de precio de carro de compras.
  • La aplicación de una regla de precio con un cupón mediante GraphQL ahora funciona como se espera cuando la variable Descuento de cantidad fija para todo el carro se utiliza la acción.
  • La aplicación ahora muestra todos los productos reactivados en la tienda según lo esperado. Anteriormente, cuando un producto se deshabilitaba y luego se volvía a habilitar, la aplicación no mostraba el producto hasta que se borraba la caché de la página de Barniz o se volvía a indexar la tienda, porque la caché de la página no se invalidaba después de volver a habilitar un producto.
  • La reindexación parcial de catálogos grandes ahora funciona según lo esperado. Anteriormente, los productos desaparecían aleatoriamente de la página de categoría de tienda durante la reindexación con catalogsearch_fulltext indexador parcial.
  • Los compradores ahora pueden reordenar un pedido facturado de un producto con opciones personalizables según lo esperado. Anteriormente, la aplicación arrojaba este error cuando un comprador intentaba volver a comprar: {"0":"The product's required option(s) weren't entered. Make sure the options are entered and try again.
  • Ahora puede establecer correctamente la variable Diseño en la página Diseño de categoría para No hay actualizaciones de diseño. Anteriormente, la aplicación volvía a Categoría - Anchura completa cuando asignó el No hay actualizaciones de diseño valor.
  • Se han resuelto problemas con el orden de los productos en la tienda. Anteriormente, cuando la aplicación indexaba los precios de los productos, ocasionalmente establecía el min_price y max_price a 0 en el catalog_product_index_price , que afectaba al orden de los precios en la tienda.
  • La aplicación ahora actualiza correctamente los atributos etiquetados como Product Type. Anteriormente, debido a que product_type se reservó en el código, la aplicación mostraba este mensaje cuando intentaba actualizar un Product Type atributo: An attribute with the same code (product_type) already exists.
  • La aplicación ya no cambia la posición de un vídeo cargado en la sección Imágenes y vídeos de la página de detalles del producto al guardar el producto. Anteriormente, a la nueva posición de la imagen se le asignaba un valor de índice (posición en la lista) y, si las posiciones de imagen existentes no estaban alineadas con sus valores de índice, la nueva imagen se colocaba de forma incorrecta en la lista.
  • El Añadir al carro ahora funciona según lo esperado siempre que la función Añadir al carro está disponible para hacer clic en. Anteriormente, si hacía clic en este botón varias veces mientras esperaba a que se cargara una página de producto, la aplicación arrojaba este error: Invalid Form Key. Please refresh the page.
  • La aplicación ya no vacía la caché de categorías cuando un comerciante añade o elimina productos desactivados de una categoría. Anteriormente, la aplicación vaciaba la caché para categorías relacionadas a pesar del estado del producto. También se quitó la asignación de categorías al guardar una categoría, lo que provocó el vaciado de la caché de categorías.
  • Filtrado de productos de catálogo dentro de Vista de todas las tiendas ahora, el ámbito funciona correctamente. Anteriormente, los productos con un estado de Enabled o Disabled se mostraban en la cuadrícula mientras se filtraban solo los productos activados o desactivados.
  • La reindexación parcial ya no da como resultado productos perdidos y categorías vacías.
  • La reordenación ahora funciona según lo esperado cuando Usar calendario JavaScript está habilitado (Tiendas > Configuración > Catálogo > Opciones personalizadas de fecha y hora). Anteriormente, cuando esta configuración estaba habilitada, la aplicación mostraba este error cuando intentaba reordenar el pedido realizado anteriormente desde el administrador: Please specify date required option(s).
  • La aplicación ahora muestra la moneda correcta en implementaciones de varios sitios durante la creación de precios de nivel.
  • Los atributos personalizados de imagen de producto ahora se escapan correctamente. El data-src tiene el mismo valor que src , tal como se esperaba. Anteriormente, los símbolos especiales de URL se evitaban.
  • Al actualizar una categoría a través de la API de REST, ya no se desactiva la variable Utilizar valor predeterminado en los atributos Habilitar categoría, Incluir en el menú y Clave de URL.
  • Si habilita los permisos de categoría desde el administrador, ya no se producirá un error al almacenar en caché las páginas de categoría en la memoria caché de página completa durante las visitas repetidas a la página de categoría. Anteriormente, las visitas posteriores a la página no se servían desde la caché como se esperaba y el rendimiento estaba disminuido.
  • Al guardar una categoría, ahora se vacía solamente la memoria caché de bloques relacionada con esta categoría. Anteriormente, la aplicación vaciaba la caché de todos los bloques de categorías.
  • El precio de una opción personalizada con un precio porcentual ahora se convierte según lo esperado en la moneda base de la tienda activa en implementaciones de varias tiendas. Anteriormente, el precio de una opción personalizada con un precio porcentual se convertía incorrectamente. GitHub-26432
  • La aplicación ahora vuelve a crear imágenes correctamente y estas imágenes son visibles en el administrador como se espera cada vez que un comerciante envía datos de la galería de medios mediante POST rest/all/V1/products. Anteriormente, la aplicación recreaba las imágenes pero las eliminaba cuando un comerciante enviaba datos de la galería de medios a través de un POST rest/all/V1/products si las imágenes se eliminaron en pub/media pero aún había registros en los medios que aún contenían registros para estas imágenes. Como resultado, el comerciante solo vio marcadores de posición en el Administrador porque las imágenes se crearon y eliminaron durante el proceso de actualización.
  • Los registros ahora se eliminan según lo esperado cuando se anula la asignación de un elemento de un sitio web. Anteriormente, las imágenes se duplicaban cuando el POST rest/all/V1/products se ha ejecutado.
  • El /V1/categories/{categoryId}/products La llamada de ahora devuelve una lista de todos los productos que pertenecen a la categoría principal según lo esperado. Anteriormente, si un producto pertenecía a más de una subcategoría de la categoría principal, la aplicación arrojaba este tipo de error: Internal Error. Details are available in the application log file. Report ID: webapi-5f8579e37db54. GitHub-30461
  • El /V1/products/attributes/:attributeCode/options El punto de conexión REST ahora admite la actualización de una opción de atributo existente.
  • El precio de una opción personalizada con un precio porcentual ahora se convierte según lo esperado en la moneda base de la tienda activa en implementaciones de varias tiendas. Anteriormente, el precio de una opción personalizada con un precio porcentual se convertía incorrectamente. GitHub-26432
  • Los comerciantes ahora pueden guardar correctamente un nuevo atributo durante la creación del producto. Anteriormente, la aplicación no guardaba el atributo y redirigía al comerciante a la página de inicio de la vista de la tienda cuando intentaba guardarlo. GitHub-30362
  • Las cuadrículas de productos de la Ventas > Pedidos y Catálogo > Productos Las páginas de ahora enumeran todas las tiendas relevantes, no solo la tienda creada más recientemente. GitHub-29267
  • El repositorio de productos ahora utiliza store_id cuando esté disponible para guardar valores de atributo para un producto existente. Anteriormente, la clase de repositorio de productos sobrescribía el ID de almacén de productos y siempre asignaba el ID de almacén predeterminado. GitHub-29933
  • Las reglas de precios de catálogo ahora funcionan según lo esperado con opciones personalizadas en las páginas de detalles del producto. Anteriormente, los precios de los productos en esa página no reflejaban las reglas de precios de catálogo aplicables. GitHub-22856
  • Las cachés de productos y catálogos ahora caducan según lo programado. Anteriormente, las cachés caducaban a diario debido a сron se ejecutó el catalogrule_apply_all tarea una vez al día, que reindexaba todas las reglas de catálogo y los indexadores dependientes, y borraba la caché de todos los productos y categorías.

Cleanup

Escritura y limpieza gramatical

  • Se ha revisado el título de la página Error de pedido para comprobar su precisión. Anteriormente, esta página se denominaba: ¡Recibimos su pedido!. GitHub-29416
  • Se han eliminado espacios innecesarios en app/code/Magento/Contact/view/frontend/templates/form.phtml. GitHub-29779
  • Se ha corregido un error tipográfico en el mensaje de ayuda de bin/magento/setup:config:set subcomando. GitHub-28802
  • Se corrigió la gramática en el PHPDoc para framework/Registry.php archivo. GitHub-29661
  • Se ha eliminado el espacio en blanco superfluo de app/code/Magento/Catalog/Helper/Product/View.php. GitHub-30601
  • Se ha corregido un error tipográfico en un nombre de función en app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js. GitHub-29987
  • Se ha corregido la pluralización de "item" en el minicarrito y el resumen del pedido de cierre de compra. GitHub-29920
  • Se han eliminado los espacios en blanco en los elementos en línea en los filtros de navegación por capas de marcado. GitHub-30448
  • rl se ha corregido a url in \Magento\Framework\Filter\Template\Tokenizer\Parameter. GitHub-29185

Limpieza de código

  • Un HTML extraño <br> se ha eliminado del área de mensaje Comprobar datos del Sistema > Importar página.
  • AccessChangeQuoteControl y sus pruebas unitarias se han refactorizado. GitHub-29672
  • Se ha corregido el estilo de código de la declaración de tipo de valor devuelto en app/code/Magento/Captcha/CustomerData/Captcha.php. GitHub-29712
  • Se ha corregido la posición de la lista de botones en la página Nuevo atributo.
  • Se ha añadido la clase de bloque correcta para el front-end viewModel ejemplo de referencia para \Magento\Framework\View\Element\Template clase. GitHub-30450
  • Se ha eliminado un conjunto de campos redundante del formulario Regla de venta. GitHub-29599
  • Se ha eliminado código innecesario del hierarchy/edit.phtml plantilla.
  • Comentario PHPdoc corregido en app/code/Magento/CatalogImportExport/Model/Export/Product.php. GitHub-30833
  • La anotación docblock para PublisherInterface se ha corregido el mensaje. GitHub-30190
  • Argumentos corregidos en getStatusByState método. GitHub-30173
  • Descripción del método corregido en app/code/Magento/Quote/Model/Cart/Totals/ItemConverter.php. GitHub-30125
  • Se han eliminado asignaciones de variables redundantes en la misma línea en varios archivos. GitHub-30133
  • Cambiado @param string $attribute hasta @param AbstractAttribute|string[]|string $attribute in EntityAbstract.php. GitHub-30191
  • Etiquetas no válidas (por ejemplo, @package y @subpackage) se han eliminado de los bloques de documentos en toda la base de código. GitHub-30061
  • Parámetros no utilizados en la construcción del AdvancedPricing se han eliminado las clases. GitHub-29531

Productos configurables

  • El filtrado de productos configurables sin existencias por precio ahora muestra los resultados dentro del rango de precios correcto.
  • Un producto virtual ya no cambia de tipo cuando su estado se cambia de habilitado a deshabilitado (o viceversa). Anteriormente, la aplicación cambiaba el tipo de un producto de virtual a simple cuando cambiaba su estado.
  • El getValue() ya no almacena en déclencheur un error grave al actualizar los carros de compras.
  • Los productos configurables que están disponibles en varios sitios web ya no muestran productos secundarios simples que no están asignados al sitio web específico. GitHub-28291
  • Las páginas de productos de Storefront ahora muestran precios de nivel sin impuestos como se esperaba. GitHub-12225
  • Los precios del MSRP para los productos configurables ahora se convierten correctamente a la moneda elegida. Anteriormente, la aplicación mostraba los precios en la moneda incorrecta y arrojaba este error: Call to a member function setAppliedTaxes() on null. GitHub-26526, GitHub-29603
  • Los comerciantes ahora pueden guardar una etiqueta de opción de atributo de muestra de texto específica de un almacén con un valor de 0 (cero). Anteriormente, un valor de 0 se reemplazaba por el valor de la opción Etiqueta de administrador. GitHub-30073
  • Parámetros no utilizados en la construcción del AdvancedPricing se han eliminado las clases. GitHub-29531

cron

  • La lista de mensajes del sistema ahora refleja con precisión las actualizaciones de productos después de cron se ha ejecutado y la aplicación ha actualizado los productos según lo programado.
  • Un índice basado en schedule_id y status se ha añadido a cron_schedule tabla. GitHub-29601

Atributos del cliente personalizados

  • La aplicación ahora muestra atributos del cliente del tipo file en la página Información de la cuenta después de la creación. Anteriormente, al intentar guardar un nuevo atributo de este tipo, la aplicación mostraba estos errores: The "newAttribute" attribute value is empty. Set the attribute and try again y Validation is failed.
  • La aplicación ahora muestra correctamente los valores de atributos del cliente personalizados de varias líneas. Anteriormente, no se mostraban todos los datos.
  • La aplicación ahora avisa a los compradores cuando introducen una fecha de nacimiento no válida al crear una cuenta. Anteriormente, el validador no tenía en cuenta la configuración regional y se redirigía a los compradores a la página Crear nueva cuenta de cliente con un error de fecha no válido.
  • Los atributos de dirección personalizados ahora se incluyen según lo esperado en la Etapa de pago del flujo de trabajo de cierre de compra.
  • Los atributos de selección múltiple de direcciones personalizadas ahora se muestran correctamente durante el cierre de compra de invitados y en la página de detalles de pedidos de Administración y Mi cuenta.
  • Los atributos de dirección personalizados ahora se muestran correctamente en el área Mi cuenta y en la página de detalles de pedido del administrador.
  • Ahora puede eliminar un cero a la izquierda en un atributo de cliente personalizado cuando Input Type se establece en Text y Input Validation se establece en Numeric Only.
  • La aplicación ahora exporta correctamente datos de clientes que incluyen un valor de atributo de género personalizado.
  • La aplicación ahora guarda los valores de atributos del cliente personalizados para los usuarios B2B según lo esperado. Anteriormente, los atributos de cliente personalizados creados para agregar o editar usuarios de la empresa no estaban enlazados con el formulario Agregar nuevo usuario y, como resultado, los valores de atributo no se guardaban. Además, el atributo de fecha personalizado se derivó de la base de datos como una cadena y no se convirtió al formato de fecha adecuado para la visualización de la tienda.

Cliente

  • El widget de calendario para el campo Fecha de nacimiento de la página de cuenta del cliente de tienda ahora utiliza la configuración regional de tienda designada.
  • La aplicación ya no guarda entradas duplicadas de una dirección de cliente durante la retirada de un pedido nuevo para un cliente existente del administrador.
  • Al eliminar todas las direcciones de varios clientes desde el Administrador, ahora se eliminan todas las direcciones de la lista de direcciones de clientes y se eliminan las direcciones de facturación y envío predeterminadas. Anteriormente, la aplicación eliminaba la dirección de la lista de direcciones de clientes, pero no eliminaba las direcciones de facturación y envío predeterminadas.
  • La pestaña Admin customer address ahora muestra correctamente el recuento de direcciones después de que un administrador haya realizado una eliminación masiva de direcciones. Anteriormente, la aplicación incluía direcciones eliminadas en el recuento.
  • El formato DateTime para Fecha de nacimiento se ha corregido el campo de la página de registro del cliente. Anteriormente, faltaba el cero a la izquierda que precedía a un día de un solo dígito.
  • Validación de formato de fecha para Fecha de nacimiento ahora funciona antes de que el comprador haga clic en Crear una cuenta botón. Anteriormente, un comprador podía introducir un valor en un formato no válido y al hacer clic en el botón Crear una cuenta , se redirigió al comprador a la página Crear nueva cuenta de cliente con un error de fecha no válido.
  • La aplicación ya no genera un error grave cuando un administrador intenta guardar una nueva cuenta de cliente que contiene datos no válidos para un atributo.
  • La aplicación ya no emite un error 400 cuando un cliente intenta acceder a su carro de compras en una implementación en la que Magento Shipping estaba instalado anteriormente y la temática de Luma predeterminada está implementada actualmente. Anteriormente, la aplicación no filtraba los nombres de sección creados por módulos instalados o habilitados anteriormente que no eran compatibles con el administrador antes de enviar solicitudes al servidor, lo que generaba errores.
  • La aplicación ahora muestra un mensaje como se espera cuando un comprador crea una cuenta de invitado cuando el Requerir confirmación de correos electrónicos La configuración está habilitada y Magento\Customer\Controller\Account\CreatePost se ha anulado. Anteriormente, la aplicación no permitía este tipo de personalización del proceso de registro de usuarios y, bajo estas condiciones, el estado de confirmación de correo electrónico de un usuario se consideraba completo, el nuevo usuario iniciaba sesión automáticamente y no se mostraba ningún mensaje de error.
  • La aplicación ahora asigna un comprador al grupo de clientes correcto cuando el comprador realiza un pedido con un grupo de clientes no predeterminado en una tienda donde Habilitar la asignación automática al grupo de clientes está activada. GitHub-26976
  • La cuadrícula Clientes administradores ahora está disponible como se espera cuando el sitio web no predeterminado se elimina en una implementación de varios sitios cuando los índices se establecen en Actualizar según lo programado. Anteriormente, la aplicación no mostraba la cuadrícula y arrojaba este error: [2020-12-09 11:31:54] report.CRITICAL: The website with id 2 that was requested wasn't found. Verify the website and try again. \{"exception":"[object] (Magento\\Framework\\Exception\\NoSuchEntityException(code: 0): The website with id 2 that was requested wasn't found. Verify the website and try again. at /var/www/html/magento24ee/vendor/magento/module-store/Model/WebsiteRepository.php:110)"}

dotdigital

  • La gestión de errores se ha mejorado al recuperar listas de programas desde dotdigital Engagement Cloud.

  • El valor que se sincroniza en la columna de nombre de tienda durante la sincronización de invitados es ahora el nombre de la vista de tienda según lo esperado. Anteriormente, el nombre del sitio web se incluía en esta columna.

  • Se ha añadido una comprobación de matriz antes de realizar un bucle en las automatizaciones del estado de los pedidos después de guardar un pedido.

  • Se han resuelto problemas con las actualizaciones de Composer que eran el resultado de la dependencia del módulo dotdigital en magento/module-authorization.

Descargable

  • La aplicación ya no incluye un producto descargable en la pestaña Mis productos descargables después de que el producto descargable se haya reembolsado parcialmente. GitHub-28388

Bloque dinámico (anteriormente banner)

  • La aplicación ya no muestra un bloque dinámico en la tienda después de eliminar el segmento de cliente asociado al bloque.
  • La aplicación ahora tiene correctamente en cuenta las reglas de precios de catálogo al determinar si se debe mostrar un bloque dinámico.

EAV

  • Atributos personalizados que utilizan \Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend ahora utilice valores predeterminados si no se proporciona ningún valor en la carga útil cuando se crea un producto mediante una llamada de API.

Correo electrónico

  • \Magento\Config\Model\Config\Source\Email\Template::toOptionArray ya no genera un error cuando setPath() no se llama antes de toOptionArray(). GitHub-29315
  • La aplicación ahora convierte correctamente el texto sin formato en HTML al hacer clic en Devolver Versión Html al cargar una plantilla de correo electrónico.
  • El correo electrónico enviado a los clientes que contienen facturas parciales ahora incluye subtotales de artículos precisos. Anteriormente, el subtotal de este correo electrónico era el total de la cantidad pedida, no la cantidad total de la cantidad facturada.
  • La aplicación ahora envía recordatorios por correo electrónico a todos los clientes relevantes con direcciones de correo electrónico válidas. Anteriormente, la aplicación dejaba de enviar correos electrónicos de recordatorio a los clientes después de encontrar una dirección no válida.
  • El envío del correo electrónico de ventas en modo asincrónico ahora funciona como se espera después de que se elimine un producto de un catálogo. Anteriormente, el envío asincrónico de correo electrónico se bloqueaba y la aplicación mostraba este error: main.ERROR: Cron Job sales_send_order_invoice_emails has an error: Call to a member function getData() on null. Statistics: {"sum":0,"count":1,"realmem":0,"emalloc":0,"realmem_start":73400320,"emalloc_start":37177640} [] []main.CRITICAL: Error when running a cron job {"exception":"[object] (RuntimeException(code: 0): Error when running a cron job at /var/www/html/vendor/magento/module-cron/Observer/ProcessCronQueueObserver.php:327, Error(code: 0): Call to a member function getData() on null at /var/www/html/vendor/magento/module-catalog/Helper/Image.php:502)"} []. GitHub-26878
  • La aplicación ya no copia un cliente en el correo electrónico de confirmación del pedido cuando sales_email/order_comment/enabled está desactivado y sales_email/order_comment/copy_method se establece en bcc. GitHub-29915

Marcos

  • Los grupos de filtros personalizados ahora se aplican correctamente al buscar clientes. Anteriormente, la variable afterSearch La función no tenía los filtros OR esperados. GitHub-24576
  • Las imágenes de la página principal de una tienda ahora se representan correctamente. Anteriormente, el HTML de origen de página estaba dañado porque las tres barras consecutivas del código base64 de la imagen se interpretaban erróneamente como un comentario.
  • DatePicker ahora funciona correctamente cuando se filtran pedidos en la lista Pedidos de administración en tiendas que utilizan la configuración regional árabe (ar_SA - Saudi Arabia).
  • DatePicker ahora muestra la fecha correcta después de que un comerciante guarde una regla de precio de carro de compras en una implementación. GitHub-30382
  • La aplicación ahora representa correctamente la agrupación de miles árabes y los símbolos separadores decimales árabes. Anteriormente, los símbolos árabes estaban recortados. GitHub-26676
  • La aplicación ahora elimina las sesiones de base de datos caducadas de la base de datos session como se esperaba.

Correcciones generales

  • Ahora puede configurar un controlador de sesión nativo que difiera del controlador definido en php.ini. Anteriormente, SessionManager no se estableció memcache como save_handler, pero en su lugar utilizó el del archivo session_handler. la aplicación ha devuelto este error: main.CRITICAL: Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 {"exception":"[object] (Exception(code: 0): Warning: SessionHandler::read(): open(127.0.0.1:11211/sess_0imeeaqmnvemdg4e3h57tat0ik, O_RDWR) failed: No such file or directory (2) in ../vendor/magento/framework/Session/SaveHandler/Native.php on line 22 at ../vendor/magento/framework/App/ErrorHandler.php:61)"}. GitHub-24717
  • Se han realizado las siguientes mejoras en el LoginAsCustomer módulos:

    • Se reemplazaron las variables around plug-in con after

    • Código redundante eliminado

    • Reemplazado (bool)->getValue() con isSetFlag. GitHub-29689

  • La recarga de todas las secciones de datos del cliente mediante el comodín (*) ya no hace que las solicitudes se procesen customer/section/load para generar un error 400. GitHub-28154
  • La aplicación ahora pasa las excepciones que se producen cuando se procesa un diseño en el modo de producción a var/report. GitHub-29606
  • La aplicación ya no redirige a los clientes a la página principal cuando cambian de vista de la tienda. El \Magento\VersionsCmsUrlRewrite\Model\StoreSwitcher::switch() ahora redirige a los compradores a la página principal solo cuando $urlPath no se encuentra para la vista de la segunda tienda.
  • La aplicación ahora emite una excepción cuando un cliente que no existe solicita un restablecimiento de contraseña. GitHub-26288
  • La aplicación ahora muestra un mensaje de error informativo cuando un administrador intenta guardar una cuenta de cliente que contiene un valor no válido para un atributo de cliente mientras carga un archivo que contiene este valor de atributo. Anteriormente, la aplicación arrojaba un error grave. GitHub-30295
  • La aplicación ahora aplica el Logotipo para vista de impresión de HTML ajuste de configuración para almacenar los PDF de facturas según lo esperado. GitHub-24730
  • static:: se ha reemplazado por self:: en todo el código base para acceder a constantes privadas. GitHub-30781
  • La aplicación ahora abre la página Nuevo atributo como se espera cuando un comerciante hace clic en Crear nuevo atributo dos veces durante la creación del producto. Anteriormente, la aplicación mostraba una página vacía y arrojaba un error. GitHub-30361
  • La aplicación ya no muestra el The coupon code has been accepted después de eliminar un cupón. GitHub-30255
  • Los administradores ahora pueden asignar widgets a categorías específicas. GitHub-30009
  • Selector de atributos input[type=datetime] se ha reemplazado por un selector de tipo de entrada menos específico. GitHub-30064
  • La aplicación ahora muestra valores específicos de tienda asociados con atributos de categoría personalizados según lo esperado. GitHub-13440
  • La aplicación ahora muestra un mensaje preguntando si el grupo de clientes debe cambiarse al hacer clic en Validar número de IVA botón en la página de creación del pedido cuando la dirección de la tienda y el destino de envío pertenecen a diferentes países de la UE. GitHub-29652
  • El \Magento\Catalog\Model\ImageUploader La clase se ha refactorizado para utilizar el nuevo moveFileFromTmp método. GitHub-29598
  • La aplicación ahora muestra un mensaje de error más informativo cuando un comerciante intenta crear un atributo de producto con product_type y type_id códigos para que sean más descriptivos. GitHub-28479
  • Se ha corregido la lógica de validación para Duración del token del cliente (horas) y Duración del token de administrador (horas) campos en el Administrador Tiendas > Configuraciones > Servicios > OAuth página. GitHub-29502
  • La aplicación ahora analiza correctamente el texto que contiene }} en el campo widget content. GitHub-12087
  • Ahora puede quitar un filtro de la página Categorías de productos. Anteriormente, cuando se intentaba eliminar el filtro, la aplicación no permitía eliminarlo y mostraba este error: Something went wrong. GitHub-8538
  • Magento\Framework\MessageQueue\ConfigInterface ahora se puede crear una instancia cuando el módulo opcional Magento_MessageQueue está deshabilitada. Anteriormente, la aplicación arrojaba este error: PHP Fatal error: Uncaught Error: Cannot instantiate interface Magento\Framework\MessageQueue\ConfigInterface in /var/www/magento2/magento2/lib/internal/Magento/Framework/ObjectManager/Factory/AbstractFactory.php:121. GitHub-26080
  • Se ha mejorado la lógica que determina cuándo la aplicación puede recuperar el valor del correo electrónico del almacenamiento persistente. Anteriormente, la aplicación mostraba campos de contraseña rellenados en la página de cierre de compra cuando un usuario no registrado regresaba a la página de cierre de compra después de completar por primera vez el campo de correo electrónico. GitHub-26903
  • Falta una aclResource se ha añadido el atributo al encabezado Admin AdminNotification bloque de barra de herramientas. Anteriormente, la entrada de la barra de herramientas de notificación de administración era visible incluso cuando el usuario administrador no tenía permisos de recursos de funciones para verla. GitHub-29067
  • El framework/database/select where ahora, las funciones gestionan type correctamente. GitHub-29590
  • Uso ineficiente de array_merge en los bucles se ha mejorado en todo el código base, lo que ha mejorado el rendimiento en varios lugares, incluido el proceso de implementación de contenido estático. GitHub-30183
  • La duración predeterminada de la sesión de administración se ha trasladado del módulo de cifrado al módulo de seguridad. GitHub-30859
  • La aplicación ahora comprueba las constantes privadas de una clase y muestra una advertencia si hay alguna static:: llamadas a ellos. Anteriormente, la aplicación arrojaba este error: Undefined class constant.
  • Reglas añadidas a editorconfig para admitir la sangría de archivos JSON y YAML en dos espacios. GitHub-30066, GitHub-30063
  • El FlushCacheByTags se ha actualizado para utilizar complementos posteriores en lugar de complementos circulares. GitHub-29558
  • MessageValidator ya no produce errores en las matrices hash que no incluyen una 0 Elemento. GitHub-30563
  • Código en la checkout_index_index.xml se ha mejorado con la eliminación de sortOrder de messages, authentication, progressBar, estimation, y sidebar checkout componentes. GitHub-30550
  • Contenido en calc ahora se escapa, lo que da como resultado lo correcto calc en el archivo de salida CSS. Anteriormente, la aplicación devolvía un calc valor. GitHub-30542
  • El generador de reescritura de URL ahora establece el objeto category url_key, url_path, y store_id para almacenar los valores predeterminados al guardar las reescrituras de URL de categoría para el ámbito global. Anteriormente, se guardaba url_key, url_path, y store_id con los valores del último ID de almacén procesado. GitHub-29585
  • \Magento\Widget\Controller\Adminhtml\Widget\Instance\Validate ahora reconoce un valor de resultado de frase como un mensaje de error y lo envía al usuario durante la validación del widget. GitHub-27397
  • La lista codificada de atributos de categoría en Magento\Catalog\Model\Category\DataProvider::getFieldsMap() se ha reemplazado por una lista de atributos generados a partir de la caché. GitHub-13440
  • Hash redundante de req.http.host/client.ip se ha eliminado y el hash se gestiona mediante la VCL integrada de Varnish. GitHub-29988
  • Se ha agregado una llamada de retorno de error a Magento_Ui cargador de archivos. GitHub-29557
  • Un acl.xml incoherencia que se producía al Magento_LoginAsCustomerAssistance estaba habilitado, pero Magento_LoginAsCustomerAdminUi o Magento_LoginAsCustomerLog se ha corregido la selección de deshabilitadas. Anteriormente, cuando un administrador con estas credenciales intentaba iniciar sesión en Admin, la aplicación mostraba una página en blanco y arrojaba este error cuando: Exception #0 (LogicException): Could not create an acl object: Invalid Document Element 'resource': The attribute 'title' is required but missing. Line: 13. GitHub-30680
  • La aplicación ya no emite un Undefined class constant error al crear un Interceptor se genera durante la creación del complemento. GitHub-28981, GitHub-29879
  • La aplicación ahora gestiona correctamente la mensajería y el registro para operaciones asíncronas masivas. Anteriormente, aunque los productos se actualizaban, la variable magento_operation y queue_message_status no se actualizaban correctamente y los mensajes del sistema eran incorrectos. GitHub-29718
  • Ahora se redirige a un comprador a la página Definir una nueva contraseña tal como se espera cuando hace clic en Establecer una nueva contraseña en el correo electrónico Restablecer contraseña cuando Requerir confirmación de correos electrónicos está habilitado para la tienda. Anteriormente, el comprador se redirigía de nuevo a Olvidé su contraseña en la página de inicio de sesión. GitHub-27954
  • Se corrigió el error de conversión de matriz a cadena al guardar la configuración del sistema de filas con valores predeterminados. GitHub-30314
  • Ahora puede establecer argumentos para colas de mensajes. GitHub-30216
  • El recolector de archivos base ahora respeta AppState->emulateAreaCode(). GitHub-39656
  • El nuevo BlockByIdentifier La clase admite la recuperación de un bloque de diseño basado en el identificador de bloque CMS. Como resultado, cuando se elimina un bloque CMS de la caché, la aplicación también borra la caché de bloques de diseño. GitHub-28309
  • Se corrigieron problemas con la conversión de argumentos numéricos en colas. Anteriormente, al declarar una cola con valores numéricos type argumentos en la variable queue_topology.xml, el valor del argumento se convirtió en cadena. GitHub-29615

Tarjetas de regalo

  • Los correos electrónicos que contienen un código de tarjeta regalo ahora se envían solo después de que el pedido se haya guardado correctamente cuando el Crear una cuenta de tarjeta regalo cuando se pida un artículo La opción de configuración está habilitada. Anteriormente, se reutilizaba un código de tarjeta de regalo y se enviaba a distintos clientes si se generaba una cuenta de tarjeta de regalo cuando se pedían artículos, pero se producía una excepción después de que se enviara la tarjeta de regalo virtual.
  • La aplicación ya no duplica los pedidos de tarjetas regalo. Anteriormente, cuando un comprador pedía una tarjeta de regalo, la aplicación entregaba dos códigos de regalo. Esto ocurrió porque cron trabajos llamados \Magento\GiftCard\Observer\GenerateGiftCardAccountsInvoice::execute(), y este método no comprobaba si los códigos de tarjeta regalo ya se habían generado durante la creación de la factura.
  • Los comerciantes ahora pueden desasignar productos de las categorías según lo esperado. Anteriormente, la aplicación arrojaba un error similar a este error: Could not save product "4" with position 0 to category 3.
  • Se ha agregado compatibilidad con symlinked root en las páginas de errores y en el modo de mantenimiento. Anteriormente, si la variable root o magento/pub se han vinculado simbólicamente a un directorio diferente, el procesador de errores (Magento\Framework\Error\Processor) no ha generado una URL de archivo de vista correcta. GitHub-30296
  • Añadido faltante order_data matriz a EmailSender clases. Esto alinea estas clases con la recomendación de Magento de utilizar variables escalares en lugar de objetos dentro de las plantillas de correo electrónico. GitHub-29604

Google Tag Manager

  • Administrador de etiquetas de Google productClick ahora funciona según lo esperado. Anteriormente, productClick no se activó en los productos de las páginas del listado y Google Tag Manager no pudo capturar ese evento.
  • Las opciones de producto configurables de Google Tag Manager ahora se actualizan según lo esperado en la capa de datos después de editar una opción de producto configurable en el carro de compras. Anteriormente, los datos de removeFromCart El evento se reescribió incorrectamente cuando se cambió la opción del producto y la cantidad permaneció igual.

GraphQL

  • El urlResolver query ahora gestiona correctamente los parámetros de consulta.
  • El urlResolver La consulta ya no devuelve NULL cuando se especifican un nodo y una página CMS personalizados como entrada. GitHub-30474
  • El category La consulta ya no devuelve las categorías secundarias de una categoría principal que se haya deshabilitado. GitHub-30468
  • El category La consulta ahora devuelve la ruta correcta de una imagen de categoría cuando las reescrituras de URL están desactivadas.
  • El resetPassword mutation ahora devuelve un mensaje más informativo cuando se produce un error. GitHub-30179
  • Resultados en caché de la products Las consultas de se invalidan según lo esperado cuando cambian las posiciones de los productos. GitHub-30467
  • El products ahora devuelve los resultados esperados cuando el category_id El filtro se especifica con in palabra clave. GitHub-30349
  • El categories y categoryList Las consultas de ahora consideran la disponibilidad de las categorías en función de la configuración de permisos de categorías y el ID de categoría principal. GitHub-29880, GitHub-30624
  • El updateProductsInWishList mutation ahora valida correctamente los elementos de la lista de deseos. GitHub-30467
  • Varios atributos obsoletos en la ProductInterface y CategoryInterface para evitar su uso en la tienda. GitHub-30625

  • Los precios ahora están ocultos en los resultados de las consultas de productos cuando los permisos de categoría están configurados para ocultarlos. GitHub-29926

  • Ahora puede utilizar la variable addProductsToWishList mutación para añadir un producto agrupado con una cantidad definida por el usuario a una lista de deseos.
  • Las mutaciones que agregan productos al carro de compras ahora respetan los permisos del catálogo. GitHub-30179
  • Ha mejorado el tiempo de respuesta de GraphQL para operaciones de añadir al carro de compras.
  • El products La consulta ahora devuelve valores de precio de nivel según lo esperado. GitHub-29168
  • Se ha eliminado un redundante getMappedNums desde un bucle en lib/internal/Magento/Framework/GraphQl/Query/EnumLookup.php. GitHub-30031
  • El products query ya no devuelve un error cuando el producto consultado tiene un producto relacionado deshabilitado. GitHub-28892
  • El cart La consulta ahora devuelve los precios que se han convertido a la moneda correcta (la moneda de visualización predeterminada). Anteriormente, la consulta devolvía el valor del precio del artículo en la moneda base y el código de moneda se devolvía como moneda de presentación predeterminada.
  • GraphQL ahora respeta los permisos del catálogo. La aplicación restringe los elementos que se devuelven para un products consulta basada en el grupo de clientes del comprador.
  • Se ha añadido la customizable_option a varios tipos de datos que implementan el CartItemInterface.
  • Se han añadido atributos para storeConfig consulta para devolver información de tienda, grupo de tienda y sitio web.
  • Se restableció el SelectedCustomizableOption.type atributo. Además, la variable customizable_options dentro de varias implementaciones de CartItemInterface ahora no son nulas.
  • La funcionalidad de búsqueda de products La consulta ya no devuelve elementos en los que se han habilitado permisos de categoría.
  • El products La consulta devuelve la moneda correcta para las vistas de tienda que tienen varias monedas.
  • Etiquetas para products los filtros de consulta ahora devuelven valores traducidos, cuando corresponde, para las vistas de tienda no predeterminadas.
  • Se han corregido importes en moneda de tienda en tarjetas de regalo del carro de compras.
  • Se ha añadido la ConfigurableProductOptionsSelection tipo de datos, que contiene metadatos correspondientes a las opciones configurables y seleccionables de un producto. Utilice este objeto en un products consulta para minimizar el número de elementos de la galería de medios que se muestran cuando el comprador selecciona opciones de producto configurables.

Productos agrupados

  • La consulta de productos ahora devuelve todos los datos esperados para los productos agrupados. Anteriormente, product_links era una matriz vacía.
  • Un producto agrupado aparece ahora como agotado en la página de edición del producto cuando todos los productos secundarios simples están agotados.
  • El estado de un producto agrupado ahora se actualiza correctamente en la página de edición del producto cuando el estado de sus productos secundarios simples cambia a sin existencias. Anteriormente, el artículo de stock de inventario para el principal del producto agrupado no se actualizaba después de que sus secundarios cambiaran el estado de stock.

Imágenes

  • Las imágenes de la página principal de una tienda ahora se representan correctamente. Anteriormente, el HTML de origen de página estaba dañado porque las tres barras consecutivas del código base64 de la imagen se interpretaban erróneamente como un comentario.
  • La dependencia del fileinfo La extensión de se ha eliminado del módulo CMS. Anteriormente, la aplicación generaba un error al intentar cargar una imagen con el cargador de imágenes, que se iniciaba al hacer clic en Insertar imagen al añadir contenido. GitHub-24332, GitHub-16531, GitHub-29852
  • Se ha agregado compatibilidad para leer exif_image.png o exif-image.jpeg metadatos. GitHub-1449
  • El widget de carrusel de eventos de catálogo ahora muestra las imágenes después de la carga según lo esperado. Anteriormente, la variable catalog_event_status_checker trabajo cron eliminó imágenes cargadas.
  • Los colores de las imágenes CMYK ahora se representan correctamente. Cuando el adaptador de Imagick detecta ahora que una imagen abierta tiene un espacio de color CMYK, el espacio de color se convierte en SRGB. Anteriormente, estas imágenes se representaban con colores invertidos. GitHub-22375
  • Los valores booleanos ya no están configurados para image_with_border.phtml. Redundante max-width y height La configuración de se ha eliminado de .product-image-photo. (Estos valores ya se han establecido globalmente en la imagen mediante los estilos de restablecimiento). GitHub-30186

Importar/exportar

  • Dirección del cliente region_id ya no tiene asignado un NULL cuando se importan direcciones de clientes mediante un archivo CSV (entity type = "customer address" y import behavior = "add/update") de los cuales se han eliminado ciertos valores de campo.
  • Ahora puede ocultar imágenes de productos en la tienda durante la importación.
  • Un proceso de importación de productos programado ahora actualiza los productos con campos de datos correctos cuando el archivo CSV también contiene entradas incorrectas. Anteriormente, no se actualizaba ninguna entrada si el archivo CSV incluía entradas incorrectas al Al producirse un error: continuar procesando se ha activado.
  • Cuando un producto importado tenga qty establecido en 0 pero is_in_stock set al 1 en el archivo CSV, el producto no aparece en la página de categoría y la página de detalles del producto lo identifica como agotado. Anteriormente, los productos con estos valores eran visibles en la tienda después de la importación.
  • La importación de CSV ya no ignora el dropdown y textarea valores para atributos adicionales. Anteriormente, estos valores de atributo no se actualizaban durante la importación.
  • El archivo CSV de exportación de productos ahora aparece en la lista de administración de archivos CSV de exportación según lo esperado. Anteriormente, la aplicación arrojaba un error cuando ejecutaba este comando: bin/magento queue:consumers:start exportProcessor --single-thread --max-messages=10000.
  • La aplicación ya no genera un error al importar datos CSV que incluyen caracteres del alfabeto bengalí (bengalí).
  • La aplicación ahora muestra un mensaje de error informativo cuando un administrador hace clic en Comprobar datos durante la importación de un archivo que se ha cambiado desde la exportación cuando se trabaja en Chrome. Anteriormente, la aplicación mostraba un error de consola, pero no indicaba al usuario cómo proceder.
  • La aplicación ya no duplica imágenes de productos cuando se importan los mismos datos CSV del producto más de una vez. GitHub-21885
  • El límite de 90 caracteres para los nombres de archivo de imagen en vendor/magento/framework/File/Uploader.php se ha eliminado. Anteriormente, la longitud del directorio y el nombre de archivo no podía superar los 255 caracteres. La aplicación importó productos con imágenes cuyo nombre de archivo superaba este límite, pero no importó el archivo de imagen. GitHub-29377
  • Los códigos de cupones ahora se pueden exportar correctamente a CSV o XML. Anteriormente, la aplicación mostraba un error 404 al hacer clic en Exportar CSV o Exportar XML cuando intentó exportar cupones. GitHub-29277
  • Las imágenes de producto duplicadas ahora se eliminan después de importar un archivo CSV que contiene imágenes. GitHub-14398, GitHub-21885

Índice

  • Hemos mejorado el rendimiento del indexador parcial. La aplicación ahora borra los ID de caché que se cambiaron para cada iteración de lote de 1000 ID. El contexto de caché ya no acumula ID. Anteriormente, el contexto de caché acumulaba ID de caché para cada iteración de lote de 1000 ID y borraba el mismo conjunto de ID en cada iteración.
  • Se han corregido las incoherencias entre el sistema de reindexación parcial y el sistema de reindexación completo. Ambos sistemas de indexación ahora utilizan el mismo código, que funciona correctamente. Anteriormente, ambos sistemas de indexación utilizaban una lógica diferente con respecto a los indexadores compartidos, lo que podía provocar que los indexadores se invalidaran después de cada ejecución del sistema de reindexación parcial. GitHub-29478, GitHub-29297
  • Hemos resuelto problemas con el indexador manual que habían resultado en páginas de categoría vacías o en una cantidad reducida de productos en las páginas de categoría. Se produjeron problemas con páginas de categoría o recuento de productos incompletos cuando:

    • el catalogsearch_fulltext y catalog_product_price los indexadores parciales se ejecutaron en un catálogo grande hasta que estos indexadores completaron la ejecución.

    • el indexador parcial se ejecutó en catalog_category_product o catalog_product_category y, al mismo tiempo, se ejecutó una reindexación completa en uno de esos índices. Estos dos procesos de indexación podrían entrar en conflicto, lo que provocaba que faltaran productos en las páginas de categoría.

    • bin/magento indexer:reindex inventory se ejecutó en un catálogo grande. Faltaban productos de las páginas de categoría hasta el catalogsearch_fulltext el indexador parcial completó la ejecución.

  • Se ha agregado un indizador al Magento_Bulk Tabla MySQL, que ha mejorado el rendimiento de las operaciones por lotes.
  • Los comentarios de las tablas de base de datos ahora reflejan con precisión el estado de la tabla después de volver a indexar (bin/magento indexer:reindex). Anteriormente, los comentarios de tabla después de la reindexación contenían los mismos valores que los comentarios contenidos después de una nueva instalación.
  • El SELECT entity_id IN La instrucción se ha mejorado en las implementaciones que implementan MariaDB v.10.3.18, lo que ha mejorado el rendimiento de la indexación de categorías de catálogo. GitHub-25199
  • Adobe Commerce ha mejorado el rendimiento de la caché al eliminar el vaciado de etiquetas varias veces por instancia del indexador. GitHub-29890

Infraestructura

  • Ahora puede utilizar app/etc/env.php para cambiar el agente de mensajes de MYSQL a AMQP.
  • Los problemas con el cálculo de los residuos para los valores decimales de las cantidades de productos se han corregido en la biblioteca JavaScript correspondiente. La aplicación calculaba incorrectamente fracciones decimales de más de dos dígitos y, posteriormente, mostraba un mensaje incorrecto.
  • El \Magento\Authorization\Model\Rules::update El método se ha desaprobado. GitHub-29128
  • La aplicación ya no emite un error grave al convertir un objeto de fecha de UTC. Anteriormente, bajo ciertas condiciones, la variable convertConfigTimeToUtc El método ha devuelto una excepción. GitHub-29525
  • DataObject se ha reemplazado con el modelo de producto en \Magento\MediaGalleryCatalogUi\Ui\Component\Listing\Columns\Thumbnail::prepareDataSource.GitHub-1711
  • El RequireJS el solucionador ya no detecta los recursos bloqueados. Anteriormente, la resolución no detectaba correctamente si todos los recursos de una página se cargaban o gestionaban correctamente, y la página se seguía cargando. GitHub-28116
  • La validación de código del repositorio de atributos ahora respeta Magento\Eav\Model\Entity\Attribute::ATTRIBUTE_CODE_MAX_LENGTH en lugar de un valor codificado. GitHub-29017
  • La minificación de HTML ya no elimina las barras triples (https://experienceleague.adobe.com//?lang=es) de las cadenas del HTML en los archivos PHTML. Anteriormente, las barras triples se interpretaban como comentarios durante la minificación y el resto de la línea se eliminaba completamente en el archivo PHTML generado al implementarse.
  • Los comerciantes ahora pueden configurar las suscripciones del indexador en el nivel de columna de tabla en lugar de en el nivel de tabla. Se ha añadido un nuevo argumento a \Magento\Framework\Mview\View\Subscription para permitir que las columnas se ignoren para una vista o combinación de tabla específica. GitHub-30243
  • Haciendo clic en Añadir al carro antes de que la página del producto JavaScript se inicialice completamente ya no genera duplicados form_key valores. Anteriormente, se podía agregar un producto al carro de compras con una caché form_key valor que activó una excepción. Cuándo Añadir al carro se ha hecho clic antes de que JavaScript se inicializara completamente y, a continuación, se ha form_key el valor enviado en los datos del formulario no coincide con la sesión de los usuarios y el producto no se agregó al carro de compras. GitHub-13746
  • El cliente cURL actual ahora respeta los nombres de encabezado que no distinguen entre mayúsculas y minúsculas. Anteriormente, la variable Set-Cookie La comparación distingue entre mayúsculas y minúsculas, lo que podría causar problemas con algunos servidores HTTP. GitHub-29524
  • Se ha actualizado el formato XSD URN en api-functional y archivos XML de casos de prueba. GitHub-30552
  • Se han añadido un prefijo de evento y un objeto de evento a la colección de valores de opciones del producto del catálogo para mejorar la personalización de la carga de la colección de \Magento\Catalog\Model\ResourceModel\Product\Option\Value\Collection. GitHub-29621
  • Todas las ocurrencias de array_merge se han refactorizado para utilizar el formato recomendado en el estándar de codificación. GitHub-30005
  • A head.additional bloque de tipo \Magento\Framework\View\Element\Text\ListText se ha añadido a adminhtml default diseño (por magento2/module-base). GitHub-29165
  • Se ha agregado el método de URL de escape que falta al widget de módulo de plantilla de diseño. GitHub-30036
  • El \Magento\Framework\Filesystem\Io\File::read() ahora es compatible con \Magento\Framework\Filesystem\Io\IoInterface::read(). GitHub-27866

Klarna

  • Se ha eliminado la dependencia del módulo PayPal. GitHub-29421

Registro

  • El Magento_Logging ahora registra correctamente nuevos valores, así como los valores que los precedieron. Anteriormente, los valores de la columna Valor antes del cambio mostraban valores N/D independientemente de si este era el primer cambio o el siguiente, o de cuándo se devolvía el valor predeterminado. GitHub-26943

Galería de medios

  • El administrador Tiendas > Configuración > Avanzadas > Sistema se ha actualizado la página para mostrar el nombre de producto correcto (Galería multimedia). Se han incluido pequeños rediseños en la interfaz de usuario. GitHub-1738
  • Los vínculos de la sección Utilizado en de las descripciones de imágenes de la Galería multimedia ahora muestran una cuadrícula que la imagen seleccionada ha filtrado según lo esperado. Anteriormente, la cuadrícula mostrada no tenía un título correcto y las entradas de la lista no eran precisas. GitHub-1694
  • Ahora puede editar correctamente varias imágenes en la Galería multimedia. Anteriormente, no se podían agregar etiquetas a una segunda imagen después de agregar etiquetas a una imagen. GitHub-1755
  • El menú desplegable Etiquetas ahora está vacío tal como se espera después de quitar etiquetas de una imagen en la Galería multimedia. GitHub-1703
  • Ahora se admite el procesamiento por lotes de los mensajes de cola de sincronización de Media Gallery. GitHub-1724
  • La aplicación ahora muestra una página 404 como se espera cuando intenta abrir la Galería multimedia cuando Galería de medios mejorada está deshabilitada. GitHub-1760
  • MediaGalleryMetadata ahora omite el lector de segmentos si se produce una excepción y, en su lugar, analiza y muestra los metadatos de imagen según lo esperado. Anteriormente, los metadatos de la imagen estaban vacíos debido a una excepción del exif_read_data lector de segmentos. GitHub-1782
  • La longitud del nombre de la carpeta ya no impide que se cargue una imagen en la Galería multimedia. La Galería multimedia ahora establece la columna de ruta como tipo text. GitHub-1778
  • El cargador de imágenes ahora muestra el tamaño de imagen correcto cuando se inserta una representación desde la Galería multimedia. GitHub-1806
  • La verificación de la ruta se ha agregado a Mediagallery complemento de cargador. Anteriormente, la validación fallaba y la aplicación no importaba productos cuando Habilitar la galería de medios antigua se ha deshabilitado. GitHub-30649
  • Magento_Cms::media_gallery Se han agregado y aplicado subrecursos ACL para la nueva galería de medios para admitir permisos configurados para las siguientes operaciones discretas:

    • Cargar recursos
    • Insertar recursos en el contenido
    • Eliminar recursos
    • Creación de carpetas
    • Elimine carpetas. GitHub-1487
  • Las cadenas de texto y los nombres de carpeta de la Galería multimedia larga ya no se recortan. Anteriormente, la aplicación mostraba texto recortado e imágenes y mostraba este mensaje: We couldn't find any records. GitHub-1763, GitHub-1758
  • La aplicación ya no muestra el Agregar selección cuando no se selecciona ninguna imagen mientras se edita el contenido de una página nueva. GitHub-1769
  • Los filtros ahora se aplican según lo esperado en la Contenido > Galería de medios Cuadrícula de categorías. GitHub-1763
  • La configuración de las opciones de multiplicación de puntos de interrupción de Gallery ahora funciona según lo esperado. Anteriormente, la configuración de las opciones de punto de interrupción no funcionaba correctamente porque mediaCheck se ha activado la función de consulta de medios de salida al cargar la página. GitHub-29933

MFTF

  • Se han reemplazado las acciones repetitivas por grupos de acción en CheckStaticBlocksTest. GitHub-30561
  • AdminUpdateCategoryAndMakeInactiveTest y VerifyChildCategoriesShouldNotIncludeInMenuTest han sido refactorizados para cumplir con las mejores prácticas de MFTF. GitHub-30058
  • Eliminados duplicados AdminOpenCMSBlocksGridActionGroup. GitHub-30896
  • Reemplazado AdminOpentCmsBlockActionGroup con AdminOpenCmsBlockActionGroup. GitHub-29839
  • Se han agregado grupos de acción a Analytics módulo. GitHub-29500
  • Actualizado CheckCheckoutSuccessPageAsRegisterCustomerTest y CheckCheckoutSuccessPageAsGuestTest para cancelar los pedidos creados después de ejecutar las pruebas. GitHub-28324
  • Eliminado AdminNavigateToPageGridActionGroup por redundancia. GitHub-29838
  • Un problema con StorefrontProductListWidgetWithSharedCatalogTest que omitió la prueba se ha resuelto. GitHub-322
  • Implementado ActionGroup para ir a la página de cierre de compra. GitHub-29843
  • Implementado AdminOpenCreateNewCMSPageActionGroup para navegar hasta crear una nueva página de CMS. GitHub-29824
  • Se han corregido problemas con la omisión en las pruebas MFTF para la página de CMS para Media Gallery. GitHub-30164
  • Se han añadido títulos y descripciones significativos a las pruebas MFTF para el Company, CompanyCredit, CompanyPayment, CompanyShipping, y ConfigurableSharedCatalog módulos. GitHub-30164

Nuevas pruebas

  • Se ha añadido una prueba para habilitar el correo electrónico a un amigo en el Administrador. GitHub-29145
  • Un administrador ha añadido una prueba para eliminar un bloque CMS de una cuadrícula. GitHub-30372
  • Se ha añadido una prueba para aplicar una regla del carro de compras a un solo elemento de paquete. GitHub-28921
  • Se han añadido pruebas para comprobar si Utilizado en La información de una imagen de la Galería multimedia se muestra después de eliminar la entidad. GitHub-1774

Nuevos grupos de acción

Newsletter

  • Los usuarios administradores ahora pueden editar una cuenta de cliente como se espera cuando el cliente se suscribe a un boletín informativo en cola. GitHub-30645
  • La aplicación ahora vuelve a enviar la confirmación de suscripción al boletín informativo si el comprador no confirma su suscripción. GitHub-28422
  • Ahora puede editar una cuenta de cliente como se espera cuando el cliente está suscrito a un boletín informativo en cola. GitHub-30645

Métodos de pago

  • Los métodos de pago ahora se cargan en el Administrador para todos los sitios web, tal como se espera en una implementación de varias tiendas.
  • La aplicación ya no muestra el Purchase Order number is a required field mensaje situado encima del campo de código de cupón antes de que el comprador introduzca información en implementaciones en las que el pedido de compra se ha configurado como la única opción de pago disponible.
  • La aplicación ahora completa pagos de Payflow Pro correctamente cuando el nombre del comprador contiene letras acentuadas. Anteriormente, el pago no se completaba y la aplicación registraba este error: report.CRITICAL: String to be escaped was not valid UTF-8 or could not be converted.
  • Los compradores invitados ahora pueden realizar pedidos de PayPal cuando Asignación automática al grupo de clientes está activada. El pago se procesa en la puerta de enlace de PayPal, el pedido se crea en el Magento y el comprador ve la página de agradecimiento del pedido. Anteriormente, el pedido se procesaba correctamente en la puerta de enlace de PayPal, pero no se creó en Adobe Commerce. En su lugar, se redirigió al comprador a la página de revisión de pedidos, donde la aplicación mostraba este error: Failed address validation: %1" error. GitHub-25399

PayPal

  • Los comerciantes ahora pueden realizar correctamente un pedido del administrador después de cambiar de un método de pago que utiliza una tarjeta de crédito a un método de pago que no sea de tarjeta de crédito. Anteriormente, cuando un comerciante hacía clic en Enviar pedido botón, el proceso de carga se inició pero nunca se completó y no se realizó el pedido.
  • La aplicación ya no crea pedidos duplicados cuando se realiza un pedido con PayPal Express. Anteriormente, cuando un comprador intentaba pagar un pedido con PayPal Express pero PayPal devolvía un error, la aplicación seguía creando el pedido. Esto resultó en pedidos duplicados en el sitio del comerciante. GitHub-13952
  • Los informes de liquidación de PayPal ya están disponibles en Informes > Ventas > Liquidación con PayPal como se esperaba. Anteriormente, la aplicación no mostraba estos informes en la cuadrícula del informe de liquidación de PayPal y mostraba este mensaje: We couldn't find any records.
  • Haciendo clic en PayPal botón durante la compra ya no déclencheur un redundante web-api llamada. Anteriormente se activaban dos solicitudes, lo que duplicaba el cargo del producto.

Rendimiento

  • Magento_Csp/Model/BlockCache se ha refactorizado para reducir el consumo de memoria y la generación de cadenas en caché innecesariamente grandes. Anteriormente, las páginas que incluían scripts y estilos en la lista blanca dinámica solían experimentar problemas de rendimiento. GitHub-29964
  • Hemos mejorado el rendimiento de las exportaciones programadas de catálogos que incluyen más de 100.000 productos que utilizan consumidores.
  • La aplicación ya no vacía la caché de categorías cuando se agrega o guarda un producto deshabilitado en una categoría. Anteriormente, la aplicación vaciaba la caché para categorías relacionadas a pesar del estado del producto, que afectaba al rendimiento del servidor.
  • Se ha mejorado el tiempo de carga de la página para actualizar la cantidad de productos en el carro de compras. Anteriormente, la aplicación ejecutaba varias consultas independientes para cada producto en el carro de compras, lo que aumentaba el tiempo de carga de la página.
  • Se ha agregado un indizador al Magento_Bulk Tabla MySQL, que ha mejorado el rendimiento de las operaciones por lotes.
  • La aplicación ahora almacena en caché los ID secundarios de los productos configurables. Esto ha mejorado el rendimiento de carga de página al reducir el número de solicitudes de base de datos. GitHub-30585
  • Se ha mejorado la carga del tablero de administración. Anteriormente, la aplicación mostraba los nombres de las pestañas como una lista antes de que la página terminara de cargarse.
  • Se ha mejorado la administración de la caché de Redis mediante la adición de límites de caducidad para las cachés de diseño. Anteriormente, las cachés de Redis alcanzaban rápidamente la memoria máxima asignada en implementaciones grandes y la aplicación arrojaba errores en las operaciones de escritura.
  • El rendimiento de la desprotección se ha mejorado eliminando una consulta de base de datos redundante en app/code/Magento/Catalog/Model/CategoryLink.php. GitHub-29453
  • Magento\Framework\DB\Adapter\Pdo\Mysql->isTableExists se ha refactorizado para mejorar el rendimiento. Llamadas redundantes a SHOW TABLE STATUS para comprobar la existencia de una tabla se han reducido. GitHub-29662
  • getPageLayoutsConfig ahora se guarda en caché, lo que mejora el rendimiento del generador de configuración. GitHub-29546
  • Se ha mejorado el rendimiento de Adobe Commerce durante las operaciones de edición y guardado de segmentos de clientes que contienen más de 3 000 000 de clientes.

Persistente

  • Los compradores ya no pueden realizar un pedido después de que la cookie de sesión haya caducado cuando el carro de compras persistente esté habilitado. En su lugar, la aplicación muestra la página de inicio de sesión para que el comprador pueda iniciar sesión. Anteriormente, la aplicación realizaba el pedido. La aplicación no validó correctamente el cliente persistente cuando PHPSESSID habían caducado, y customerSession se ha vuelto a crear a partir de la información persistente.
  • La aplicación ahora muestra el mensaje de bienvenida como se espera después de que un comprador inicie sesión en una tienda en la que esté habilitado el carro de compras persistente. Anteriormente, la aplicación mostraba el ¿Tú no? después de iniciar sesión.
  • La aplicación ya no muestra el ¿Tú no? cuando un cliente selecciona la variable Recordar mis datos opción al iniciar sesión en una implementación en la que esté habilitado el carro de compras persistente.
  • La aplicación ya no muestra el contenido del carro de compras de un cliente una vez caducada la sesión del cliente. Anteriormente, la aplicación mostraba este error cuando un cliente invitado intentaba cerrar la compra cuando el carro de compras persistente estaba habilitado: No such entity with cartid = 0.

Precio

  • Las actualizaciones de precios asíncronas consecutivas ya no interfieren entre sí y se asigna el estado correcto a cada operación. Anteriormente, si fallaba una actualización de precios asincrónica, todas las siguientes actualizaciones de precios asincrónicas fallaban hasta que se reiniciara el consumidor de cola correspondiente. GitHub-27865

Informes

  • Informes > Marketing > Productos en carros de compras ahora solo muestra el registro en el ámbito permitido del usuario que está generando el informe. Anteriormente, todos los datos estaban disponibles para todos los ámbitos.
  • La aplicación ahora utiliza la moneda especificada en el ámbito de función del comerciante que genera el informe al mostrar la moneda del producto en el informe Productos en el carro de compras.
  • Las funciones de producto Vistos recientemente y Comparados recientemente ahora muestran estadísticas para diferentes tiendas y sitios web en el administrador, tal como se espera en una implementación de varias tiendas. Anteriormente, estas funciones no tenían en cuenta todas las tiendas o sitios web.
  • Los informes Precios en pedido ahora utilizan el símbolo de divisa correcto.
  • La aplicación ahora comprueba la existencia de un token cuando un usuario hace clic en el panel de administración Ir al informe avanzado botón. Si el token existe, la aplicación muestra la página Informes avanzados. Si el token no está configurado, la aplicación muestra una página informativa en la Guía del usuario. GitHub-25411

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

  • Las opciones seleccionadas ahora se aplican a los elementos de línea divididos al dividir una autorización de devolución de material. Anteriormente, los valores de Motivo de devolución, Condición del artículo y Resolución no se guardaban.
  • Ahora puede eliminar la información de seguimiento y envío de una RMA cuando el agrupamiento de JavaScript está habilitado.
  • Los administradores con acceso restringido solo a productos en un ámbito de sitio web específico ahora pueden agregar un elemento a una devolución aunque ese elemento ya no esté en el ámbito de su sitio web.

Críticas

  • El número de clasificaciones mostradas en Tiendas > Atributo > Clasificación ahora coincide con el recuento de clasificaciones en una implementación de varios sitios. GitHub-30258
  • La página Nueva revisión ahora se carga según lo esperado al hacer clic en Nueva revisión botón en Administración Marketing > Todas las críticas. Al hacer clic en un producto de esta página, se abre el nuevo formulario de revisión esperado para ese producto.
  • La aplicación ya no genera este error cuando intenta editar una solicitud del administrador Marketing > Todas las críticas: Uncaught TypeError: Event.observe is not a function. GitHub-30388

Recompensas

  • Los puntos de recompensa ahora se calculan como se espera para las órdenes gravables cuando finaliza una orden parcial.
  • Los comerciantes ahora pueden emitir con éxito un reembolso parcial por un pedido que se compró con puntos de recompensa y aún así reembolsar posteriormente el resto del pedido. Anteriormente, los comerciantes no podían reembolsar los puntos de recompensa por el resto del pedido.
  • La aplicación ya no muestra este error cuando un comprador vuelve a aplicar los puntos de recompensa después de eliminarlos: You removed the reward points from this order.
  • Ahora, los puntos de recompensa se calculan correctamente cuando un cliente realiza un pedido en una tienda que admite varias monedas utilizando una moneda no base.

Ventas

  • El order_created_at de la columna sales_shipment_grid ahora se actualiza según lo esperado después de cada actualización.
  • Ahora puede reordenar correctamente un producto con una fecha de opciones personalizadas de una tienda para la que Usar calendario JavaScript está activada. Anteriormente, cuando intentaba volver a ordenar, la aplicación no agregaba el elemento al carro de compras y mostraba este error: Could not add the product with SKU "simp1" to the shopping cart: Please specify date required option(s).
  • La aplicación ya no cierra inmediatamente un pedido cuando un comprador extrae un pedido que consta de un producto virtual con un coste total de 0 $ en implementaciones en las que el método de extracción de subtotales cero está habilitado.
  • La aplicación ya no archiva una solicitud antes de procesarla. Anteriormente, la acción de selección múltiple en la cuadrícula de orden de administración afectaba a los pedidos no seleccionados.
  • La cuadrícula de notas de crédito ahora muestra el símbolo de moneda correcto cuando el Rial saudí (SAR) está establecido como moneda base.
  • La aplicación ahora muestra de forma consistente la información de la dirección de envío según lo esperado en la página de pedidos durante el cierre de compra.
  • El valor de total_qty ahora coincide con el valor de total_qty_ordered en facturas de ventas.
  • El envío asincrónico de correos electrónicos de ventas ahora envía correos electrónicos solo para los pedidos creados después de la fecha de la última actualización. Anteriormente, la aplicación no filtraba los correos electrónicos por fecha cuando el envío asincrónico estaba habilitado.
  • La aplicación ahora envía el correo electrónico de factura según lo esperado cuando se realiza un pedido desde el administrador.
  • La aplicación ahora borra los datos de pedidos existentes durante una sesión en la que un comerciante crea un nuevo pedido para un cliente desde el administrador.
  • Ahora puede cambiar el grupo de clientes para los nuevos clientes que se crean mediante un pedido de administrador cuando Habilitar la asignación automática al grupo de clientes está activada. También puede asignar un grupo de clientes en función de la validación de IVA. Anteriormente, al validar el número de IVA, el objeto de solicitud no comprobaba la solicitud asignada group_id. De forma predeterminada, utiliza el valor predeterminado group_id.
  • La aplicación ya no cambia el estado de un pedido personalizado con Suspected Fraud estado a Processing después de que un comerciante cree un envío parcial utilizando la API de REST.

Regla de ventas

  • Los códigos de cupones que se han aplicado en función del método de envío ya no se aplican cuando un comprador cambia el método de envío. Anteriormente, la aplicación no borraba los códigos de cupones cuando los compradores cambiaban de método de envío.
  • Los compradores no pueden aplicar un código de cupón con más frecuencia que el Usos por cliente permisos de configuración. Anteriormente, si un comprador tenía varias ventanas de navegador abiertas y realizaba varios pedidos simultáneamente, cada pedido recibía el descuento, aunque la variable Usos por cliente la configuración tenía un valor de 1.

Buscar search-heading

  • Elasticsearch ya no genera un error de modificador desconocido cuando un comprador busca un sinónimo de búsqueda. Anteriormente, el escape carecía de un símbolo de barra diagonal de escape en las expresiones regulares, lo que resultaba en un error grave.
  • La búsqueda avanzada ya no devuelve los elementos secundarios de los productos configurables como resultados de búsqueda individuales cuando los productos secundarios se configuraron con la visibilidad establecida en No visible individualmente.
  • El tipo de nombres de productos del Elasticsearch en los resultados de búsqueda ya no distingue entre mayúsculas y minúsculas.
  • La página de resultados de búsqueda ahora se almacena en caché como se espera cuando el establezca el Número de resultados de búsqueda principales en caché en 0 La configuración está habilitada en Administración Tiendas > Configuración > Catálogo > Catálogo > Búsqueda en catálogo.
  • El indexador de búsqueda en el catálogo ahora se ejecuta sin arrojar un error debido al límite del campo del Elasticsearch. Anteriormente, la aplicación arrojaba este error: Limit of total fields [xxx] in index [m24dev_product_1_v10] has been exceeded.
  • El rendimiento de la búsqueda en el catálogo ha mejorado. Desactivando Activar sugerencias de búsqueda (Tiendas > Configuración > Catálogo > Búsqueda en catálogo ) funciona según lo esperado. Anteriormente, la aplicación consultaba MySQL search_query en lugar del Elasticsearch para las sugerencias de búsqueda autocompletada. GitHub-25534
  • El Elasticsearch ahora filtra los precios del producto igual que MySQL. El tipo de campo price_* se cambió de float hasta double en el índice del Elasticsearch para mejorar la precisión y corregir un error de punto flotante.
  • Se ha agregado un detector de eventos de keydown al administrador para activar el formulario de búsqueda global cuando se introduce una barra diagonal. GitHub-29551
  • El Elasticsearch ya no genera un error y, en su lugar, no muestra ningún producto como se espera cuando un string se utiliza para filtrar productos por atributo con un integer o decimal tipo de servidor. Anteriormente, la aplicación mostraba este error en exception.log: number format exception.
  • El Elasticsearch ya no genera una excepción cuando un término de búsqueda contiene una /. GitHub-25886, GitHub-25110

  • La búsqueda ahora está desactivada tal como se espera para un grupo de clientes seleccionado de la consulta de productos cuando la variable No permitir búsqueda en el catálogo por La configuración de en Permisos generales de categorías está habilitada. GitHub-29927

  • Los resultados de la búsqueda ya no incluyen varias comillas de la misma palabra. GitHub-30104

Envío

  • El proceso de cierre de compra ya no falla cuando una interrupción de la red interrumpe la conexión con el método de envío DHL. La aplicación muestra otros métodos de envío disponibles. Anteriormente, el proceso de cierre de compra se bloqueaba cuando se interrumpió la conexión con el envío de DHL y la aplicación mostraba este error: Sorry, no quotes are available for this order at this time. GitHub-29902
  • Los campos que describen el método de envío de UPS en Administración Tiendas > Configuración > Ventas > Métodos de envío ahora están activados según lo esperado.
  • Envíos creados a través del POST /rest/V1/shipment el punto final ahora actualiza las solicitudes correctamente. Anteriormente, la aplicación creaba un envío, pero el estado del envío permanecía en el estado de procesamiento.
  • La aplicación ya no elimina los productos simples del carro de compras cuando se elimina otro producto del carro de compras antes de cerrar la compra con Enviar a varias direcciones. GitHub-30259
  • La página Revisión de Pedidos ahora muestra el importe de impuestos antes del importe de envío como se espera para los pedidos que se envían a varias direcciones.
  • El seguimiento del envío de UPS ahora indica un estado de Delivered On solo cuando se ha entregado un paquete. GitHub-30032
  • La aplicación ahora muestra el subtotal correcto del carro de compras para los pedidos que contienen un producto virtual cuando el comprador vuelve al carro de compras desde la comprobación con varias direcciones.
  • Los comerciantes ahora pueden crear una etiqueta de envío desde la página de envío para un pedido existente que utilice envío de FedEx cuando el agrupamiento de JavaScript esté habilitado. Anteriormente, la aplicación arrojaba un error cuando el comerciante hacía clic en Crear etiqueta de envío botón.
  • El vínculo de seguimiento de envío del correo electrónico de confirmación de envío enviado a los clientes ahora funciona según lo esperado. Anteriormente, este vínculo devolvía un error 404.
  • La aplicación ahora muestra un mensaje de error informativo cuando un comprador cierra la compra con varias direcciones y, a continuación, elimina todos los productos que no sean un producto virtual. GitHub-25595
  • Ahora puede crear una etiqueta de envío como se espera para un pedido parcial. Anteriormente, cuando se intentaba crear una etiqueta de envío para un solo artículo de un pedido, la aplicación añadía todos los productos al paquete y la validación fallaba. GitHub-29552
  • La validación del método de envío ya no se omite al llamar a /V1/guest-carts/:cartId/totals-information. GitHub-25147

Sitemap

  • Mapas del sitio generados por cron ahora incluya las direcciones URL de imagen correctas. Anteriormente, la ruta de la imagen en caché generada era incorrecta en implementaciones de varias tiendas.

Ensayo

  • La página Editar página de inicio ahora muestra todas las actualizaciones programadas tal como se espera cuando se buscan actualizaciones programadas en la página de inicio. Anteriormente, la aplicación solo mostraba una de varias actualizaciones programadas.
  • Enviando 0 con el /rest/V1/products/special-price-information el punto final de precio especial ahora guarda el precio y devuelve el programa según lo esperado.
  • Las importaciones programadas ahora se ejecutan como se espera cuando el archivo CSV de importación contiene una marca de orden de bytes (BOM).
  • La aplicación ya no elimina la clase de cuerpo del diseño cuando un comerciante programa una actualización de categoría.
  • Los cambios reprogramados del producto ahora ya no se borran después de un cron correr.
  • La aplicación ya no genera un error cuando intenta programar una actualización para una categoría. Anteriormente, la aplicación arrojaba este error al hacer clic en Guardar en la página Programar nueva actualización: Something went wrong while saving the Magento\Catalog\Api\Data\CategoryInterface.
  • El rest/V1/products/special-price Ahora, la API se puede utilizar para programar precios especiales de productos para varias tiendas. Anteriormente, la aplicación arrojaba un error cuando un comerciante programaba una actualización de precios para varias tiendas para el mismo from y to hora a la que está disponible una reversión en la hora de inicio de la nueva programación.

Almacenar

  • El Administrador y el conmutador de tienda principal ahora reflejan los cambios realizados en el orden de clasificación de tiendas en el Administrador. GitHub-13401
  • La aplicación ahora crea direcciones URL correctas para categorías y productos después de cambiar la clave URL de nivel superior de una vista de tienda. Anteriormente, cuando el árbol de categorías de una vista de tienda contenía cambios url_keysSin embargo, si una clave de categoría no ha cambiado pero sí la clave de los elementos principales de la categoría, el código original utilizaría la vista de tienda predeterminada de la categoría al crear direcciones URL. GitHub-28633

Reglas de destino

  • Se ha optimizado la carga de páginas de detalles del producto. Hemos añadido índices para tablas de base de datos que optimizan las consultas de condiciones de regla de destinatario para muchos casos.
  • Las reglas de Target para productos relacionados ahora funcionan cuando la variable is one of La condición que se utiliza para la función Productos para mostrar contiene varias condiciones. Anteriormente, cuando esta condición contenía varios valores, no se analizaba.

Impuestos

  • La validación del IVA en un pedido de invitado ya no hace que la aplicación guarde la oferta con una clase de impuestos de cliente incorrecta. GitHub-30018
  • Los pedidos que se envían a varias direcciones ahora se pueden guardar durante el cierre de compra cuando se configura FTP. Anteriormente, después de completar un pedido para varias direcciones, la aplicación mostraba una página en blanco en lugar de la página de éxito del pedido.
  • Las páginas de detalles de productos de la tienda ahora muestran los precios nuevos y antiguos con y sin impuestos según lo esperado. GitHub-27500, GitHub-11998

Prueba

  • bin/magento dev:tests:run ahora inicia las siguientes pruebas según lo esperado: all, unit, integration, integration-all, static, static-all, integration, legacy y default.
  • AdminMediaGalleryInsertLargeImageFileSizeTest se ha refactorizado.
  • Las pruebas unitarias ahora son compatibles con PHPUnit 8. GitHub-29779
  • \Magento\TestFramework\TestCase\WebapiAbstract ahora contiene una función que admite la comparación de matrices anidadas grandes de resultados esperados y reales en pruebas. Ahora se pueden ignorar las claves irrelevantes del resultado. GitHub-29498
  • AdminMediaGalleryCatalogUiEditCategoryGridPageTest ya no falla aleatoriamente. GitHub-1764
  • dev/tests/integration/testsuite/Magento/Customer/Controller/AccountTest se ha mejorado. (assert ahora se basa en XPath selector en lugar de assertStringContainsString.) GitHub-29700
  • Se ha añadido cobertura de prueba para AdminAnalytics módulo. GitHub-29500
  • Las pruebas funcionales de integración y API ahora son compatibles con PHPUnit 9.3. GitHub-30146
  • Problemas corregidos con GraphQL testRequestCacheTagsForCategoryListOnMultipleIds prueba. GitHub-29372
  • Se ha automatizado la prueba de disponibilidad de moneda para el crédito de la compañía.
  • Los valores de encabezado que incluyen direcciones URL ahora se analizan correctamente en ApiFunctional TestFramework. GitHub-26425
  • —no-tablespaces se ha añadido a todas las ocurrencias de mysqldump, que permite ejecutar pruebas de integración sin el PROCESS (requerido desde MySQL 5.7.31 / 8.0.21 para ejecutarse) mysqldump de forma predeterminada). GitHub-30566

Tema

  • Un nuevo --no-parent se ha añadido el indicador a bin/magento setup:static-content:deploy que impide que se compilen los elementos primarios de una temática. Este nuevo indicador le permite mejorar significativamente el rendimiento del proceso de implementación de contenido estático al evitar una compilación innecesaria. Tenga en cuenta que este nuevo indicador no funciona al utilizar el compact estrategia. GitHub-30184
  • La configuración de diseño ya no genera operaciones DDL. Anteriormente, cuando se actualizaba la configuración de diseño, la aplicación generaba instrucciones DDL que podían almacenar en déclencheur errores de MySQL.
  • Código redundante en el Magento_ConfigurableProduct se ha eliminado del módulo de en la temática Administrador. GitHub-29857
  • Se han eliminado la navegación de estilos menos redundantes y las propiedades no utilizadas en la temática en blanco. GitHub-29914
  • Se ha agregado la funcionalidad de navegación contraíble a la temática En blanco en la vista móvil. GitHub-30237
  • Se ha optimizado la carga de fuentes web para temáticas. GitHub-29526
  • Los desarrolladores ahora pueden especificar el tipo de fuente al declarar una fuente personalizada en un tema. GitHub-29719

Traducción y configuraciones regionales

  • El Selector de fecha de cuadrícula de pedidos del administrador ahora funciona según lo esperado cuando la configuración regional del administrador es árabe (ar_SA - Saudi Arabia).
  • La aplicación ya no muestra un mensaje de error cuando un comprador introduce una dirección argentina con un código postal válido al registrar o añadir una nueva dirección. Anteriormente, la aplicación mostraba este error: Provided Zip/Postal Code seems to be invalid. Example: 1234. If you believe it is the right one you can ignore this notice.
  • La aplicación ya no genera un error cuando un comprador introduce un código postal de cinco dígitos para una dirección coreana.
  • zip_codes.xml se ha actualizado para aplicar ocho dígitos a los códigos postales brasileños. GitHub-29984
  • Se ha mejorado la localización de las frases no localizadas restantes. GitHub-11175
  • Ahora se puede traducir el marcador de posición de entrada de búsqueda de cuadrícula. GitHub-30510
  • La aplicación ahora descarga módulos JavaScript de traducciones en línea solo cuando están activados. GitHub-29553

IU

  • El Crear una cuenta en la página Crear nueva cuenta permanece activo cuando un comprador introduce datos no válidos. Anteriormente, este botón estaba desactivado, lo que impedía a los compradores volver a intentar crear una cuenta después de cometer un error. Este era un problema conocido en 2.4.1. GitHub-30513
  • Se ha mejorado la carga de la cuadrícula de envío en la página Editar pedido de administrador.
  • La aplicación ahora muestra el Igual Que Dirección De Facturación casilla de verificación según lo esperado en la página de pedidos cuando el SKU ha agregado productos al carro de compras.
  • La clase CSS que definió la anchura limitada ahora se aplica como se espera a la Hora de inicio campos de administración Almacenar > Configuración > Catálogo > Mapa del sitio XML > Configuración de generación. GitHub-29496
  • Se han corregido los problemas de visualización con la etiqueta de casilla de verificación Términos y condiciones. GitHub-24060
  • La aplicación ya no muestra el código CSS de un bloque de precios de nivel en la página del producto cuando los precios de nivel no están disponibles. GitHub-29194
  • La posición de los botones en la página de detalles de la vista de imagen se ha reorganizado para ajustarse a las directrices de la interfaz de usuario. GitHub-1783
  • El campo de texto del código de cupón ahora se muestra con la anchura adecuada en los exploradores Internet Explorer/EDGE.
  • El @button__border-radius ahora se define en la variable lib/web/css/source/lib/variables/_buttons.less biblioteca. border-radius tiene un valor predeterminado de 3px. Anteriormente, border-radius estaba codificado. GitHub-28674
  • El botón de envío de búsqueda (lupa) del campo de búsqueda mini ahora está desactivado hasta que se alcance la longitud mínima de la cadena de búsqueda. GitHub-29704
  • El Previsualizar plantilla ahora funciona como se espera en la página Editar cola.
  • Se ha ajustado la posición del cursor desde el centro hasta el principio del Mensaje field on Mi cuenta > Registro de regalos > Compartir registro de regalos.
  • Se han resuelto los problemas de visualización con el diseño de columna en la página Agregar exportación programada.
  • La aplicación ahora conserva el valor de un atributo cuando se mueve el atributo de un grupo a otro.
  • La aplicación ahora muestra un icono de calendario junto al Fecha como se espera en la página de la tienda Crear una cuenta.
  • Se ha añadido una variable de peso de fuente a lib/web/css/source/lib/variables/_typography.less. GitHub-29778
  • La visibilidad del filtro ahora funciona con la visibilidad de la columna como se espera en las cuadrículas de administración. GitHub-30345
  • El banner que la aplicación muestra en la página Admin Login as Customer ahora permanece en la parte superior de la página cuando el usuario se desplaza. GitHub-29354
  • Las opciones de componentes de selección de IU ya no están visibles cuando this.disabled(true) está configurado. GitHub-29098
  • El @font-family-name__base ya no se utiliza al cargar la fuente Open Sans. GitHub-29515
  • El atributo WAI-ARIA aria-atomic="true" se ha añadido a la etiqueta contenedora de errores. GitHub-29560
  • Las cuadrículas de componentes de la IU ahora muestran un recuento preciso de los elementos seleccionados. Anteriormente, las cuadrículas indicaban un número incorrecto de selecciones cuando una búsqueda por palabra clave seleccionaba todos los elementos de cuadrícula y el comprador posteriormente anulaba la selección de algunos elementos antes de seleccionar la casilla de verificación del encabezado. GitHub-29968
  • La aplicación ya no muestra el HTML no procesado en las páginas de resumen de facturas y envíos. GitHub-29958
  • Clic Opciones en el Administrador Tiendas > Tipos de cambio ahora dirige a los usuarios a la sección de opciones de moneda expandidas de la página de configuración del sistema. GitHub-29336
  • Compatibilidad mejorada para mostrar un widget en función de otra condición para adminhtml widgets al utilizar un tipo de widget de selector. GitHub-13316, GitHub-7252, GitHub-6868
  • Se ha mejorado el relleno de texto en los cuadros de diálogo emergentes de confirmación de la temática de Luma. GitHub-30452

Bóveda

  • El Vault ahora reconoce los códigos de método de pago de la solicitud del servicio de gestión de información de pago. Anteriormente, cuando un comprador realizaba un pedido con una tarjeta de crédito de Braintree guardada, la aplicación arrojaba este error incluso cuando se utilizaba un método de pago válido: The requested Payment Method is not available.

Vértice

  • Las sugerencias de direcciones ahora se eliminan según lo esperado cuando se modifica una dirección.

  • Se ha resuelto una condición de carrera que impedía que algunos clientes guardaran su dirección en el panel de cuenta.

  • La validación de direcciones de vértice ya no agrega la página Editar dirección a la caché de página completa en determinadas condiciones.

  • El impuesto calculado por vértice ahora se considera cuando el envío gratuito está configurado para un importe que incluye impuestos.

Marco de API web

  • Ahora puede utilizar el POST V1/invoice/:invoiceId/refund para reembolsar una factura que tenga una cantidad cero de productos y gastos de envío cero (por ejemplo, {"items": [{"qty": 0, "orderItemId": 6, "extensionAttributes": {}}], "appendComment": false, "notify": true, "isOnline": true, "arguments": {"adjustment_negative": 0.0, "adjustment_positive": 0.99, "shipping_amount": 0}}. ) Anteriormente, la aplicación arrojaba este error: You can't create a creditmemo without products. GitHub-23069
  • Ahora puede utilizar el POST V1/categories para crear o actualizar una categoría. Anteriormente, la aplicación no guardaba el valor si la variable default_sort_by el valor se ha establecido como una matriz. Si la variable default_sort_by se ha establecido como una cadena, la aplicación ha devuelto este error: Error occurred during \"custom_attributes\" processing. Attribute \"default_sort_by\" has invalid value. The \"string\" value's type is invalid. The \"string[]\" type was expected. Verify and try again.
  • Uso del POST V1/invoices/:id/capture para capturar la información de pago ahora funciona según lo esperado. Anteriormente, la aplicación autorizaba el pedido, pero lo capturaba únicamente en el sitio de la pasarela de pago.
  • Cuando use POST V1/order/:orderId/ship para crear un envío parcial, el punto final devuelve el número correcto de productos enviados.
  • Facturas creadas con el POST V1/order/:orderID/invoice ahora refleja con precisión el pago parcial por crédito de tienda. Anteriormente, cuando se pagaba parcialmente un pedido con crédito de tienda, la factura se creaba sin tener en cuenta el crédito de tienda.
  • El GET rest/all/V1/categories y GET rest/all/V1/categories?rootCategoryId=2 las llamadas ahora devuelven rellenadas name y product_count según lo esperado para todas las categorías del árbol. Anteriormente, los valores de los campos de categoría estaban vacíos. El complemento solucionador de nombres de tabla devolvió un nombre de tabla incorrecto para recuperar el recuento de productos por categoría.
  • El PUT V1/categories/:id El punto de conexión ahora almacena los datos necesarios para crear redirecciones 301 para claves URL de categoría cuando el save_rewrites_history se ha proporcionado un atributo personalizado. GitHub-29174, GitHub-30240

Lista de deseos

  • Los compradores ahora pueden agregar un producto a una lista de deseos cuando el producto se asigna a un origen de inventario personalizado. GitHub-3018
  • Los administradores ahora pueden acceder a la página Administrar carro de compras desde la página Administrador del cliente después de que un cliente haya agregado un producto a su lista de deseos desde la tienda. Anteriormente, la aplicación mostraba el siguiente error cuando el administrador hacía clic en Administrar carro de compras botón: An error has occurred. See error log for details.
  • El Añadir al carro de compras El botón de la página de lista de deseos compartidos ahora funciona según lo esperado para usuarios anónimos, invitados y usuarios que no han iniciado sesión.
  • Los compradores ahora pueden mover correctamente un producto de una lista de deseos a otra.
  • La aplicación ahora muestra las opciones de atributos de producto configurables seleccionadas en la página de la lista de deseos según lo esperado. GitHub-24091, GitHub-22503
  • Implementado ActionInterface para \Magento\Wishlist\Controller\Shared\Allcart. GitHub-29537

Problemas conocidos

Problema: La [magento_root]/index.php se ha eliminado y la aplicación ahora se ejecuta desde /pub de forma predeterminada para las configuraciones de Apache. Las tiendas que se proporcionan desde subcarpetas no funcionarán según lo esperado y pueden mostrar errores 404. Solución: utilice enlaces simbólicos para emular la instalación en subcarpetas. El ejemplo siguiente utiliza dos almacenes (https://shop01.com/shop/ y https://shop02.com/shop/) para ilustrar cómo utilizar un enlace simbólico para emular una instalación en subcarpetas.

  1. Crear un subdirectorio para https://shop01.com/shop/:

    code language-bash
    mkdir magento_root/pub/shop01
    
    code language-bash
    cd magento_root/pub/shop01
    
  2. Cree enlaces simbólicos para los directorios principales del almacén en el directorio recién creado:

    code language-bash
    ln -s ../media media
    
    code language-bash
    ln -s ../static static
    
    code language-bash
    ln -s ../../../pub pub
    
    code language-bash
    ln -s ../.htaccess .htaccess
    
    code language-bash
    ln -s ../health_check.php health_check.php
    
  3. Crear un index.php dentro del nuevo directorio (magento_root/pub/shop01/index.php) y añada este contenido:

   <?php
   require realpath(__DIR__) . '/../../../app/bootstrap.php';

   switch ($_SERVER['HTTP_HOST']) {
       case 'shop01.com':
       case 'www.shop01.com':
           $params = $_SERVER;
           $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = 'shop01';
           $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = 'website';
           $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
           $app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
           $bootstrap->run($app);
           break;

       default:
           $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
           /** @var \Magento\Framework\App\Http $app */
           $app = $bootstrap->createApplication(\Magento\Framework\App\Http::class);
           $bootstrap->run($app);
       break;
   }
  1. Configure el servidor Apache para que apunte al nuevo subdirectorio. Las configuraciones de implementación pueden variar considerablemente. Este es un ejemplo de configuración del servidor:
   <VirtualHost *:80>
       DocumentRoot "magento_root/pub/shop1"
       ServerName shop01.com
   </VirtualHost>

Problema: los comerciantes deben activar la funcionalidad Fastly Force TLS desde el administrador para habilitar el redireccionamiento HTTP a HTTPS global para todas las páginas de la tienda. Consulte la Redirigir HTTP a HTTPS para todas las páginas en la nube (forzar TLS) Artículo de la Base de conocimiento.

Problema: no puede utilizar el addConfigurableProductToCart Mutación de GraphQL para agregar un producto configurable a un carro de compras en una vista de tienda no predeterminada en una implementación de varias tiendas que ejecuta Inventory. (Las tiendas de Luma no se ven afectadas). la aplicación muestra este error: Could not add item to cart. Please check required options and try again. Solución: utilice el addProductsToCart en su lugar. GitHub-31660

Problema: La aplicación no envía información de pago como se espera cuando un comprador introduce por primera vez un código correcto en el campo CAPTCHA de la página Pago, pero muestra el siguiente error: There has been an error processing your request. Esto solo ocurre cuando el comprador intenta realizar el pedido sin introducir el código CAPTCHA o introduciéndolo de forma incorrecta. Solución: Actualice la página.

Problema: la aplicación crea un pedido en Braintree como se espera cuando un comprador hace clic en Pagar con Venmo, pero no crea el orden en el Administrador. Solución: Ninguno. Consulte la 2.4.2 problema conocido: el pago Venmo de Braintree no funciona Artículo de la Base de conocimiento.

Problemas conocidos de B2B

Problema: Los compradores de B2B pueden utilizar métodos de pago en línea para evitar el flujo habitual de órdenes de compra. Este escenario se puede producir si el comprador puede reducir el total del pago a un 0 (por ejemplo, mediante un código de promoción o una tarjeta regalo) y, posteriormente, eliminar el código o la tarjeta regalo. Incluso en esas condiciones, la solicitud sigue haciendo el pedido de la cantidad correcta en función de los precios de los artículos en el catálogo asignado. Solución: Deshabilitar las tarjetas regalo y los códigos de cupón cuando los métodos de pago en línea estén habilitados para la aprobación de pedidos de compra.

Problema: se redirige a los compradores al carro de compras cuando intentan realizar un pedido desde un pedido de compra mediante Pago y envío exprés de PayPal cuando Modo en contexto está deshabilitada.

Problema: la aplicación a veces muestra un error 404 cuando un comprador crea un pedido de compra y luego navega a la página de pago. Este error se produce cuando un comprador ha creado previamente un pedido de compra diferente con un método de pago en línea antes de navegar a la página de pago sin completar la compra anterior. El comprador aún puede realizar el pedido de compra. Solución: Ninguno.

Problema: Los descuentos de un método de pago específico persisten durante el pago de un pedido, incluso cuando el comprador cambia su método de pago durante el pago final. Como resultado, los clientes pueden recibir un descuento al que no tienen derecho. Esto ocurre porque se sigue aplicando una regla de carro de compras para el método de pago original a pesar del cambio en el método de pago. Solución: Ninguno. Consulte la 2.4.2 Problema conocido de B2B: queda descuento para pedidos de compra en línea después de cambiar el método de pago Artículo de la Base de conocimiento.

Problema: La deleteRequisitionListOutput consulta devuelve detalles sobre la lista de solicitudes eliminada en lugar de las listas de solicitudes restantes.

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 personas y socios que más contribuyen por mes, trimestre y año. Desde esa página de colaboradores, puede seguir los vínculos a sus PR fusionadas en GitHub.

Contribuciones de socios

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

Socio
Solicitudes de extracción
Problemas relacionados con GitHub
Atwix
magento/magento2#29630, magento/magento2#29459, magento/magento2#29703, magento/magento2#29460, magento/magento2#29042, magento/magento2#29482, magento/magento2#28821, magento/partners-magento2ee#260, magento/magento2#29148, magento/magento2#29634, magento/magento2#29832, magento/magento2#29830, magento/magento2#29829, magento/magento2#29828, magento/magento2#29821, magento/magento2#29820, magento/magento2#29836, magento/magento2#29831, magento/magento2#29822, magento/magento2#28653, magento/magento2#27391, magento/magento2#29833, magento/magento2#29904, magento/partners-magento2ee#264, magento/partners-magento2ee#248, magento/partners-magento2ee#168, magento/magento2#29929, magento/magento2#29962, magento/partners-magento2ee#329, magento/magento2#29931, magento/partners-magento2ee#316, magento/magento2#29835, magento/magento2#29834, magento/magento2#30081, magento/magento2#30030, magento/magento2#29827, magento/magento2#30049, magento/magento2#30217, magento/magento2#27939, magento/partners-magento2ee#279, magento/magento2#30222, magento/partners-magento2ee#349, magento/magento2#29868, magento/partners-magento2ee#346, magento/magento2#30079, magento/magento2#30317, magento/magento2#30633, magento/magento2#30619, magento/magento2#30359, magento/magento2#30223, magento/magento2#30630, magento/magento2#29675, magento/magento2#30777, magento/magento2#30528, magento/magento2#30525, magento/magento2#30779, magento/magento2#30529, magento/magento2#30694, magento/partners-magento2ee#400, magento/partners-magento2ee#401
magento/magento2#29649, magento/magento2#29712, magento/magento2#29501, magento/magento2#29145, magento/magento2#29500, magento/magento2#28520, magento/magento2#28558, magento/magento2#29648, magento/magento2#29843, magento/magento2#29845, magento/magento2#29846, magento/magento2#29847, magento/magento2#29824, magento/magento2#29823, magento/magento2#29841, magento/magento2#29844, magento/magento2#29825, magento/magento2#29531, magento/magento2#29601, magento/magento2#29839, magento/partners-magento2ee#28551, magento/magento2#29940, magento/magento2#29982, magento/magento2#29941, magento/magento2#29842, magento/magento2#29838, magento/magento2#30103, magento/magento2#30032, magento/magento2#29848, magento/magento2#30058, magento/magento2#30031, magento/magento2#30061, magento/magento2#30561, magento/magento2#30469, magento/magento2#30468, magento/magento2#30372, magento/magento2#30683, magento/magento2#30624, magento/magento2#29168, magento/magento2#30783, magento/magento2#30916, magento/magento2#30917, magento/magento2#30782, magento/magento2#30926, magento/magento2#30625, magento/partners-magento2ee#30474, magento/partners-magento2ee#410
Blue Acorn iCi
magento/magento2#29670, magento/magento2#29669, magento/magento2#29564, magento/magento2#27494, magento/magento2#29269, magento/magento2#27609, magento/magento2#29688, magento/magento2#29081, magento/magento2#28379, magento/magento2#29722, magento/magento2#27077, magento/magento2#30318, magento/magento2#30010
magento/magento2#29672, magento/magento2#29673, magento/magento2#29679, magento/magento2#29537, magento/magento2#25595, magento/magento2#29689, magento/magento2#28154, magento/magento2#28428, magento/magento2#27397, magento/magento2#29729, magento/magento2#29558, magento/magento2#25110, magento/magento2#25886, magento/magento2#28286, magento/magento2#30009
Comwrap
magento/magento2#29814, magento/magento2#29751, magento/partners-magento2ee#337, magento/partners-magento2ee#328, magento/partners-magento2ee#319, magento/magento2#30118, magento/magento2#30019, magento/magento2#29998, magento/magento2#29883
magento/magento2#29718, magento/magento2#29372, magento/magento2#29927, magento/magento2#29930, magento/magento2#29926, magento/magento2#29880
Gato blanco rápido
magento/magento2#29413, magento/magento2#28163, magento/magento2#30320, magento/magento2#30355, magento/magento2#28157, magento/magento2#30114
magento/magento2#24060, magento/magento2#13401, magento/magento2#11175, magento/magento2#30296, magento/magento2#22503, magento/magento2#24091, magento/magento2#30073
Vaimo
magento/magento2#29339, magento/magento2#28676, magento/magento2#29885
magento/magento2#28633, magento/magento2#29890
Cedcommerce
magento/magento2#27602, magento/magento2#30400, magento/magento2#30391
magento/magento2#27350, magento/magento2#30361, magento/magento2#30362, magento/magento2#30255
MRM Commerce
magento/magento2#30120, magento/partners-magento2ee#175
magento/magento2#30133, magento/partners-magento2ee#26943
EY
magento/magento2#30130
Puntito
magento/magento2#28687, magento/magento2#28663, magento/magento2#28491
magento/magento2#8538, magento/magento2#28479, magento/magento2#28186
creativestyle
magento/magento2#27696, magento/magento2#25405
magento/magento2#29553, magento/magento2#25399
Ojo De Peces
magento/magento2#27940, magento/partners-magento2ee#267, magento/magento2#28216
magento/magento2#29555, magento/magento2#13440
SNOW.DOG
magento/magento2#29934
magento/magento2#29933
integer_net GmbH
magento/magento2#28164
magento/magento2#29585
Ziffity
magento/magento2#29353, magento/magento2#27896, magento/magento2#28349
magento/magento2#29194, magento/magento2#29098
Día del Bluebird
magento/magento2#27832
magento/magento2#11998, magento/magento2#27500
Krish TechnoLabs
magento/magento2#29923
magento/magento2#29920
Grupo nacido
magento/magento2#30109, magento/magento2#30421
magento/magento2#30125
Soluciones de orientación
magento/magento2#28818
magento/magento2#29546
Le Site
magento/magento2#25412
magento/magento2#25411
Kensium Solutions LLC
magento/magento2#30230
magento/magento2#30179
Webjumping
magento/magento2#27869
magento/magento2#27866
Asesoría inteligente
magento/magento2#29692
magento/magento2#30243
Wagento
magento/magento2#30411
magento/magento2#30408
MediaCT
magento/magento2#29210
magento/magento2#29515
eComero
magento/magento2#28917
magento/magento2#29656

Contribuciones de colaborador individual

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

Miembro de la comunidad colaborador
Solicitudes de extracción
Problemas relacionados con GitHub
Nazar Klovanych
#29576
1449
Shankar Konar
#29511
29496
Hazel Joie Caquicla
#29494
Hazel Joie Caquicla
#29491
Kos Rafał
#29483
29525
Hazel Joie Caquicla
#29461
Jekabs
#29458
29498
Nazar Klovanych
#29452
jmonteros422
#29435
1711
Shankar Konar
#29433
1738
Nazar Klovanych
#29429
1755, 1694
Bartłomiej Szubert
#29413
24060
Angelo Romano
#29410
29416
Honeymay Louiese Ignacio
#29400
1703
Franciszek Wawrzak
#27478
29606
Lukasz Bajsarowicz
#29670
29672
Lukasz Bajsarowicz
#29669
29673
Nazar Klovanych
#29636
1764
Oleh Usik
#29630
29649
Lukasz Bajsarowicz
#29564
29679
Ihor Sviziev
#29518
29653
Oleh Usik
#29459
Oleksandr Kravchuk
#29339
Will Wright
#29316
29315
Vadim Malesh
#29693
29700
Vadim Malesh
#29682
Andrii Beziazychnyi
#29703
29712
Shankar Konar
#29510
28422
Vadim Malesh
#29474
29267
Oleh Usik
#29460
29501
Dmitry Tsymbol
#29042
29145
Savvas Radevic
#28816
28802
Sascha
#28548
28674
Yan Nasonov
#28512
29661
Rudolf Vince
#27494
29537
Nazar Klovanych
#29684
1769
Nazar Klovanych
#29633
1763
Hazel Joie Caquicla
#29639
jmonteros422
#29632
1760
Oleh Usik
#29482
29500
Sathish Subramanian
#29353
29194
Russell Albin
#29269
25595
Bartłomiej Szubert
#28163
13401
Mateusz Krzeszowiak
#27696
29553
Vitaliy Prokopov
#27691
26903
korostii
#26081
26080
Nazar Klovanych
#29711
1774
Hazel Joie Caquicla
#29411
Wout Kramer
#29210
29515
Eduard Chitoraga
#29148
Oleh Usik
#28821
28558, 28520
Nazar Klovanych
#29783
1780
jmonteros422
#29774
1783
Hazel Joie Caquicla
#29772
Sergii Ivashchenko
#29761
jmonteros422
#29753
1784
Nazar Klovanych
#29743
1782
Nazar Klovanych
#29742
1778
Hazel Joie Caquicla
#29705
jmonteros422
#29677
1504
Ihor Sviziev
#29799
Oleh Usik
#29634
29648
Alexandr Skrashuk
#29348
28921
Vitaliy Prokopov
#28413
28388
Lukasz Bajsarowicz
#27609
korostii
#27579
27523
Cristian Partica
#29426
29425
Michał Derlatka
#28915
26425
Oleh Usik
#29832
29843
Oleh Usik
#29830
29845
Oleh Usik
#29829
29846
Oleh Usik
#29828
29847
Oleh Usik
#29821
29824
Oleh Usik
#29820
29823
Denys Babenko
#28343
29067
Balón
#27269
26288
Andrii Kasian
#27129
25199
Hazel Joie Caquicla
#29875
Hazel Joie Caquicla
#29869
Oleh Usik
#29836
29841
Oleh Usik
#29831
29844
Oleh Usik
#29822
29825
Tu Nguyen
#29044
29526
Vinoth
#28349
bradleybrecher
#27386
29560
Sergii Ivashchenko
#29921
Hazel Joie Caquicla
#29896
Shankar Konar
#29724
29704
Oleh Usik
#28653
29531
Tu Nguyen
#29913
29914
Nazar Klovanych
#29861
1789
Tu Nguyen
#29856
29857
Tu Nguyen
#29771
29779
Eden Duong
#29278
29277
Eden Duong
#29276
29336
Mohamed-Asar
#27896
29098
Honeymay Louiese Ignacio
#29947
toxix
#29925
28981, 29879
Viktor Kopin
#29906
Olga Zakharchuk
#29863
29958
Nikolaj Malevanec
#29006
12087
Abdul Rahman Abouzaid
#28687
8538
KrielkipNL
#27832
11998, 27500
Gaurav Agarwal
#27602
27350
Alexander Taranovsky
#27391
29601
Stanislav Ilnytskyi
#26877
26876
Sergii Ivashchenko
#29889
Nazar Klovanych
#29715
1487
Honeymay Louiese Ignacio
#29543
1724
Oleh Usik
#29833
29839
Porrafito Chuasuk
#28896
28892
Vitaliy Prokopov
#27857
26976
Eduard Chitoraga
#29904
Hazel Joie Caquicla
#30006
Ihor Sviziev
#29993
30004
Viktor Kopin
#29959
1813
Hazel Joie Caquicla
#29909
Lukasz Bajsarowicz
#29688
29689
Shankar Konar
#29415
29354
Hazel Joie Caquicla
#29967
Oleh Usik
#29929
29940
Hazel Joie Caquicla
#29895
ashokadewit
#27446
29603
Pascal Brouwers
#26527
26526
Sergii Ivashchenko
#30076
Hazel Joie Caquicla
#30044
Viktor Kopin
#29979
1806
Janusz Janczy
#29934
29933
Marvin Hinz
#29542
29185
Pieter Zandbergen
#29274
29524
Joe Hobbs
#25510
25147
Benoît Xylo
#25405
25399
Viktor Kopin
#30074
Hazel Joie Caquicla
#30042
Oleh Usik
#29962
29982
Oleh Usik
#29931
29941
Oleh Usik
#29835
29842
Oleh Usik
#29834
29838
Evgeny Levinsky
#27698
28324
Vadim Malesh
#26470
7720
Oleh Usik
#30081
30103
Leandro F. L.
#30014
30013
Taras Gamanov
#29968
24348, 24400
Shankar Konar
#29671
16531, 24332, 29852
Ejaz Alam
#29486
29487, 29502
Oleh Usik
#30030
30032
Eugene Shakhsuvarov
#28117
28116
Serhii Dzhepa
#30095
Hazel Joie Caquicla
#30057
Hazel Joie Caquicla
#30034
Marcos Trama
#29972
29984
Lyzun Oleksandr
#29814
29718
Tu Nguyen
#29794
29075
Greg Harvell
#29081
28154, 28428
Daniel Beitler
#29080
29659
Svyatoslav
#28818
29546
Fabian Schmengler
#28164
29585
Tymoteusz Motylewski
#27980
29590
Alex Gusev
#30077
26762, 29612
Abdul Rahman Abouzaid
#28663
28479
Abdul Rahman Abouzaid
#28491
28186
jiten-patel
#27953
12225
Ihor Sviziev
#30153
30183
Shankar Konar
#30069
30164
Leandro F. L.
#30011
29377
Oleh Usik
#29827
29848
Davide Riccardo Caliendo
#29015
29017
Zach Nanninga
#28379
27397
Bünyamin
#27869
27866
Eden Duong
#27585
29599
David Haecker
#30096
322
Yaroslav Garmash
#30075
312
John Carlo Octabio
#30028
Frédéric MARTINEZ
#30182
30191
Ihor Sviziev
#30170
30146
Rafael Kassner
#30160
Sean van Zuidam
#30139
30186
Bartosz Górski
#30120
30133
Milind Singh
#30109
30125
Kate Kyzyma
#30049
30058
Damián Culotta
#29722
29729
Anton Evers
#28995
29522
Kate Kyzyma
#30217
Nikita Sarychev
#30172
30173
Tu Nguyen
#30108
Alexander Menk
#29205
29174, 30240
Barny Shergold
#28676
28633
Jonas Hünig
#28516
29662
Tu Nguyen
#28177
30237
Alexander Taranovsky
#27939
30031
David Manners
#27581
29598
Navarra Barnier
#27077
29558
kolaente
#30180
30190
Peep van Puijenbroek
#29466
29652
Frédéric MARTINEZ
#28588
Petkovski Marjan
#29751
29372
Oleh Usik
#30222
Timon de Groot
#28809
22375
Nirav Patel
#28385
30345
Dan Wallis
#27940
29555
Sean van Zuidam
#30065
30064
Tu Nguyen
#30008
30036
Tu Nguyen
#29726
29719
Gabriel Somoza
#28389
29165
Dan Wallis
#28216
13440
Rafael Corrêa Gomes
#25412
25411
Siim
#29885
29890
Bartosz Kubicki
#27092
29557
Sudheer Singamsetti
#30230
30179
Namrata
#30358
30450
Tu Nguyen
#30333
30448
Wojtek Naruniec
#30318
25110, 25886, 28286
Sean van Zuidam
#30062
30063, 30066
Tu Nguyen
#29773
29778
Pieter Cappelle
#26713
14398, 21885
Bartłomiej Szubert
#30320
11175
Bas van Poppel
#30167
30169
Ihor Sviziev
#30023
30025
Ihor Sviziev
#30002
30005
Eden Duong
#27574
29597
Rafael Kassner
#27454
29604
Nirav Patel
#30458
30452
Tu Nguyen
#30454
30496
solwininfotech
#30405
26133
Bartłomiej Szubert
#30355
30296
Serhii Dzhepa
#30554
Alin Alexandru
#30340
30508
Oleh Usik
#29868
30061
guillaume quintard
#28928
29988
Por
#28172
27925
Bartłomiej Szubert
#28157
22503, 24091
Nikolay Sumrak
#27672
29552
Jonas Hünig
#30502
30566
Yaroslav Bogutsky
#30493
30510
Tu Nguyen
#30453
30542
Sunil Patel
#30402
30388
Oleh Usik
#30079
Jeroen
#29911
29915
Pieter Hoste
#29196
29297, 29478
Johan Lindahl
#28917
29656
Bartosz Kubicki
#26967
29615
Ejaz Alam
#30579
30545
Pieter Hoste
#30570
6868, 7252, 13316
Namrata
#30538
30550
Pratik Oza
#30530
30552
Andrii Kasian
#30521
30563
naitsirch
#30322
30314
Kate Kyzyma
#30317
30561
Stanislav Ilnytskyi
#30198
30601
Cyildirim
#28352
28124
Andrii Beziazychnyi
#30633
30469
Eduard Chitoraga
#30619
30468
Sudheer Singamsetti
#30375
30349
Sagar Dahiwala
#30368
325
Nikolaj Malevanec
#30763
30747
Dmitry Tsymbol
#30359
30372
Oleh Usik
#30223
30683
Lukasz Bajsarowicz
#28147
28309
Matei Purcaru
#27972
27954
Vova Yatsyuk
#27674
29551
Bartosz Kubicki
#26966
30216
Simon Sprankel
#26401
29621
Gabriel da Gama
#30895
30896
Samuel Caçador
#30793
30833
Vova Yatsyuk
#30774
30781, 197
Diego Sanabria
#30681
30680
Evgen Mozok
#30632
24730
Sanjay Patel
#30411
30408
Shikha Mishra
#30400
30361, 30362
Shikha Mishra
#30391
30255
Bartłomiej Szubert
#30114
30073
Michael Bottens
#30010
30009
Tu Nguyen
#29986
29987
Saphal Jha
#29923
29920
Andrii Kasian
#27379
29600
Yaroslav Rogoza
#30630
30624
Oleh Usik
#29675
29168
Andrii Kalinich
#30749
23069
Viktor Kopin
#30727
30645
Thomas Klein
#30825
30859
Oleh Usik
#30777
30783
Oleh Usik
#30528
30916
Oleh Usik
#30525
30917
Ihor Sviziev
#30090
30184
Andrii Kalinich
#30866
24717
Viktor Kopin
#30928
30685
Nitish Singh
#30421
Oleh Usik
#30779
30782
Nazar Klovanych
#30662
30649
Oleh Usik
#30529
30926
Marush Denchev
#30614
30104
Lachlan
#29692
30243
Viktor Kopin
#30947
29128
Andrii Kalinich
#30807
26432
Viktor Kopin
#30961
13746
Nikolaj Malevanec
#30963
30295
Andrii Beziazychnyi
#30694
30625
Alexander Turiak
#30636
30467

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.2 mediante Compositor.

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 Instalación de la herramienta de migración de datos. Considere la posibilidad de explorar o contribuir al Repositorio de migración de datos.

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

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