Notas de lanzamiento de Magento Open Source 2.3.5

Magento Open Source 2.3.5 ofrece actualizaciones significativas de la plataforma, cambios sustanciales de seguridad y mejoras de rendimiento.

Esta versión incluye más de 180 soluciones funcionales para el producto principal y más de 25 mejoras de seguridad. Incluye la resolución de más de 46 problemas de GitHub por parte de los miembros de nuestra comunidad. Estas contribuciones de la comunidad van desde una limpieza menor del código central hasta mejoras significativas en la Gestión de inventario y GraphQL.

Las versiones trimestrales pueden contener cambios incompatibles con versiones anteriores (BIC). Magento 2.3.5 contiene cambios menores incompatibles con versiones anteriores. Para revisar cambios menores incompatibles con versiones anteriores, consulte la referencia BIC . (Los principales problemas de incompatibilidad con versiones anteriores se describen en los aspectos destacados de BIC . No todas las versiones introducen BIC importantes).

 

Durante el prelanzamiento, descubrimos problemas que nos obligaron a crear nuevos paquetes. Para acelerar la entrega, elegimos cambiar el nombre del parche de lanzamiento completo de 2.3.5 a 2.3.5-p1. El paquete 2.3.5-p1 contiene todas las nuevas características y correcciones. También cambiamos el nombre del parche solo de seguridad para este trimestre de 2.3.4-p1 a 2.3.4-p2. Las versiones futuras seguirán las convenciones de nomenclatura de paquetes típicos para los paquetes de versión completa y de seguridad. Consulte Error de la lista de deseos durante la actualización a Magento versiones 2.3.4-p1 o 2.3.5 .

Parche solo 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, Magento 2.3.5-p1). El parche 2.3.4.2 (paquete Composer 2.3.4-p2) es un parche solo de seguridad que proporciona soluciones para las vulnerabilidades que se han identificado en nuestra versión trimestral anterior, Magento 2.3.4. Todas las revisiones que se aplicaron a la versión 2.3.4 se incluyen en este parche solo de seguridad. (Un hotfix proporciona una solución a una versión lanzada de Magento que aborda un problema o error específico).

Para obtener información general sobre parches solo de seguridad, consulte la publicación Magento DevBlog que presenta la nueva versión de parche solo de seguridad . Para obtener instrucciones sobre cómo descargar y aplicar parches solo de seguridad (incluido el parche 2.3.4-p2), consulte Instalar Magento usando Composer . Los parches solo de seguridad incluyen solo correcciones de errores de seguridad, no las mejoras de seguridad adicionales que se incluyen en el parche completo.

Con esta versión trimestral, hemos cambiado la forma en que describimos estos problemas de seguridad. Los problemas individuales ya no se describen en el Centro de seguridad de Magento. En cambio, estos problemas se documentan en un boletín de seguridad de Adobe .

Otra información de lanzamiento

Aunque el código para estas funciones se incluye con versiones trimestrales del código central de Magento, varios de estos proyectos (por ejemplo, Gestión de inventario y Estudio de aplicaciones web progresivas (PWA) Studio) también se lanzan de forma independiente. Las correcciones de errores para estos proyectos se documentan en la información de publicación específica del proyecto que está disponible en la documentación de cada proyecto.

Actualice a Magento 2.3.5-p1 o 2.3.4-p2 para comerciantes que ejecuten versiones preliminares de Magento 2.3.5

Los comerciantes que actualicen a versiones preliminares de Magento 2.3.5 y parche solo de seguridad 2.3.4-p1 y cuyas implementaciones contengan productos de paquete pueden encontrar el siguiente error durante la actualización:

Module ‘Magento_Wishlist’: Unable to apply data patch Magento\Wishlist\Setup\Patch\Data\CleanUpData for module Magento_Wishlist. Original exception message: Unable to unserialize value. Error: Syntax error

Los comerciantes que encuentren este error después de instalar Magento 2.3.5 deberían actualizar a Magento 2.3.5-p1. Los comerciantes que encuentren este error después de instalar Magento 2.3.4-p1 deben actualizar a Magento 2.3.4-p2. Consulte Error de la lista de deseos durante la actualización a Magento versiones 2.3.4-p1 o 2.3.5 .

Descargue y ejecute el script actualizado de limpieza de base de datos

Esta revisión soluciona un problema con un script de limpieza de base de datos anterior que se lanzó en marzo de 2020. Ese script de limpieza de base de datos se ha actualizado para borrar los datos de inicio de sesión fallidos preexistentes en tablas de base de datos adicionales. Recomendamos que todos los comerciantes ejecuten el script DB_CLEANUP_SCRIPT_v2 para borrar los datos de inicio de sesión fallidos preexistentes en tablas adicionales lo antes posible . Consulte el artículo Eliminar intentos de inicio de sesión fallidos del soporte de la base de datos .

Destacar

Busque los siguientes aspectos destacados en esta versión:

Mejoras sustanciales de seguridad

Esta versión incluye las siguientes mejoras de seguridad:

Más de 25 mejoras de seguridad que ayudan a cerrar la vulnerabilidad de ejecución remota de código (RCE) y scripting entre sitios (XSS)

No se han producido ataques confirmados relacionados con estos problemas hasta la fecha. Sin embargo, ciertas vulnerabilidades pueden potencialmente explotarse para acceder a la información del cliente o hacerse cargo de las sesiones de administrador. La mayoría de estos problemas requieren que un atacante obtenga primero acceso al administrador. Como resultado, le recordamos que tome todos los pasos necesarios para proteger a su administrador, incluidos, entre otros, estos esfuerzos: lista blanca de IP, autenticación de dos factores , uso de una VPN, uso de una ubicación única en lugar de una /adminbuena contraseña higiene. Consulte las actualizaciones de seguridad disponibles para Magento para una discusión de estos problemas resueltos. Todos los problemas de seguridad explotables conocidos solucionados en esta versión (2.3.5) se han portado a 1.14.4.5 y 1.9.4.5, según corresponda.

Con la versión Magento 2.3.4, cambiamos la forma en que describimos estos problemas de seguridad. Los problemas individuales ya no se describen en el Centro de seguridad de Magento. En cambio, estos problemas se documentan en un boletín de seguridad de Adobe .

Mejoras de seguridad y correcciones al código central

Esta versión incluye más de 25 correcciones de seguridad y mejoras de seguridad de la plataforma. Las mejoras de seguridad adicionales incluyen:

  • Implementación de Políticas de Seguridad de Contenido (CSP) . Esta versión incluye un conjunto de nuevas y potentes herramientas de seguridad para las instalaciones de Magento. Las Políticas de seguridad de contenido (CSP) brindan capas de defensa adicionales al ayudar a detectar y mitigar las secuencias de comandos entre sitios (XSS) y los ataques de inyección de datos relacionados. Este vector de ataque común funciona inyectando contenido malicioso que afirma falsamente que se origina en el sitio web. Después de cargar y ejecutar el contenido malicioso, puede iniciar la transferencia no autorizada de datos. Consulte la Descripción general de la política de seguridad de contenido . Para obtener información técnica, consulte Políticas de seguridad de contenido en la Guía para desarrolladores de PHP .

  • Eliminación de session_id de las URL . La exposición de session-idvalores en las URL crea una posible vulnerabilidad de seguridad en forma de fijación de sesión. Estamos eliminando el código de las clases y métodos que agregan o leen session_id de las URL.

A partir del lanzamiento de Magento Commerce 2.3.2, Magento asignará y publicará números indexados de vulnerabilidades y exposiciones comunes (CVE) con cada error de seguridad que nos notifiquen terceros. Esto permite a los usuarios de Magento Commerce identificar más fácilmente las vulnerabilidades no tratadas en su implementación.

Actualizaciones de plataforma

Las siguientes actualizaciones de plataforma ayudan a mejorar la seguridad y el rendimiento del sitio web:

  • Soporte para Elasticsearch 7.x . Elasticsearch 7.x es ahora el motor de búsqueda de catálogo compatible tanto para Magento Commerce como para Magento Open Source. Con esta versión, Magento 2.3.x solo admite Elasticsearch 6.xy 7.x. Elasticsearch 2.xy 5.x ahora están en desuso para Magento 2.3.xy se eliminarán en Magento 2.4.0.

  • Desaprobación de la integración central de los métodos de pago de terceros . Con esta versión, las integraciones de los métodos de pago Authorize.Net, eWay, CyberSource y Worldpay están en desuso. Estas características principales ya no son compatibles y se eliminarán en la próxima versión menor (2.4.0). Los comerciantes deben migrar a las extensiones oficiales que están disponibles en Magento Marketplace. Consulte la publicación de desaprobación de devblog de integraciones de pagos principales de Magento

  • Desaprobación de la integración central del código de protección contra fraude Significado . Esta característica principal ya no es compatible. Los comerciantes deben migrar a la extensión Signifiedd Fraud & Chargeback Protection que está disponible en Magento Marketplace.

  • Actualización de Symfony Components a la última versión de soporte de por vida (4.4). (Los componentes de Symfony son un conjunto de bibliotecas PHP desacopladas utilizadas por Magento Framework).

  • Migración de dependencias de Zend Framework al proyecto Laminas para reflejar la transición de Zend Framework al Proyecto Laminas de la Fundación Linux. Zend Framework ha quedado en desuso. Magento 2.3.5 contiene el número mínimo de cambios en el código y la configuración que se requieren para admitir el uso de las bibliotecas Laminas. Estos cambios son compatibles con versiones anteriores y puede continuar utilizando su código actual. Sin embargo, recomendamos que los desarrolladores de extensiones y los integradores de sistemas comiencen a migrar sus extensiones para usar Laminas . Si bien esta migración no es necesaria para la compatibilidad con esta versión de parche, las soluciones a largo plazo lo requerirán.

    El laminas/laminas-dependency-pluginrequiere Compositor 1.7.0 y superior. Para ver qué versión de Composer está ejecutando, ejecute composer –-version. Luego, ejecute composer self-updatesi tiene una versión anterior de Composer.

    Vea la Migración de Zend Framework a la publicación del Proyecto Laminas DevBlog.

Aumenta el rendimiento

  • Mejoras en la lógica de invalidación de la sección de datos del cliente . Esta versión presenta una nueva forma de invalidar todos los datos de secciones de clientes que evita un problema conocido con el almacenamiento local cuando las sections.xmlinvalidaciones personalizadas están activas. (Anteriormente, el contenido privado (almacenamiento local) no se rellenaba correctamente cuando tenía un etc / frontend / secciones.xml personalizado con invalidaciones de acciones). Consulte Contenido privado .

  • Múltiples optimizaciones para el rendimiento de Redis . Las mejoras minimizan el número de consultas a Redis que se realizan en cada solicitud de Magento. Estas optimizaciones incluyen:

    • Disminución del tamaño de las transferencias de datos de red entre Redis y Magento
    • Reducción en el consumo de Redis de ciclos de CPU al mejorar la capacidad del adaptador para determinar automáticamente qué necesita cargarse
    • Reducción de las condiciones de carrera en operaciones de escritura de Redis

Consulte Usar Redis para la página de Magento y la memoria caché predeterminada y Configurar el almacenamiento en caché .

Mejoras de infraestructura

Esta versión contiene mejoras en la calidad central, que mejoran la calidad del Framework y estos módulos: Catálogo, Ventas, PayPal, Elasticsearch, Importar y CMS.

  • El método de pago PayPal Pro ahora funciona como se esperaba en el navegador Chrome 80 . Este método de pago invocó previamente un punto final de devolución de llamada de Magento que necesitaba acceso a la sesión del cliente, acceso que la nueva funcionalidad predeterminada de cookies de Chrome Samesite no permite. GitHub-26840

  • Se ha integrado una verificación de análisis de código PHPStan en las compilaciones estáticas de Magento . Esta herramienta realiza un sofisticado análisis de código estático e identifica problemas adicionales que actualmente no son detectados por PHP CodeSniffer y PHP Mess Detector. Consulte la Guía de pruebas de Magento .

La gestión del inventario

Las mejoras de la gestión de inventario para esta versión incluyen:

  • Nuevo punto de extensión para  SourceDataProvider y StockDataProvider
  • Posibilidad de ver las fuentes de inventario asignadas de la lista de pedidos

Consulte las notas de la versión de Gestión de inventario para una discusión más detallada de las correcciones de errores recientes de GraphQL.

GraphQL

Con esta versión, ahora puede usar productscategoryListconsultas para recuperar información sobre productos y categorías que se han agregado a una campaña por etapas. Consulte Uso de consultas en la Guía del desarrollador de GraphQL para obtener más detalles.

Consulte las Notas de la versión para una discusión más detallada de las correcciones de errores recientes de GraphQL.

PWA Studio

PWA Studio 6.0.0 contiene nuevas características y mejoras a las características existentes:

  • Lanzamiento del marco de extensibilidad PWA . Este marco ofrece a los desarrolladores la capacidad de crear una API de extensibilidad para su escaparate o escribir complementos que puedan aprovechar esa API y modificar la lógica del escaparate.

  • Mejoras de almacenamiento en caché y recuperación de datos . Esta versión contiene una lógica de almacenamiento en caché mejorada y otras optimizaciones de recuperación de datos en las bibliotecas de componentes UI de Peregrine y Venia. Estos componentes se han refactorizado para aprovechar las características de la memoria caché de Apollo para reducir la sobrecarga o evitar el almacenamiento de datos confidenciales.

  • Componentes del carrito de compras que se pueden usar para una experiencia de carrito de compras de página completa

Para obtener información sobre estas mejoras más otras mejoras, consulte las versiones de PWA Studio .

dotdigital

Esta versión incluye:

  • Integración de Engagement Cloud y Magento B2B . Un nuevo módulo de integración B2B integra la nube de Engagement y el módulo Magento B2B permite a los comerciantes B2B de Magento aprovechar sus datos de comercio B2B y relacionarse mejor con sus clientes actuales y potenciales. Esto incluirá:
    • Sincronización de datos de la empresa (tipo de cliente, empresa, estado de la empresa)
    • Sincronización de datos de catálogo compartido. Sincronización de datos de catálogo de productos adicionales (productos personalizados y atributos de productos) con dotdigital. Los comerciantes pueden convertir datos de productos adicionales en campañas de marketing o usarlos para hacer recomendaciones
    • Sincronización de datos de cotización
  • Rendimiento mejorado del importador y reenvío de código de cupón.

Canal de anuncios de Google Shopping

La extensión incluida del canal de anuncios de Google Shopping ha llegado al final de su vida útil con esta versión (2.3.5 y 2.3.4-p1). Ya no es compatible. Las extensiones alternativas están disponibles en Magento Marketplace.

Mejoras de extensión desarrolladas por el proveedor

Esta versión de Magento incluye extensiones desarrolladas por proveedores externos. Incluye mejoras de calidad y UX para estas extensiones.

Klarna

Con este lanzamiento, la extensión Klarna ahora está disponible en Australia y Nueva Zelanda. Se ha agregado un nuevo punto final de Oceanía a la API existente. Esta versión también contiene mejoras de UX y correcciones de errores menores.

Vértice

Esta versión de Vertex incluye las siguientes nuevas características y mejoras:

  • Validación de dirección . Las direcciones que se crean o editan en la cuenta del cliente ahora se validan cuando el módulo está habilitado.

  • Configuración de administrador . Las opciones desplegables de campo flexible ahora se ordenan alfabéticamente por la configuración regional del usuario administrador actual.

  • Productos virtuales . Vertex ahora usa la dirección de facturación de un pedido para calcular los impuestos sobre productos virtuales. Los campos flexibles relacionados con el envío ya no se completan para productos virtuales.

  • Configuraciones de configuración restaurables . El uso de Vértice para pedidos que se envían a , Resumir impuestos por y Plazo de entrega global ahora ofrece una opción para restablecer su configuración predeterminada.

  • Puerto en WSDL . La URL WSDL ahora admite puertos y autenticación básica.

  • Mejores prácticas en código . Los modelos destinados a ayudar a los observadores se han reubicado en el espacio de nombres del modelo para limpiar el espacio de nombres de los observadores.

Problemas resueltos

Hemos solucionado cientos de problemas en el código principal de Magento 2.3.5.

Instalación, actualización, despliegue

  • El enlace al que se accede desde Admin > Tiendas > Configuración > Configuración > General > Informes avanzados ahora se abre en una nueva pestaña como se esperaba. Arreglo presentado por Nagamaiah K en la solicitud de extracción 25760 . GitHub-25757
  • Ahora puede eliminar con éxito un sitio web junto con los ajustes de configuración específicos del alcance del sitio web app/etc/config.phpcomo se esperaba. Anteriormente, cuando se trató de eliminar el sitio web, la operación ha fallado, y Magento aparece este error: The website with code xxx that was requested wasn't found. Verify the website and try again. Además, Magento este error aparece en la tienda: Config files have changed. Run app:config:import or setup:upgrade command to synchronize configurationGitHub-24061
  • Los ajustes de configuración que están deshabilitados index.phpya no se pueden editar desde el administrador.

Integración de Adobe Stock

  • Las vistas previas de imágenes ahora se cierran como se esperaba cuando navega a una nueva página de resultados de búsqueda cuando busca imágenes de Adobe Stock. Corrección presentada por Serhiy Zhovnir en la solicitud de extracción 25719 . GitHub-723
  • Los detalles de la imagen ahora están ocultos cuando hace clic en la imagen en la lista de resultados de búsqueda. Corrección presentada por Nazar Klovanych en la solicitud de extracción 25566 . GitHub-690
  • Ahora puede usar las teclas de flecha del teclado para navegar a la siguiente imagen en la vista previa. Corrección presentada por Adarsh ​​Manickam en la solicitud de extracción 25611 . GitHub-691
  • El botón Buscar imágenes de stock ahora permanece activo como se esperaba después de haber buscado y guardado una imagen de la galería de medios. Anteriormente, este botón estaba deshabilitado después de que lo usó para buscar una imagen y guardarla. Corrección presentada por Nazar Klovanych en la solicitud de extracción 25556 . GitHub-622

Paquete de productos

  • Los precios de los productos combinados ahora se calculan correctamente en las páginas de productos.
  • Se catalog_product_priceha mejorado el rendimiento de la operación de reindexación para productos de paquete.
  • Magento ahora muestra correctamente los asteriscos de campo requeridos para productos con opciones personalizadas en el Administrador.
  • Al hacer clic en Ingresar en el campo Precio de envío para cotizaciones negociables, ahora se actualiza correctamente el precio de envío.
  • Magento ahora muestra el mismo precio para un paquete de productos en el mini carrito y en la página del producto.
  • Ahora puede agregar cualquier cantidad de productos combinados a su carrito de compras sin error. Anteriormente, al añadir un paquete de productos a su carro, a continuación, navegado al carro, Magento aparece este error: Please correct the quantity for some products.
  • Los administradores ya no pueden ingresar manualmente una clase de impuestos en el Administrador para un producto de paquete cuando las configuraciones de Clase de impuesto y Precio dinámico del producto de paquete están deshabilitadas para la vista predeterminada de la tienda. Anteriormente, cuando un administrador desmarcaba la opción Usar valor predeterminado junto a  Clase impositiva , Magento habilitaba la opción, permitiendo que un administrador ingrese otro valor y guarde el producto.

Cache

  • Las cookies frontend ahora se configuran como se espera cuando habilita Usar URL seguras en Storefront y la URL de base segura se establece en https .

Carrito y pago

  • Las reglas de precios de carrito que se basan en métodos de pago ahora se aplican durante el flujo de trabajo de pago. GitHub-24206
  • Ahora puede deshabilitar la validación del código postal en el flujo de trabajo de pago desde el Administrador como se esperaba. Anteriormente, Magento arrojó un error cuando un cliente ingresó un código postal que no cumplía con los valores especificados para los códigos postales incluso después de que la validación se desactivó al configurar la Validación de entrada en ninguno desde Admin > Tiendas > Atributos > Dirección del cliente > Editar código postal .
  • La página de revisión de pedidos en el flujo de trabajo de pago ahora se carga correctamente para un pedido que se envía a varias direcciones cuando se habilitan los Términos y condiciones con la configuración Manual aplicado . Anteriormente, la página Revisar no pasaba la validación y Magento mostraba un error 404.

Catalogar

  • El filtrado en la columna del sitio web de la cuadrícula de productos de Admin ahora funciona como se esperaba Anteriormente, los resultados del filtro no mostraban el número correcto de productos, pero mostraban de manera consistente el número total de productos como 1.
  • Magento ya no arroja un error durante el proceso de pago cuando la opción de configuración Sincronizar con backend está habilitada. GitHub-23833
  • Magento ya no arroja un error cuando cambia el nombre de un producto escalonado que se incluye en una actualización programada. Anteriormente, cuando intentaba guardar el producto con un nuevo nombre, Magento mostraba este error:SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3-0-0-2.0000-0' for key 'UNQ_EBC6A54F44DFA66FA9024CAD97FED6C7', query was: INSERT INTO catalog_product_entity_tier_price (all_groups, customer_group_id, qty, value, website_id, percentage_value, row_id) VALUES (?, ?, ?, ?, ?, ?, ?)
  • La característica Productos vistos recientemente ahora funciona como se esperaba en implementaciones de varios pisos.
  • Ahora puede editar con éxito un producto configurable con muchas variantes (aproximadamente 5,000) desde el Administrador. Anteriormente, cuando intentaba editar un producto configurable con muchos subproductos, Magento mostraba este error:Warning: DOMDocumentFragment::appendXML(): Entity: line 1: parser error : CData section too big found in /vendor/magento/framework/View/TemplateEngine/Xhtml/Template.php on line 60
  • La clasificación por conjuntos de atributos en Admin > Catálogo > Productos ahora se basa en el orden alfabético como se esperaba.
  • Los valores de los atributos personalizados ahora se pueden guardar como se espera del administrador.
  • Se corrigió un problema que causaba que la /V1/products/:sku/media/:entryIdllamada PUT creara una nueva entrada en lugar de reemplazar la existente.
  • Las opciones personalizables ahora se importan como se esperaba cuando row_idno es igual a la de un producto entity_id. Anteriormente, Magento no importaba opciones personalizables cuando row_idno era igual a la de un producto entity_id, lo que provocaba que ciertos productos no se importaran.
  • Ahora puede asignar una marca de agua predeterminada a un tema. Anteriormente, después de asignar la marca de agua, Magento arrojó un error fatal.
  • Magento ahora muestra imágenes de productos en el mini carrito sin distorsión. Anteriormente, Magento estiraba la imagen en el mini carrito para llenar todo el ancho y la altura del contenedor de imágenes.
  • La función Productos vistos recientemente ahora muestra productos asociados solo con la vista de la tienda actual en implementaciones de varias tiendas cuando Tiendas > Configuraciones > Catálogo > Productos vistos / comparados recientemente > Mostrar para actual está configurado para ver la tienda . Anteriormente, Magento mostraba productos vistos recientemente de todos los sitios web, sin importar a qué sitio web se le asignó el producto.
  • La función de comparación de productos ahora funciona como se esperaba. Solo muestra productos en la lista de comparación del usuario actual.
  • Se han resuelto los problemas con la reindexación parcial de grandes categorías. Anteriormente, debido a problemas con este proceso, los productos se excluían aleatoriamente de las categorías en el escaparate.
  • La getBasePricefunción ahora devuelve un valor flotante como se esperaba en lugar de una cadena.
  • Las imágenes ahora se guardan pub/media/catalog/categorycomo se esperaba cuando guarda imágenes de categoría. Anteriormente, Magento guardaba estas imágenes en pub/media/catalog/tmp/category.
  • Los administradores con permisos restringidos para Catálogo ahora pueden crear un producto descargable. Anteriormente, los administradores no podían crear un producto descargable y Magento arrojó un error.
  • Ahora puede agregar un producto configurable al carrito desde la pestaña Ventas cruzadas. Cuando selecciona un producto y hace clic en Agregar al carrito en esta pestaña, ahora se lo dirige a la página de detalles del producto, donde puede seleccionar opciones específicas del producto. Anteriormente, Magento lo redirigió a una página de error 404.
  • Ahora puede agregar un producto secundario de un producto agrupado a su carrito cuando uno de los otros productos secundarios del producto agrupado está agotado. Anteriormente, cuando un producto secundario estaba agotado, no podía agregar ningún otro producto secundario al carrito.

CatálogoInventario

  • Magento ahora muestra los comentarios apropiados cuando intenta sin éxito actualizar y guardar un producto. Anteriormente, Magento no mostraba un mensaje de error ni realizaba ninguna acción cuando intentaba guardar un producto después de actualizarlo. GitHub-22274

Regla de precio de catálogo

  • El carrito mini y el carrito de compras Admin ( Admin > Clientes > Administrar carrito de compras ) ahora muestran los precios correctos de los productos cuando se aplica una Regla de precios de catálogo. Anteriormente, el carrito de compras de la tienda mostraba el precio correcto del producto, pero el carrito mini y el carrito de compras de Admin mostraban el precio original del producto.
  • Los precios de los productos en el escaparate ahora reflejan con precisión la aplicación de una actualización programada de la Regla de precios de catálogo. Anteriormente, los precios no reflejaban la regla de precio de carrito programada hasta que usted reindexó manualmente ( php bin/magento indexer:reindex catalogrule_rule).

Widget de catálogo

  • Magento ahora muestra todos los elementos secundarios de una categoría principal seleccionada como se esperaba. Anteriormente, si seleccionaba una categoría principal que es un ancla, pero que no tenía productos asignados por sí misma, Magento no mostraba todos los productos anidados.
  • La lista de productos de CatalogWidget ahora funciona como se esperaba con las categorías de anclaje, y los productos de las categorías de anclaje ahora coinciden y se muestran. Anteriormente, cuando seleccionaba una categoría principal que era un ancla, pero que no contenía productos asignados, los productos no eran visibles en el widget.

Limpieza y refactorización de código simple

  • Desalineación corregida de la etiqueta Ver detalles para productos configurables en el resumen del pedido del flujo de trabajo de pago. Corrección presentada por Max Fickers en la solicitud de extracción 25785 . GitHub-20463
  • Se agregó un margin-bottomvalor al widget de bloque CMS estático en el Resumen de pago / carrito del flujo de trabajo de pago en los temas Luma y En blanco. Corrección presentada por Fabricio Sobral en la solicitud de extracción 25729 . GitHub-25703
  • Se agregó un margen entre la casilla de verificación y el ícono al elegir una categoría durante el proceso de asignación de una condición a una nueva Regla de precio de carrito. Arreglo presentado por Eden Duong en la solicitud de extracción 25597 . GitHub-25596
  • Las estrellas de calificación ya no se superponen al producto sobre el que se desplaza el mouse en la página de categoría. Arreglo presentado por Kajal Solanki en la solicitud de extracción 25524 . GitHub-25517
  • Desalineación corregida del icono del calendario dentro del cuadro de texto en la página Agregar cambio de diseño. Arreglo enviado por magudelo62 en la solicitud de extracción 25309 . GitHub-20379
  • Variable eliminada no utilizada ( time_taken) de la Magento/Catalog/view/frontend/templates/product/listing.phtmlplantilla. Arreglo presentado por andrew-chornij en la solicitud de extracción 25770 . GitHub-25715

Contenido de CMS

  • Seleccione de las imágenes en miniatura de la Galería ahora se almacenan en caché como se esperaba. Anteriormente, estas imágenes fueron redimensionadas sobre la marcha.
  • Magento ahora le permite crear bloques CMS con nombres idénticos si los bloques están asignados a diferentes vistas de la tienda.

Productos configurables

  • Se agregó lógica de validación al campo Crear nuevo valor de entrada del flujo de trabajo de creación de producto configurable. Anteriormente, podía crear un valor de opción de atributo que contenía solo un espacio. Arreglo presentado por Torben Höhn en la solicitud de extracción 25421 . GitHub-21504
  • Magento ahora muestra todos los atributos de un producto configurable. Anteriormente, cuando el producto tenía dos o más atributos, no se mostraban todos los atributos.
  • Los widgets de Lista de productos de catálogo ahora pueden procesar condiciones que incluyen test_dateatributos de producto .

Cron

  • bin/magento cron:run -vya no falla cuando el nombre de la base de datos supera los 64 caracteres, sino que crea un nombre más corto. Arreglo presentado por Vasil Pashovski en la solicitud de extracción 25472 . GitHub-22240
  • Hemos mejorado la fiabilidad de la cronejecución en segundo plano . Ahora usamos el Magento Lock Framework para bloquear crontrabajos. Anteriormente, Magento usaba el estado del trabajo en la cron_scheduletabla. Como resultado, la cron:runejecución ya no causa un error en el nivel de la aplicación.

Atributo de cliente personalizado

  • Magento ahora muestra valores de atributo de dirección de cliente personalizados como se espera en la sección de dirección del flujo de trabajo de pago. Anteriormente, Magento mostraba el código de atributo de dirección de cliente personalizado en lugar del valor, y se activaba un error de JavaScript.

Cliente

  • Ahora puede guardar un campo Sexo con un valor en blanco al editar directamente la información del cliente desde la lista de Clientes. Anteriormente, cuando guardaba este valor, Magento mostraba un mensaje de éxito, pero no lo guardaba. GitHub-23128
  • Magento ahora usa una nueva PHPSession para cada cambio de contraseña.
  • Los pasos involucrados en la x-magento-initinicialización ahora suceden en el orden correcto: RequireJS se carga section-config.js, y se section-config.jsconstruye e inicia según sea necesario. Anteriormente, RequireJS cargados section-config.js, pero los datos internos section-confignecesarios para el funcionamiento no se cargó, y section-config.jsarrojó un error: Uncaught TypeError: Cannot read property '*' of undefinedGitHub-17125
  • Magento ahora respeta la dirección de envío predeterminada de un cliente. Anteriormente, Magento no respetaba las direcciones de facturación y envío predeterminadas de acuerdo con la configuración, y la configuración Igual que la dirección de facturación no estaba habilitada automáticamente.
  • Ahora puede crear con éxito un cliente y asociarlo a un sitio web en particular utilizando el menú desplegable Asociar al sitio web en Clientes > Todos los clientes > Agregar nuevo cliente . Anteriormente, cuando se trató de asociar un nuevo cliente con el sitio web no predeterminado en un despliegue de múltiples sitios, Magento aparece este error: The store view is not in the associated website.

EAV

  • La acción Actualizar atributo ahora actualiza correctamente la marca de tiempo de un producto updated_at columndesde catalog_product_entityque actualiza el producto desde la página Admin edit product.
  • Magento ahora respeta la configuración específica de la tienda que determina si el campo del número de teléfono del flujo de trabajo de pago es necesario en una implementación en varios sitios. Previamente, en implementaciones en las que una tienda requiere este campo en el flujo de trabajo de la caja y otra tienda no, los clientes que no completaron este campo durante la comprobación de la tienda que no requería que encuentra este error: Please check the shipping address information. "telephone" is required. Enter and try again.

Correo electrónico

  • Las plantillas de correo electrónico ( Administrador > Marketing > Comunicaciones > Plantillas de correo electrónico ) ahora se pueden previsualizar desde el Administrador cuando se habilita la ampliación de JavaScript. Anteriormente, cuando intentaba obtener una vista previa de una plantilla de correo electrónico, la ventana emergente Vista previa de correo electrónico estaba vacía. GitHub-25068
  • Los correos electrónicos de notificación de pedidos enviados desde Microsoft Outlook ahora contienen contenido que se representa como se espera de la plantilla de correo electrónico asignada. Anteriormente, el correo electrónico de notificación que envió Magento contenía un cuerpo en blanco que incluía contenido como un archivo adjunto etiquetado ATT * al correo electrónico. GitHub-25076

Marcos

  • Las dependencias de Zend Framework se han migrado al proyecto Laminas para reflejar la transición de Zend Framework al Proyecto Laminas de la Fundación Linux. Zend Framework ha quedado en desuso.
  • La edición de productos en el Administrador ya no provoca errores de Redis.
  • php bin/magento cron:runya no procesa elementos de la tabla de registro de cambios varias veces. Anteriormente, cuando tenía más de 100000 nuevas versiones en la tabla de registro de cambios, las acciones se podían llamar varias veces por lo mismo entity id.
  • Las imágenes de marca de agua ya no ocultan la imagen del producto que superponen. Anteriormente, cuando la imagen de la marca de agua era más grande que la imagen del producto al que se aplicaba, la imagen del producto no era visible.
  • Los bloques no almacenables en caché ya no se agregan a los controladores de diseño predeterminados. Al agregar bloques no almacenables en caché a los controladores de diseño predeterminados, todas las páginas de Magento no se pueden almacenar en caché. Esto resulta del proceso de generación de diseño: durante la generación de diseño, Magento recopila todos los controladores de diseño disponibles para una página en particular y combina las instrucciones de ellos en la estructura de diseño final de la página. El controlador de diseño predeterminado se utiliza como controlador básico para cada página. Como resultado, las actualizaciones de diseño declaradas para el controlador predeterminado aparecen en cada página de Magento. GitHub-9041
  • Configuración 'persistent' => '1'de env.phpya no genera un error cuando se ejecuta setup:upgrade.
  • Magento ya no descarga una blank.htmlpágina cuando un administrador hace clic en un producto mientras crea un pedido del administrador.
  • El RequireJS domReady!complemento se ha mejorado para evitar retrasos artificiales al cargar una página de escaparate. GitHub-22909

Marco de JavaScript

  • Se agregó una comprobación para confirmar que un archivo pertenece a la URL base actual antes de configurar el .min.jssufijo. Anteriormente, cuando instalaba un archivo CDN usando require-config.js, y su tienda estaba en modo de producción, la ruta de JavaScript se cambió durante la compilación, y Magento mostró un error 404.
  • Los errores de JavaScript ya no ocurren en la página del carrito de compras / mini carrito cuando el carrito contiene un producto configurable. Corrección presentada por Ihor Sviziev en la solicitud de extracción 25606 . GitHub-25601
  • Al hacer clic en el botón Reembolsar sin conexión en el flujo de trabajo de crear una nota de crédito, ahora se genera una nota de crédito como se esperaba. Anteriormente, un error de JavaScript deshabilitaba este botón y Magento no creaba una nota de crédito.

Arreglos generales

  • Los comentarios ingresados ​​por un cliente en la página de devoluciones de la tienda ahora se atribuyen correctamente al cliente correcto. Anteriormente, estos comentarios se atribuían incorrectamente a Atención al cliente.
  • Todas las etiquetas HTML ahora son compatibles con el editor TinyMCE4.
  • Magento ahora muestra un mensaje de error informativo y continúa mostrando el formulario de registro como se esperaba si se produce un error cuando un cliente intenta completar un formulario de registro que contiene un atributo de cliente de selección múltiple. Anteriormente, Magento mostraba un error 500.
  • El correo electrónico de alerta de existencias enviado a los clientes sobre el reabastecimiento de un producto configurable ahora contiene el precio correcto del producto. Anteriormente, este correo electrónico contenía un precio de producto de 0.
  • Ahora puede eliminar un modelo de usuario vacío sin eliminar el rol de Administradores al que está asignado.
  • Las .fotorama__thumb__arr flechas adyacentes a las imágenes en miniatura en la galería de productos ahora funcionan como se esperaba. Corrección presentada por Alexey Rakitin en la solicitud de extracción 25666 . GitHub-25652
  • Ahora puede manipular con precisión una imagen ampliada con el mouse. Anteriormente, el área ampliada se compensaba incorrectamente. Corrección presentada por Mateusz Krzeszowiak en la solicitud de extracción 25358 . GitHub-25027
  • MENOS estilo para los módulos Magento_ContactMagento_Cmsse ha movido al designdirectorio correcto . Este cambio alinea estos módulos con la organización de otros módulos, ninguno de los cuales incluye un estilo MENOS. Corrección presentada por Paweł Tylek en la solicitud de extracción 25355 . GitHub-25276 *
  • Las notas de crédito para pedidos con un 100% de descuento (incluidas las tarifas de envío) ahora incluyen correctamente un 0 para el Gran Total . Anteriormente, Magento calculó un número negativo para el Gran Total .
  • La URL de administrador de una tienda ya no redirige a la URL de la tienda cuando estas dos URL difieren.
  • El gráfico gráfico de pedidos accesible desde la pestaña Pedidos en el Administrador ahora refleja con precisión la cantidad del pedido.
  • El correo electrónico de alerta de cambio de precio del producto ahora incluye el precio correcto del producto. Anteriormente, este correo electrónico sugería un nuevo precio de producto de 0.
  • Ahora puede guardar y duplicar todas las páginas de CMS. Previamente, Magento lanzó esta excepción al intentar duplicar ciertas páginas: Unique constraint violation found.
  • Magento ahora lo redirige a la página de inicio de la vista de la tienda correspondiente cuando cambia el idioma en las páginas CMS en una implementación de varios pisos. Anteriormente, Magento mostraba una página 404 cuando cambiaba el idioma en ciertas páginas de CMS.

Importación y exportación

  • Magento ahora importa con éxito los datos del cliente utilizando la opción Cliente y direcciones (archivo único) cuando cronestá habilitada y el Indizador de cuadrícula del cliente está configurado en  Actualizar por programación . Después de cronejecutarse, la información del cliente importada está disponible en el Administrador como se esperaba. Anteriormente, Magento importaba los datos del cliente, pero no actualizaba la cuadrícula del cliente con los registros de clientes recién importados.
  • Magento ahora actualiza las imágenes como se esperaba cuando usa la hide_from_product_pageconfiguración al importar productos en implementaciones con múltiples vistas de la tienda.
  • Magento ahora elimina los archivos temporales <Magento_home>/varcomo se esperaba después de que se haya completado la importación del producto.
  • Magento ahora elimina productos relacionados, de venta ascendente y de venta cruzada como se esperaba en el .csvarchivo de importación cuando establece el valor del campo constante Valor de atributo vacío en _EMPTYVALUE_para productos en Sistema > Importar . Anteriormente, la venta cruzada, la venta ascendente y los productos relacionados no se eliminaban del .csvarchivo de importación .
  • Magento ahora muestra un mensaje de error más informativo y no muestra un enlace de descarga cuando intenta eliminar un directorio de la lista Sistema > Exportar . Anteriormente, cuando intentaba eliminar un directorio de esta lista, Magento continuaba mostrando un enlace de descarga para archivos que no podían descargarse, y mostraba un mensaje de error no informativo.
  • El archivo CSV utilizado durante la importación ahora contiene los enlaces correctos para productos descargables y ahora está formateado correctamente para admitir la importación y actualización de productos descargables.
  • El Indizador de acciones ahora se activa como se esperaba después de la importación y actualiza el estado del producto. Anteriormente, Stock Indexer no indexaba los datos de inventario de productos modificados.
  • Las imágenes asociadas con productos configurables ahora se cargan correctamente durante la importación y están disponibles para su visualización como se esperaba desde la página de edición del producto.
  • Magento ahora proporciona un mensaje durante la importación del producto que identifica qué productos en el archivo CSV importado tienen claves duplicadas. Los comerciantes pueden usar esta información para resolver conflictos. Anteriormente, Magento mostraba este error:Notice: Undefined index: name in /var/www/html/ee233dev/app/code/Magento/CatalogImportExport/Model/Import/Product.php on line 2524
  • Magento ahora exporta con éxito un .csvarchivo cuando configura el comportamiento de importación para Reemplazar, selecciona un .csvarchivo exportado previamente y hace clic en Verificar datos . Previamente, Magento aparece este error: Data validation failed. Please fix the following errors and upload the file again." and "Following Error(s) has been occurred during importing process.
  • Ahora puede importar con éxito un producto que no tiene un store_view_codevalor. Anteriormente, Magento mostraba un error cuando intentaba importar el producto. Corrección presentada por Mahesh Singh en la solicitud de extracción 25080 . GitHub-25069
  • La importación de cuentas de clientes se ha refactorizado para mejorar la velocidad de importación.
  • Los archivos CSV generados durante la importación del producto ahora contienen títulos de grupo para productos descargables como se esperaba. Anteriormente, la validación innecesaria de group_titledurante la importación impedía la visualización de títulos de grupo para productos descargables.
  • Ahora puede importar o actualizar con éxito clientes utilizando la opción Cliente y direcciones de un solo archivo del flujo de trabajo de importación. Anteriormente, cuando se ha seleccionado esta opción, Magento no importar los datos del cliente y se muestra este error: Invalid data for insert.
  • Magento ahora importa con éxito todas las opciones personalizadas para los productos secundarios de un producto configurable cuando store_view_codese especifica. Esto funciona tanto si elige importar productos configurables individualmente como colectivamente. Anteriormente, Magento no importaba con éxito todas las opciones personalizadas cuando el archivo de importación contenía más de un elemento y store_view_codese especificaba.
  • Los .csvarchivos exportados ahora reflejan la configuración del filtro para incluir productos en stock o fuera de stock. Anteriormente, Magento exportaba todos los productos, sin importar la configuración de stock que seleccionó.

Índice

  • El indexador parcial ya no elimina incorrectamente los datos de stock al actualizar al menos 1000 productos. Anteriormente, el indexador eliminaba los datos de existencias, lo que hacía que los productos en existencia aparecieran agotados. Corrección presentada por Pieter Hoste en la solicitud de extracción 25306 . GitHub-12205 , GitHub-15984

Infraestructura

  • Elasticsearch 7.5 es ahora el motor de búsqueda de catálogo compatible tanto para Magento Commerce como para Magento Open Source. Con esta versión, Magento 2.3.x solo admite Elasticsearch 6.xy 7.x. Elasticsearch 2.xy 5.x ahora están en desuso para Magento 2.3.xy se eliminarán en Magento 2.4.0.
  • Los componentes de Symfony se han actualizado a la última versión de soporte de por vida (4.4). (Los componentes de Symfony son un conjunto de bibliotecas PHP desacopladas utilizadas por Magento Framework).
  • Se corrigió el tipo de argumento del constructor de la dirección de correo electrónico. Arreglo presentado por Karyna Tsymbal en la solicitud de extracción 25485 . GitHub-25434
  • Los nombres de ruta de administrador ahora pueden contener un guión en la URL. Anteriormente, los validadores para el menú de acciones no aceptaban guiones. Arreglo enviado por Diego Pires en la solicitud de extracción 25612 . GitHub-25635
  • La condición de la salida del título del método de envío Magento_Checkout/js/view/summary/shippingse ha corregido. Arreglo enviado por Andrii Beziazychnyi en la solicitud de extracción 25530 . GitHub-25529

Inventario

  • Ahora puede crear una nota de crédito sin conexión. Anteriormente, cuando se trató de crear uno, Magento aparece este error: The credit memo couldn't be saved.
  • Los widgets de producto con filtro de producto establecido en Conjunto de atributos ahora funcionan como se espera tanto en el Administrador como en el escaparate. Anteriormente, cuando se configuraba el filtro de atributos, las páginas CMS tanto en el escaparate como en el Administrador no funcionaban como se esperaba cuando se implementaban múltiples fuentes de inventario.
  • Los clientes ya no pueden pagar cuando su pedido contiene más productos de los que están actualmente en stock.

Boletin informativo

  • La función de plantilla de vista previa ahora funciona como se esperaba. Previamente, Magento aparece este error al hacer clic en Vista previa de la plantilla de la página de edición de plantilla: Request-URI Too Long The requested URL's length exceeds the capacity limit for this server.

Métodos de pago

  • La integración de métodos de pago de terceros en el código central de Magento ha quedado en desuso. Con esta versión, las integraciones de los métodos de pago Authorize.Net, eWay, CyberSource y Worldpay están en desuso. Estas características principales ya no son compatibles y se eliminarán en la próxima versión menor (2.4.0). Los comerciantes deben migrar a las extensiones oficiales que están disponibles en Magento Marketplace.
  • Ahora puede completar con éxito un pedido utilizando el método de pago Payflow Link. Anteriormente, el método de pago de Payflow Link siempre rechazaba el pago porque el estado del pedido permanecía en el Pendingestado de pago, aunque el estado del pedido en los registros del método de pago era Approved.
  • El botón Realizar pedido en el flujo de trabajo de envío ahora está habilitado como se esperaba cuando selecciona Braintree como método de pago y la dirección Mi facturación y envío tienen la misma configuración deshabilitada.
  • Ahora puede crear un pedido del administrador utilizando Authorize.net como método de pago. Previamente, Magento no creó el orden, y se muestra este error: Transaction has been declined. Please try again laterGitHub-23934
  • La integración de pagos de WorldPay con el núcleo de Magento ha quedado en desuso. Utilice la extensión oficial de Marketplace en su lugar.
  • El botón Realizar pedido en el flujo de trabajo de pago ahora está deshabilitado como se esperaba hasta que el cliente actualice la dirección de facturación al pagar con Braintree. Anteriormente, cuando se habilitó seguro 3D y el cliente estaba pagando con Braintree, Magento no valida correctamente la dirección de envío y aparece este error de JavaScript: TypeError: Cannot read property 'firstname' of null.
  • El método de pago PayPal Pro ahora funciona como se esperaba en el navegador Chrome 80. Este método de pago invocó previamente un punto final de devolución de llamada de Magento que necesitaba acceso a la sesión del cliente, acceso que la nueva funcionalidad predeterminada de cookies de Chrome SameSite no permite. GitHub-26840
  • Magento ahora procesa con éxito los pedidos realizados con PayPal Express Checkout donde la dirección de envío del pedido especifica una región del país que el cliente ha ingresado manualmente en el campo de texto en lugar de seleccionarlo en el menú desplegable de la página de envío. Previamente, Magento este error aparece en la página de revisión de pedido: Error 500: NOTICE: PHP message: PHP Fatal error: Uncaught Error: Call to a member function getId() on null in httpdocs/vendor/magento/module-paypal/Model/Api/Nvp.php:1527GitHub-26698
  • Magento ahora muestra un mensaje informativo de error cada vez que un cliente hace clic en Pagar con PayPal después de ingresar una dirección de envío no válida en el flujo de trabajo de pago. Anteriormente, Magento mostraba un mensaje de error solo cuando el cliente hacía clic por primera vez en el botón, no para los clics posteriores.
  • Magento ya no cambia el estado de un pedido a procesamiento en la sección Revisión de pagos del flujo de trabajo de pago cuando falla un pago con PayPal.
  • Magento ahora guarda la información que un cliente ingresa en los campos de facturación y envío predeterminados durante el pago cuando la transacción se rechaza inicialmente debido a una tarjeta de crédito no válida pero luego se completa con éxito. Anteriormente, aunque Magento creaba el pedido cuando el cliente ingresaba información de pago válida, no actualizaba las direcciones de facturación o envío predeterminadas en la sección Mi cuenta del flujo de trabajo de pago.

Actuación

  • Las optimizaciones para el rendimiento de Redis minimizan la cantidad de consultas a Redis que se realizan en cada solicitud de Magento. Estas optimizaciones incluyen:

    • Disminución del tamaño de las transferencias de datos de red entre Redis y Magento
    • Reducción en el consumo de Redis de ciclos de CPU al mejorar la capacidad del adaptador para determinar automáticamente qué necesita cargarse
    • Reducción de las condiciones de carrera en operaciones de escritura de Redis
  • Se ha mejorado la lógica de invalidación de la sección de datos del cliente. Esta versión presenta una nueva forma de invalidar todos los datos de secciones de clientes que evita un problema conocido con el almacenamiento local cuando las sections.xmlinvalidaciones personalizadas están activas. (Anteriormente, el contenido privado (almacenamiento local) no se rellenaba correctamente cuando tenía un etc / frontend / secciones.xml personalizado con invalidaciones de acciones). Ver contenido privado .

  • Se ha mejorado el rendimiento de Index Product Rule Indexer.

Comentarios

  • Magento ahora desactiva el botón Enviar revisión después de que el usuario haga clic en el botón una vez. Anteriormente, Magento no desactivó este botón después del primer clic y creó varias revisiones cuando el usuario hizo clic en el botón Enviar revisión varias veces.
  • La lista de filtros Admin > Informes > Revisiones > Por productos ahora muestra los resultados como se esperaba. Anteriormente, cuando intentaba filtrar esta lista, Magento no mostraba ningún resultado.

Ventas

  • Las consultas de pedido ( SalesOrderIndexGridAsyncInsertCron) se han refactorizado para reducir el tamaño del conjunto de datos devuelto y la frecuencia de las consultas.
  • El campo Estado / Provincia de la página de orden de edición ahora es de tipo Dropdown. Anteriormente, en implementaciones que contenían dos sitios web donde el sitio web principal tiene restricciones de país, el campo Estado tenía un tipo de entrada de Text, no Dropdown. Esto ocurrió cuando realizó un pedido en el segundo sitio web y le permitió ingresar un valor incorrecto para Estado / Provincia .

  • El campo Estado / Provincia de la sección Dirección de facturación del flujo de trabajo de pago ahora es de tipo Dropdownen implementaciones de sitios múltiples donde la tienda predeterminada tiene restricciones de país. Anteriormente, el campo Estado / Provincia era de tipo Text, lo que le permitía ingresar un estado incorrecto.

  • Ahora puede agregar con éxito un producto en cantidades superiores a cinco a un pedido del administrador. Anteriormente, cuando se ha intentado agregar un producto en cantidades superiores a cinco, Magento aparece este error: The requested qty is not available.
  • Los pedidos completados ahora aparecen tanto en el sistema de pago como en Magento. Anteriormente, los pedidos aparecían en el sistema de pago pero no en Magento. GitHub-25862

Regla de ventas

  • quote_item.applied_rule_idsahora se actualiza como se esperaba después de deshabilitar una regla de precio de carrito. GitHub-24526
  • Las reglas de precios de carrito con una condición establecida como Categoría (solo para padres) ahora funcionan de la forma esperada.
  • Los resultados de filtrado ya no incluyen opciones agotadas cuando filtra productos configurables en una categoría.
  • Al seleccionar todos los productos de la página de la lista de productos con Elasticsearch, ahora se muestran todos los productos en los resultados de búsqueda como se esperaba. Anteriormente, Magento no mostraba resultados de búsqueda cuando esta búsqueda se ejecutaba en un servidor provisional.
  • Elasticsearch ahora funciona como se espera cuando ordena una lista de productos que contiene productos de paquete por nombres alfabéticos de productos.
  • Magento ahora representa los símbolos < y > correctamente en las cadenas de búsqueda del catálogo de escaparate.
  • Magento ahora pasa los filtros de atributos del producto como un array(en lugar de a string) a strpos(), lo que da como resultado la visualización adecuada de la lista de productos y los resultados de navegación en capas. Previamente, Magento pasó filtro de atributos del producto como array, que conducen a la tala de este error en el system.logarchivo: Warning: strpos() expects parameter 1 to be string, array given in vendor/magento/module-eav/Model/Entity/Attribute/Source/Table.php.
  • Elasticsearch ahora muestra correctamente los resultados de las páginas de categoría cuando cambia el número de resultados de búsqueda vistos por página. Anteriormente, cuando cambiaba cuántos resultados de búsqueda deberían mostrarse en la página de resultados de búsqueda, Magento mostraba una página en blanco y este error:"0":"SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near'

Envío

  • Magento ahora imprime las etiquetas de envío como un .pdfarchivo como se esperaba cuando selecciona Imprimir etiqueta de envío en la lista desplegable Acción de un pedido en la lista de archivo de pedidos. Anteriormente, Magento mostraba un error 404.
  • Los valores de opción iniciales incorrectos para el método de envío de DHL se han corregido, y este método de envío ahora funciona como se esperaba cuando está habilitado. Anteriormente, cuando se habilita el envío de DHL, Magento aparece este error en la sección del envío del flujo de trabajo de la caja: This shipping method is currently unavailable. If you would like to ship using this shipping method, please contact us.
  • La página de varios pasos del flujo de trabajo de pago ahora muestra correctamente los precios de envío con descuento cuando los descuentos están determinados por una regla de precio de carrito.
  • Magento ahora calcula correctamente los reembolsos para pedidos que incluyen descuentos. Anteriormente, Magento calculaba incorrectamente el impuesto de envío y el descuento de envío, y el total reembolsado no coincidía con el total pagado.
  • Se agregó soporte para las regiones de Colombia, y estas regiones ahora están disponibles en los menús desplegables de países de envío y facturación en el flujo de trabajo de pago. Arreglo enviado por magudelo62 en la solicitud de extracción 25313 . GitHub-25312
  • La lista desplegable que está disponible para seleccionar métodos de envío durante el proceso de creación de una Regla de precio de carrito ahora solo contiene valores válidos. Anteriormente, esta lista desplegable contenía valores vacíos o adicionales.
  • Las reglas de precio de envío gratis ahora afectan solo a los productos relevantes cuando un carrito de compras contiene productos de categorías que están incluidas en la regla de precio de envío gratis, así como productos de categorías no incluidas en la regla. Anteriormente, cuando un carrito de compras incluía productos tanto de las categorías de envío gratuito como de otras categorías no incluidas en la regla del precio, entonces el envío gratuito no se aplicaba a ningún producto.

Mapa del sitio

  • Los sitemaps parciales que se enumeran en el índice de sitemaps ahora tienen la URL correcta (por ejemplo  storeurl/pub/sitemap-1-1.xml). Anteriormente, estas URL incluían la estructura de carpetas entre la carpeta de inicio del usuario de Magento y la carpeta de instalación. GitHub-24946
  • Magento ahora usa la URL base del proyecto como se esperaba cuando genera un mapa del sitio.
  • sitemap.xml(generado desde Marketing > SEO y búsqueda > Mapa del sitio ) ahora incluye la URL de la página de inicio.

Tienda

  • Las sesiones de clientes ahora persisten como se espera cuando un cliente inicia sesión en una tienda, agrega productos al carrito de compras y luego cambia a una nueva tienda en una implementación de varias tiendas. Anteriormente, cuando el cliente navegaba a la segunda tienda, Magento cerró la sesión del cliente y vació el carrito de compras.
  • Magento ahora lo redirige a la página de detalles del producto correcta cuando cambia la vista de la tienda mientras está en una página del producto en una implementación de varios pisos. Anteriormente, cuando cambiaba la vista de la tienda, Magento lo redirigía a una página 404 en lugar de la página correcta del producto.

Pavonearse

  • Magento ahora ya no muestra un error de consola informativo cuando intenta navegar a la página de índice Swagger. Magento lanzó anteriormente un error como resultado de una corrección anterior en la que el requirejs-configbloque se eliminó del archivo de diseño de la página de índice Swagger. Arreglo enviado por Duckↄhip en la solicitud de extracción 25682 . GitHub-25680

Muestras

  • Los comerciantes ahora pueden agregar con éxito atributos de muestra de color a los productos utilizando la opción Visual Swatch en Tiendas > Atributos > Producto > Nuevo atributo . Anteriormente, se activaba un error de JavaScript cuando intentaba abrir el atributo de muestra recién creado.

Impuesto

  • Magento ahora realiza cálculos de IVA correctamente en todas las tiendas en una implementación de varios pisos. Anteriormente, Magento mostraba una tarifa de envío incorrecta en la  default tienda pero la correcta en la  en_gb tienda.
  • Magento ahora actualiza las tarifas y los precios de envío según lo esperado cuando un cliente cambia el país de destino para un pedido durante el pago.
  • El envío gratuito ahora se aplica como se esperaba según la regla de precio del carrito aplicable. Anteriormente, las reglas del precio del carro no tomaban en cuenta los impuestos al calcular si un pedido cumple con los criterios para el envío gratuito.

Pruebas

  • Se ha integrado una verificación de análisis de código PHPStan en las compilaciones estáticas de Magento. Esta herramienta realiza un sofisticado análisis de código estático e identifica problemas adicionales que actualmente no son detectados por PHP CodeSniffer y PHP Mess Detector. Consulte la Guía de pruebas de Magento .

Tema

  • Los nombres de los productos ya no se traducen si su texto coincide con una clave global.
  • Hemos resuelto un error JsFooterPlugin.phpque afectaba la visualización de bloques dinámicos. Anteriormente, Magento mostraba este error cuando accedía directamente a /banner/ajax/load/url:Uncaught TypeError: strpos() expects parameter 1 to be string, null given in

Traducción y locales

  • Las configuraciones especiales de rango de precios (desde / hasta fechas) ahora funcionan correctamente para cuentas de administrador que usan una configuración regional holandesa.
  • La traducción en línea ahora funciona como se esperaba cuando está habilitada para un escaparate.

UI

  • Los botones de opción para los métodos de envío ahora están habilitados como se esperaba en el flujo de trabajo de pago.
  • La página de edición del producto ahora se carga con éxito cuando el atributo predeterminado establecido para la página contiene un atributo desplegable con la etiqueta de selección.
  • Ahora puede desplazarse como se espera a la parte superior de la página Importar administrador. Arreglo presentado por Torben Höhn en la solicitud de extracción 25419 . GitHub-6682
  • El tamaño de la marca de agua ahora permanece consistente con la imagen a la que se ha aplicado cuando cambia el tamaño de la imagen. Arreglo enviado por KrielkipNL en la solicitud de extracción 25528 . GitHub-23515 , GitHub-25528
  • Magento ahora representa correctamente el elemento de página Leer más ... que está asociado con un producto que tiene un additionalOptionvalor que supera los 55 caracteres en las páginas de envío y factura de la tienda. Anteriormente, estos valores de opciones se escapaban. Corrección presentada por Torben Höhn en la solicitud de extracción 25418 . GitHub-25050
  • Se corrigió la posición del botón Eliminar del elemento de la lista de deseos en la página de categoría. Arreglo presentado por Paweł Tylek en la solicitud de extracción 25380 . GitHub-21190
  • Magento ahora muestra un N / A donde sea necesario en la página de lista de comparación de productos. Anteriormente, el campo para un atributo que no era relevante para el producto seleccionado se dejaba en blanco. Corrección presentada por Paweł Tylek en la solicitud de extracción 25585 . GitHub-25008
  • Magento ahora muestra el icono desplegable como se esperaba cuando hace clic en Cargar plantilla durante la creación de una nueva plantilla de correo electrónico desde el Administrador. Corrección presentada por Adarsh ​​Manickam en la solicitud de extracción 25629 . GitHub-24840
  • Magento ahora conserva la relación de aspecto correcta cuando se cambia el tamaño de un ícono de tienda para la visualización móvil. Corrección presentada por Fabricio Sobral en la solicitud de extracción 25623 . GitHub-25043
  • La función de enfoque en el cuarto nivel de un menú de navegación de varios niveles ahora funciona de manera consistente. Corrección presentada por Fabricio Sobral en la solicitud de extracción 25613 . GitHub-25589
  • Magento ahora muestra el mensaje de error correcto en el cuadro de diálogo emergente de confirmación cuando elimina un grupo de clientes. Arreglo presentado por Eden Duong en la solicitud de extracción 25662 . GitHub-25661
  • Los widgets de acordeón ubicados en widgets de pestañas ahora funcionan según lo previsto. Anteriormente, cuando hacía clic en el widget de acordeón, la pestaña se cerraba. Corrección presentada por Paweł Tylek en la solicitud de extracción 25515 . GitHub-22819
  • Se corrigió el color definido por CSS para la Cantidad mínima permitida en el campo Carrito de compras de la página Administrador > Tienda > Configuración > Inventario . Arreglo enviado por Eden Duong en la solicitud de extracción 25648 . GitHub-25647
  • Las imágenes de logotipo que se están cargando en el Administrador ahora se muestran con sus dimensiones nativas si no se establecen explícitamente parámetros de ancho y alto. Anteriormente, un administrador podía establecer logo_img_width y  logo_img_height bloquear argumentos en el archivo de diseño para el bloque del logotipo, lo que podría distorsionar la visualización del logotipo. Arreglo enviado por Krzysztof Daniel en la solicitud de extracción 25789 . GitHub-25042
  • Revertimos una solución anterior (https://github.com/magento/magento2/pull/25309) que introdujo un cambio en los estilos globales que tuvo la consecuencia no deseada de romper estilos en toda la tienda.

URL reescribe

  • Los clientes que cambian de idioma en una página de CMS ahora pueden navegar con éxito a la vista de la tienda que han seleccionado. Anteriormente, Magento mostraba un error 404.
  • Ahora puede guardar una categoría que contiene muchos productos (por ejemplo, 140000). Anteriormente, guardar una categoría con tantos productos devolvía un error 503.

Marco de API web

  • Problemas corregidos con las /rest/default/async/bulk/V1/ordersllamadas POST .
  • Problemas corregidos con las /rest/default/async/bulk/V1/productsllamadas POST .
  • Los productos secundarios de un producto configurable ahora se pueden deshabilitar con éxito a través de la API.

Lista de deseos

  • Una lista de deseos ahora funciona como se espera cuando está habilitada en el nivel de vista de la tienda y deshabilitada en el nivel global. Anteriormente, cuando estas configuraciones estaban en su lugar, agregar un producto a una lista de deseos resultó en un error 404.

WYSIWYG

  • El editor WYSIWYG ahora funciona como se esperaba en Internet Explorer 11.x. Anteriormente, cuando editaba un campo con el editor, el texto seleccionado se deseleccionaba al hacer clic en Enlace . Corrección presentada por Mateusz Krzeszowiak en la solicitud de extracción 25693 . GitHub-13209
  • Magento ahora puede mostrar con éxito dos o más editores WYSIWYG en una página de edición de productos de catálogo. Anteriormente, solo se mostraba un editor de trabajo. Corrección presentada por Nazar Klovanych en la solicitud de extracción 25556 . GitHub-18548
  • El editor WYSIWYG ya no se cuelga indefinidamente cuando intenta cargar una imagen desde el administrador. Anteriormente, la ventana emergente de carga de imágenes se colgaba hasta que actualizaba la página. Corrección presentada por Nazar Klovanych en la solicitud de extracción 25556 . GitHub-23966

Problemas conocidos

Problema : Magento pautas y los clientes se conecten mediante la visualización de este mensaje: This account is not confirmed. Click here to resend confirmation email. El enlace Haga clic aquí en este mensaje debería abrir la página Enviar enlace de confirmación, pero actualmente está inactivo. Solución alternativa : el parche de reenvío del problema del enlace de correo electrónico de confirmación de cuenta ahora está disponible para este problema. Consulte Reenviar el parche de problema de enlace de correo electrónico de confirmación de cuenta para Magento 2.3.5 . Una solución permanente estará disponible en Magento 2.3.6, cuyo lanzamiento está programado para el cuarto trimestre de 2020.

Problema : Magento 2.3.5 no admite la actualización mediante el Asistente de configuración web desde implementaciones que ejecutan Magento 2.3.3 o anterior sin actualizar primero las dependencias manualmente magento/updater. Puede actualizar utilizando el Asistente de configuración web sin problemas de Magento 2.3.4 a Magento 2.3.5. Solución alternativa : los usuarios deben ejecutar los siguientes comandos antes de actualizar utilizando el Asistente de configuración web:

cd update

&& composer update

Problema : la función Comparar productos no funciona como se esperaba en implementaciones con múltiples vistas de tienda. Cuando un usuario intenta comparar productos de múltiples vistas de la tienda y un producto tiene un valor vacío para un atributo comparable, Magento muestra una página corrupta Comparar productos. Solución alternativa : los valores de atributos comparables no pueden estar vacíos. Los comerciantes deben especificar valores no vacíos para atributos de producto comparables o usar el valor de vista de tienda predeterminado para el atributo. Una solución estará disponible en Magento 2.3.6, cuyo lanzamiento está programado para el cuarto trimestre de 2020.

Problema : el flujo de trabajo de pago de la tienda no mostrará ningún método de pago que se haya habilitado solo para países específicos, con la excepción de estos métodos de pago: PayPal, Braintree, Klarna y Amazon Pay. Solución alternativa : no hay disponible una solución alternativa para este problema en Magento 2.3.5. Una solución estará disponible en Magento 2.3.6, cuyo lanzamiento está programado para el cuarto trimestre de 2020.

Problema : aparece un mensaje de error cuando un comprador intenta cambiar su tarjeta de crédito desde el widget de pagos mientras realiza el pago con Amazon Pay. El comprador no puede completar con éxito el pago ignorando el error y procediendo al pago. Para resolver este problema y eliminar el error, consulte Error de cambio de tarjeta de crédito de Amazon Pay para aplicar la solución.

Problema : no puede completar un pedido que se enviará a varias direcciones si uno de los productos pedidos es un producto virtual. Actualmente, cuando finaliza la compra, Magento realiza con éxito el pedido de los productos físicos, pero el pedido del producto virtual está vacío. Solución alternativa : habrá una solución disponible en Magento 2.3.6, cuyo lanzamiento está programado para el cuarto trimestre de 2020.

Problema : el mensaje del sistema que muestra Magento después de una acción masiva (por ejemplo, una actualización masiva de un producto o importación / exportación) muestra un recuento de 0 en lugar de un recuento preciso de los productos afectados por la acción masiva. Solución alternativa : habrá una solución disponible en Magento 2.3.6, cuyo lanzamiento está programado para el cuarto trimestre de 2020.