[仅限PaaS]{class="badge informative" title="仅适用于云项目(Adobe管理的PaaS基础架构)和内部部署项目上的Adobe Commerce 。"}
Magento Open Source 2.4.2发行说明
Magento Open Source 2.4.2不仅在性能和安全性方面进行了增强,而且在平台方面也进行了显着改进。 安全增强功能包括扩展对所有Cookie的SameSite属性的支持。 现在支持Elasticsearch 7.9.x和Redis 6.x。
此版本包括对核心代码的280多项新修复和35项安全增强功能。 其中包括我们的社区成员解决近290个GitHub问题。 这些社区贡献的内容包括对核心代码进行次要清理,以及GraphQL中的重大增强。
此版本中修复了2.4.1中识别的所有已知问题。
应用AC-3022.patch以继续将DHL作为装运承运人提供
        DHL已引入架构版本6.2,并且将在不久的将来弃用架构版本6.0。 支持DHL集成的Adobe Commerce 2.4.4及更早版本仅支持版本6.0。部署这些版本的商家应尽早应用AC-3022.patch,以继续将DHL作为装运承运人提供。 有关下载和安装修补程序的信息,请参阅应用修补程序以继续将DHL作为运输运营商提供知识库文章。
安全补丁可用
商家现在可以安装时效性安全修复,而无需应用完整季度版本提供的数百个功能修复和增强功能(例如,2.4.1-p1)。 修补程序2.4.0.12 (Composer包2.4.1-p1)是一个安全修补程序,它针对我们以前的季度版本2.4.1中发现的漏洞提供了修补程序。此安全修补程序中包含应用于2.4.1版本的所有修补程序。 (修补程序提供对已发布版本的修补程序,该版本可解决特定问题或错误。)
有关安全修补程序的一般信息,请参阅Introducing the New Security Patch Release。 有关下载和应用安全修补程序(包括修补程序2.4.1-p1)的说明,请参阅快速入门本地安装。 安全修补程序仅包括安全错误修复,而不包括完整修补程序中包含的其他安全增强功能。
其他发行信息
虽然这些功能的代码与季度版本捆绑在一起,但其中几个项目(例如,Progressive Web Applications (PWA) Studio)也单独发布。 每个项目的文档中都提供了特定于项目的单独发行信息,其中记录了这些项目的错误修复。
高亮
在此版本中查找以下要点。
显着的安全增强功能
此版本包括35项以上的安全修复和平台安全改进。 所有安全修复均已回溯到2.4.1-p1和2.3.6-p1。
超过35项安全增强功能,可帮助消除远程代码执行(RCE)和跨站点脚本(XSS)漏洞
到目前为止,尚未发生与这些问题相关的已确认攻击。 但是,可能会利用某些漏洞访问客户信息或接管管理员会话。 这些问题中的大多数要求攻击者首先获得对管理员的访问权限。 列入允许列表因此,我们提醒您采取一切必要步骤来保护您的管理员,包括但不限于:IP身份验证、双重身份验证、使用VPN、使用唯一位置而非/admin以及良好的密码卫生。 有关这些已修复问题的讨论,请参阅Adobe安全公告。
其他安全增强功能
此版本的安全性改进包括:
- 
                  所有核心Cookie现在都支持 SameSite属性。
- 
                  现在,当用户尝试在产品和类别说明字段中保存值时,应用程序会显示可识别潜在恶意内容的消息。 
- 
                  跨组件的文件系统操作已经标准化和强化,以防止恶意上传。 
- 
                  已修复核心内容安全策略(CSP)违规。 
基础架构改进
此版本包含对核心质量的增强,这些改进改进了Framework以及以下功能区域的质量:客户帐户、目录、CMS、OMS、导入/导出、促销和定位以及购物车和结账。
平台增强功能
- 
                  现在支持Elasticsearch 7.9.x。 虽然我们建议运行Elasticsearch 7.9.x,但版本2.4.x仍与Elasticsearch 7.4.x兼容。 
- 
                  2.4.2已通过清漆6.4测试。 版本2.4.x仍与Varnish 6.x兼容。 
- 
                  现在支持Redis 6.x。 版本2.4.x仍与Redis 5.x兼容。 
- 
                  2.4.2现在与 Composer 2.x 兼容。 我们建议商家迁移到Composer 2.x。虽然您可以使用Composer 1.x安装此版本,但Composer 1.x的生命周期将很快终止。 有关Composer 2.x功能的概述,请参阅Composer 2.0现已可用! 
在此版本中,将安装配置为使用拆分数据库的功能已被弃用。 当前使用拆分数据库的商家应该开始计划恢复或迁移到单个数据库,或者使用替代方法。 有关此问题的概述,请参阅Magento Open Source DevBlog文章中的弃用拆分数据库功能。 有关迁移说明,请参阅从拆分数据库还原到单个数据库。
性能增强
此版本包括代码增强功能,可提高具有大型目录的部署的API性能和管理员响应时间。 多个可扩展性增强使2.4.2能够本机支持比以前版本多20倍的复杂目录。
Adobe Stock集成
此版本包括Adobe Stock集成v2.1.1。
GraphQL
此版本添加了GraphQL涵盖以下功能的功能:
- 
                  添加了对比较列表的支持。 购物者可以创建和删除比较列表,以及将添加和删除项目至比较列表。 此外,以访客身份创建比较列表的购物者可以客户身份登录,并保留其比较列表。 
- 
                  添加了 generateCustomerTokenAsAdmin突变并更新了Customer对象以支持远程购买帮助。
- 
                  添加了跨商店的本地化支持,以支持更改语言、购物车和货币等任务。 
- 
                  添加了对GraphQL中工会活动的支持。 GitHub-29425 
- 
                  GraphQL架构已得到增强,可优化具有许多变体的可配置产品的产品数据检索。 
- 
                  已弃用整数类型对象ID,以支持类型ID的 uid属性。
- 
                  已将 staging属性添加到ProductInterface和CategoryInterface,以确定产品是否已暂存,并查看其关联的促销活动信息。
有关这些增强功能的详细信息,请参阅GraphQL开发人员指南。
PWA Studio
此版本的PWA Studio包括:
- 
                  国际化和本地化。 Venia现在支持多种语言和货币。 
- 
                  改进了可扩展性框架,通过扩展支持代码更改。 
- 
                  与“我的帐户”相关功能(如愿望清单、保存的付款、通讯簿和订单历史记录)的初始组件。 
- 
                  各种性能优化和错误修复。 
有关增强功能和错误修复的信息,请参阅PWA Studio版本。 有关PWA Studio版本及其兼容版本的列表,请参阅兼容性。
媒体集
媒体集的新角色资源。 此版本使商家能够限制管理员仅访问媒体集,并控制谁可以执行这些操作:
- 
                  将媒体资产插入内容 
- 
                  上传资源 
- 
                  编辑资源详细信息 
- 
                  从媒体集中删除资源 
- 
                  管理文件夹结构。 
内容中的 Web优化图像。 商家现在可以在内容中使用Web优化图像演绎版,而不是高分辨率图像。 原始图像在媒体集中保持未修改状态,并且当图像插入到内容中时,动态生成图像演绎版。
功能测试框架(MFTF)
MFTF 3.2.1现已推出。 此发行版本在测试和测试包生成中都引入了容错。 功能测试框架更改日志中介绍了其他增强功能和错误修复。
供应商开发的扩展
有关此版本功能和更改的更新,请参阅以下文章:
AWS S3支持增强功能
Amazon Simple Storage Service (AWS S3)支持已得到增强,现包括对以下各项的支持:
- 
                  对象存储和未来的可扩展性 
修复的问题
我们已在2.4.2核心代码中修复了数百个问题。
安装、升级、部署
- 在此版本中,将安装配置为使用拆分数据库的功能已被弃用。 请参阅Magento Open Source DevBlog文章中的弃用拆分数据库功能。
- 商家现在可以成功地将运行MySQL 8.x的Open Source部署升级到Commerce部署。 以前,对于升级期间添加了AUTO_INCREMENT的所有表,row_id值恢复为初始值时,应用程序会引发异常。
- 如果运行bin/magento/setup:db:generate-patch时出错,应用程序现在会显示一条错误消息,该消息标识用于创建修补程序的路径。 GitHub-27523
- 执行block_html后,full_page、layout和bin/magento/setup:upgrade缓存现已按预期禁用。 GitHub-28186
- bootstrap.php中所需的最低PHP版本已更新。 GitHub-30004
- 现在,您可以在安装示例数据后执行bin/magento/setup:upgrade。 以前,当您尝试执行bin/magento/setup:upgrade时,应用程序显示此错误:unable to apply data patch magento\catalogrulesampledata\setup\patch\data\installcatalogrulesampledata for module magento_catalogrulesampledata。 应用程序还在系统日志中显示此错误:main.ERROR: Sample Data error: Unable to unserialize value. Error: Syntax error。 GitHub-30685
- 现在,您可以按预期从命令行设置YouTube API密钥。 以前,当您尝试执行bin/magento config:sensitive:set catalog/product_video/youtube_api_key时,应用程序返回此错误:There are no sensitive configurations to fill。
- 应用程序现在接受在maxMessages中定义的queue_consumer.xml值。 以前,应用程序仅使用部署配置值。 GitHub-29522
- 使用bin/magento setup:config:import创建存储时,新存储的URL生成现在可按预期工作。 以前,生产环境中不会生成URL重写。 GitHub-30025
- 安装Magento Open Source后,当您尝试使用backend-frontname容器更改ssh时,应用程序不再引发错误。 GitHub-26762
- 当您运行bin/magento setup:install以连接到现有数据库时,应用程序不再显示此问题:Overwrite the existing configuration for db-ssl-verify?[Y/n]。 GitHub-29612
Adobe Stock集成
- 添加了对读取exif_image.png或exif-image.jpeg元数据的支持。 GitHub-1449
- 您单击媒体集的默认视图书签时显示的内容不再进行过滤。 以前,默认视图包含从url-filter应用程序应用的筛选器。 GitHub-1813,GitHub-1789,GitHub-1780
- 已从WYSIWYG OnInsert控制器(Magento\Cms\Controller\Adminhtml\Wysiwyg\Images\OnInsert::execute())中删除逻辑并将其添加到Model\Wysiwyg\Images\PrepareImage::execute()模型。 GitHub-1504
- 已从media-content:sync命令(\Magento\MediaContentSynchronization\Console\Command\Synchronize::execute)中删除区域模拟。 GitHub-1784
分析
- 现在,高级报告可按预期方式用于同一域中的多个环境。 以前,由高级报表生成的CSV文件失败,因为双引号会使用反斜杠进行转义,而不是按照CSV标准RFC4180的要求使用另一个双引号进行转义。
- 现在,使用默认端口或非默认端口连接到analytics_collect_data中的MySQL时,env.php作业将成功运行。 以前,analytics_collect_data在您使用非默认端口时引发错误。
- 由analytics_collect_data生成的CSV文件现已正确转义。 以前,这些文件生成时没有正确的转义,这会阻止生成清单报告。
Braintree
- 
                  现在,购物者可以使用Apple Pay成功订购虚拟产品。 以前,应用程序引发此错误: There are no shipping methods available for you right now. Please try again or use an alternative payment method。
- 
                  现在,默认的PayPal Express结账支付方法可按预期用于Braintree信用卡支付方法。 以前,启用Braintree信用卡支付方式时,应用程序不显示 PayPal 按钮。 
捆绑产品
- 应用产品不再为报价中的固定价格捆绑产品子项设置价格。
- 现在,当捆绑产品包含缺货产品时,价格排序可按预期运行。 以前,按降序排序的价格不按降序显示产品。
- 当存在多个选项时,应用程序现在会自动为捆绑产品选项应用缺省数量1。 以前,商家必须手动为每个选项分配默认数量。
- 订单发票创建页面现在会按预期显示捆绑产品的子产品。 GitHub-27350
- 现在,当您以自定义价格重新订购捆绑产品中的简单产品时,应用程序会分配正确的产品价格。 以前,在捆绑产品上设置自定义价格会导致重新订购时附加的简单产品价格不正确。 GitHub-30343
- 调用POST /V1/order/{orderId}/ship以发送包含捆绑产品的订单,现在会将该订单标记为按预期完成。 以前,应用程序显示此错误消息:You can't create a shipment without products。 GitHub-9762
购物车和结账
- 现在,当自定义地址属性显示在结账工作流的配送步骤上时,配送方式估算器可按预期工作。 以前,应用程序显示此错误消息: {"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
- 当购物者删除购物车中的唯一项目时,应用程序现在会按预期在迷你购物车中显示You have no items in your shopping cart消息。 以前,当购物者删除单个项目且应用程序显示此消息时,checkout/cart/removeFailed的购物车数据未更新:1 product requires your attention。
- 对于不适用的发运方法,应用产品不再显示订单的发运成本。 以前,对于结账工作流中不适用的配送方式,应用程序显示的价格为0。
- 现在,在取消选中结账工作流上的 我的帐单和送货地址相同 复选框时,会选择客户的默认帐单地址。
- 当购物者在不同域中从一个商店切换到另一个商店时,购物车内容不再丢失。
- 现在,购物者可以在使用多种配送方式时,使用多个地址的结帐功能成功完成订单。 以前,应用程序显示此错误: There has been an error processing your request。 GitHub-30197
- 现在,当购物者从购物车更改商店视图时,应用程序会在结账工作流的配送页面上显示正确的默认国家/地区。
- 现在,当访客购物者登录后,在注销后密码重置后清除客户会话时,应用程序会排除当前会话。 以前,当购物者重置密码时,应用程序会清空购物车。
- 当购物者更改购物车中的商店视图时,应用程序现在为商店视图显示正确的默认国家/地区。 以前,在购物车中更改商店视图时,默认国家/地区不正确。
- 已删除对购物车上/rest/V1/guest-carts/cart_id/totals-information端点的冗余调用,这改进了购物车性能。 以前,当购物者将产品添加到购物车,然后查看购物车时,应用程序多次调用collectAddressTotals方法。
- 禁用 如果国家/地区允许选择状态 设置是可选的,则应用程序不再显示签出工作流中国家/地区的 区域 字段。 GitHub-30747
- 从管理员重新订购订单后,应用程序不再重复店面结账工作流中的送货地址。
- 已更正AdminMediaGalleryInsertLargeImageFileSizeTest的设计问题。
- 在quote中,customer_is_guest field表中所有来宾的新记录现在都分配了值1。 以前,对于将产品添加到购物车的每个新访客,在quote.customer_is_guest字段中为记录分配了0。
- 签出工作流的“审核和付款”部分上的 提交 按钮已移至<form id="purchaseorder-form"...></form>内部,这使得隐式表单提交成为可能,而无需更改任何JavaScript。 GitHub-27925
- 禁用 如果国家/地区允许选择状态 设置是可选的,则应用程序不再在签出工作流上显示 区域 字段。 GitHub-30747
- 当购物者在结帐时通过多个地址单击 更新购物车 时,应用程序现在可以正确更新购物车的商品小计。 GitHub-30408
- 对于当前未安装的付款方法,当存在config.xml节点时,应用程序不再引发异常。 以前,应用程序在签出期间引发异常。 GitHub-29555
- 现在,应用程序在迷你购物车中正确呈现包含特殊字符的产品名称。 GitHub-29075
- 应用产品现在为表费率设置正确的折扣包。 以前,应用程序在计算表费率时不会应用为购物车设置折扣的购物车规则。 GitHub-30169
购物车价格规则
- 现在,在计算订单小计时按预期应用购物车价格规则,而不考虑税费。 新的Subtotal (Incl. Tax)选项已添加为购物车价格规则条件。
- 现在,在使用 固定金额折扣作为整个购物车 操作时,使用GraphQL应用附有优惠券的价格规则可按预期工作。
目录
- 现在,该应用程序会按预期显示所有重新启用的店面产品。 以前,在禁用某个产品然后重新启用该产品时,在清除Varnish页面缓存或重新索引商店之前,应用程序不会显示该产品,因为重新启用产品后,页面缓存不会失效。
- 对大型目录的部分重新索引现在按预期进行。 以前,在使用catalogsearch_fulltext部分索引器重新索引期间,产品会随机从店面类别页面中消失。
- 购物者现在可以按预期重新订购带有可自定义选项的产品发票订单。 以前,当购物者尝试重新排序时,应用程序引发此错误: {"0":"The product's required option(s) weren't entered. Make sure the options are entered and try again。
- 您现在可以在“类别设计”页面上成功将 布局 设置设置为无布局更新。 以前,当您分配 无布局更新 值时,应用程序恢复为类别 — FullWidth。
- 店面的产品排序顺序问题已得到解决。 以前,当应用程序索引产品价格时,它偶尔会在min_price表中将可配置产品的max_price和catalog_product_index_price设置为0,这会影响店面的价格排序顺序。
- 应用程序现在已成功更新标记为Product Type的属性。 以前,由于代码中保留了product_type属性,因此当您尝试更新Product Type属性时,应用程序会显示此消息:An attribute with the same code (product_type) already exists.
- 保存产品时,应用程序不再更改已上传视频在产品详细信息页面的“图像和视频”部分中的位置。 以前,为新图像位置分配一个索引值(列表中的位置),如果现有图像位置与其索引值不一致,则新图像会错误地放置在列表中。
- 现在,只要 添加到购物车 按钮可供单击,添加到购物车功能即可按预期工作。 以前,如果您在等待加载产品页面时多次单击此按钮,应用程序会引发以下错误: Invalid Form Key. Please refresh the page。
- 当商家向类别中添加或删除禁用产品时,应用程序不再刷新类别缓存。 以前,应用程序会刷新相关类别的缓存,而不管产品状态如何。 在保存类别时,类别也会取消分配,这会导致刷新类别缓存。
- 现在,所有商店视图范围内的目录产品筛选可以正常工作。 以前,在网格中显示状态为Enabled或Disabled的产品,而仅过滤启用或禁用的产品。
- 部分重新索引不再导致错过产品和空类别。
- 启用 使用JavaScript日历 后,重新排序现在可按预期运行(商店 > 配置 > 目录 > 日期和时间自定义选项)。 以前,启用此设置后,当您尝试从管理员重新排序以前下单的订单时,应用程序会显示此错误: Please specify date required option(s)。
- 现在,应用程序在创建层价格期间在多站点部署中显示正确的货币。
- 产品图像自定义属性现已正确转义。 data-src属性的值与src属性的值相同(按预期)。 以前,URL特殊符号会被转义。
- 通过REST API更新类别时,不再禁用“启用类别”、“包含在菜单中”和“URL密钥属性”中的 使用默认值 设置。
- 现在,保存类别只会刷新与此类别相关的块缓存。 以前,应用程序刷新所有类别块的缓存。
- 在多商店部署中,具有百分比价格的自定义选项的价格现在会按预期转换为活动商店的基本货币。 以前,具有百分比价格的自定义选项的价格无法正确转换。 GitHub-26432
- 应用程序现在已成功重新创建图像,并且每当商家使用POST rest/all/V1/products发送媒体集数据时,这些图像都会按预期在管理员中可见。 以前,如果图像在rest/all/V1/products中被删除,但是媒体中的记录仍然包含这些图像的记录,当商家通过POSTpub/media发送媒体集数据时,应用程序重新创建了图像,但是删除了这些图像。 因此,商家在管理员中只看到占位符,因为图像是在更新过程中创建和删除的。
- 现在,当您从网站取消分配项目时,会按预期删除记录。 以前,在执行POST rest/all/V1/products时复制图像。
- /V1/categories/{categoryId}/products调用现在会按预期返回属于父类别的所有产品列表。 以前,如果产品属于父类别的多个子类别,则应用程序会引发此类型的错误:- Internal Error. Details are available in the application log file. Report ID: webapi-5f8579e37db54。 GitHub-30461
- /V1/products/attributes/:attributeCode/optionsREST终结点现在支持更新现有的属性选项。
- 在多商店部署中,具有百分比价格的自定义选项的价格现在会按预期转换为活动商店的基本货币。 以前,具有百分比价格的自定义选项的价格无法正确转换。 GitHub-26432
- 商家现在可以在产品创建过程中成功保存新属性。 以前,当商家尝试保存属性时,应用程序不会保存该属性,并将商家重定向到商店视图主页。 GitHub-30362
- Sales > Orders和Catalog > Products页面上的产品网格现在列出了所有相关商店,而不仅仅是最近创建的商店。 GitHub-29267
- 产品存储库现在使用store_id来保存现有产品的属性值。 以前,产品存储库类会覆盖产品存储库ID,并始终为它分配默认存储库ID。 GitHub-29933
目录规则
- 现在,对于产品详细信息页面上的自定义选项,目录价格规则可按预期工作。 以前,该页面上的产品价格不反映适用的目录价格规则。 GitHub-22856
- 产品和目录缓存现在会按计划过期。 以前,缓存每天过期,因为сron每天运行一次catalogrule_apply_all任务(重新索引所有目录规则和依赖索引器),并清除所有产品和类别的缓存。
Cleanup
拼写错误和语法清理
- 已修订“订单失败”页的标题以提高准确性。 以前,此页面的标题为: 我们已收到您的订单!。 GitHub-29416
- 删除了app/code/Magento/Contact/view/frontend/templates/form.phtml中不必要的空格。 GitHub-29779
- 更正了bin/magento/setup:config:set子命令帮助消息中的拼写错误。 GitHub-28802
- 已更正framework/Registry.php文件的PHPDoc中的语法。 GitHub-29661
- 从app/code/Magento/Catalog/Helper/Product/View.php中删除了无关的空格。 GitHub-30601
- 在app/code/Magento/Ui/view/base/web/js/form/element/ui-select.js中更正了函数名称中的拼写错误。 GitHub-29987
- 更正了迷你购物车和结帐订单摘要中“项目”的多元化设置。 GitHub-29920
- 删除了标记分层导航过滤器中的内联元素中的空格。 GitHub-30448
- 已在rl中将url更正为\Magento\Framework\Filter\Template\Tokenizer\Parameter。 GitHub-29185
代码清理
- 已从<br>系统 > 导入 页面的“检查数据”消息区域中删除一个无关的HTML 标记。
- ChangeQuoteControl已重构。 GitHub-29673
- AccessChangeQuoteControl及其单元测试已重构。 GitHub-29672
- 更正了app/code/Magento/Captcha/CustomerData/Captcha.php中返回类型声明的代码样式。 GitHub-29712
- 更正了按钮列表在“新建属性”页面上的位置。
- 为viewModel类的前端\Magento\Framework\View\Element\Template引用示例添加了正确的块类。 GitHub-30450
- 删除了Sale Rule表单中的冗余字段集。 GitHub-29599
- 已从hierarchy/edit.phtml模板中删除不必要的代码。
- 已更正app/code/Magento/CatalogImportExport/Model/Export/Product.php中的PHPdoc注释。 GitHub-30833
- 已更正PublisherInterface消息的docblock注释。 GitHub-30190
- 更正了getStatusByState方法中的参数。 GitHub-30173
- 已更正app/code/Magento/Quote/Model/Cart/Totals/ItemConverter.php中的方法描述。 GitHub-30125
- 在多个文件的同一行中删除多余的变量分配。 GitHub-30133
- 在@param string $attribute中将@param AbstractAttribute|string[]|string $attribute更改为EntityAbstract.php。 GitHub-30191
- 在整个代码库中,已从文档块中删除无效标记(例如@package和@subpackage)。 GitHub-30061
- AdvancedPricing类的构造中未使用的参数已被删除。 GitHub-29531
可配置的产品
- 现在,按价格筛选缺货的可配置产品会显示正确价格范围内的结果。
- 当虚拟产品的状态从“已启用”更改为“已禁用”时(反之亦然),虚拟产品不再更改类型。 以前,当产品的状态发生变化时,应用程序会将其类型从虚拟更改为简单。
- 更新购物车时,getValue()方法不再触发致命错误。
- 多个网站上提供的可配置产品不再显示未分配给特定网站的简单子产品。 GitHub-28291
- 店面产品页现在按预期显示分层价格,无需纳税。 GitHub-12225
- 可配置产品的MSRP价格现在正确地转换为所选货币。 以前,应用程序以错误的货币显示价格,并引发此错误: Call to a member function setAppliedTaxes() on null。 GitHub-26526,GitHub-29603
- 商家现在可以保存特定于商店的文本样本属性选项标签,其值为0(零)。 以前,值0会被替换为管理员标签选项值。 GitHub-30073
cron
- 现在,系统消息列表会在cron运行且应用程序按计划更新产品后准确反映产品更新。
- 基于schedule_id和status的索引已添加到cron_schedule表中。 GitHub-29601
自定义客户属性
- 应用程序现在在创建后会在“帐户信息”页面上显示file类型的客户属性。 以前,当您尝试保存此类型的新属性时,应用程序显示以下错误:The "newAttribute" attribute value is empty. Set the attribute and try again和Validation is failed。
- 应用程序现在可以正确显示多行自定义客户属性值。 以前,并非显示所有数据。
- 现在,当购物者在创建帐户时输入无效的出生日期时,应用程序会向购物者发出提醒。 以前,验证器忽略区域设置,购物者被重定向到“新建客户帐户”页面,并显示无效的日期错误。
- 现在,自定义地址属性已按预期包含在结账工作流的付款步骤中。
- 自定义地址多选属性现在可在访客结账期间以及管理员和我的帐户订单详细信息页面上正确显示。
- 当Input Type设置为Text且Input Validation设置为Numeric Only时,您现在可以删除自定义客户属性中的前导零。
- 该应用程序现在可成功导出包含自定义性别属性值的客户数据。
客户
- 店面客户帐户页面出生日期字段的日历构件现在使用指定的店面区域设置。
- 在从管理员为现有客户重新订购结帐期间,应用程序不再保存客户地址的重复条目。
- 现在,如果从管理员中删除多个客户的所有地址,则会从客户地址列表中删除所有地址,并删除默认的帐单和送货地址。 以前,应用程序从客户地址列表中删除该地址,但未删除默认帐单和送货地址。
- 管理员对地址执行批量删除后,“管理员客户地址”选项卡现在可以正确显示地址计数。 以前,应用程序在计数中包含已删除的地址。
- 客户注册页面上 出生日期 字段的日期时间格式已更正。 以前,在前面一天只有一位数字的前导零缺失。
- 现在,购物者单击 创建帐户 按钮之前,可以对 出生日期 字段进行日期格式验证。 以前,购物者可能以无效格式输入值,当他们单击 创建帐户 按钮时,购物者将被重定向到“新建客户帐户”页面,其中显示无效日期错误。
- 当管理员尝试保存包含属性无效数据的新客户帐户时,应用程序不再引发致命错误。
- 当客户尝试在之前安装了Magento Shipping并且当前部署了默认Luma主题的部署中访问其购物车时,应用程序不再引发400错误。 以前,应用程序在向服务器发送请求之前,不会过滤掉以前安装/启用的模块创建的节名称,这些模块在管理员中不受支持,从而会生成错误。
- 当启用 要求电子邮件确认 设置且已覆盖Magento\Customer\Controller\Account\CreatePost时,购物者创建来宾帐户时,应用程序现在会按预期显示消息。 以前,应用程序不允许对用户注册过程进行这种类型的自定义,在这些条件下,用户的电子邮件确认状态被视为完成,新用户会自动登录,并且不会显示错误消息。
- 在启用了 启用自动分配给客户组 的商店中,当购物者向非默认客户组下达订单时,应用程序现在会将购物者分配给正确的客户组。 GitHub-26976
- 当索引设置为 按计划更新 时,在多站点部署中删除非默认网站时,管理员客户网格现在可按预期使用。 以前,应用程序不显示网格并引发此错误: [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
- 
                  从dotdigital Engagement Cloud检索程序列表时改进了错误处理。 
- 
                  来宾同步期间在store name列中同步的值现在按预期是存储视图名称。 以前,网站名称包含在此列中。 
- 
                  在保存订单后循环执行订单状态自动化之前添加了数组检查。 
- 
                  解决了dotdigital模块依赖于 magento/module-authorization而导致编辑器升级的问题。
可下载
- 在部分退款之后,应用程序不再在“我的下载产品”选项卡中列出可下载的产品。 GitHub-28388
EAV
- 现在,如果在通过API调用创建产品时有效载荷中未提供值,则使用\Magento\Eav\Model\Entity\Attribute\Backend\ArrayBackend的自定义属性将使用默认值。
电子邮件
- 未在\Magento\Config\Model\Config\Source\Email\Template::toOptionArray之前调用setPath()时,toOptionArray()不再引发错误。 GitHub-29315
- 现在,在加载电子邮件模板时单击 返回Html版本 后,应用程序可正确地将纯文本转换为HTML。
- 发送给客户的包含部分发票的电子邮件现在包含准确的物料小计。 以前,此电子邮件中的小计是订购数量的总计,而不是开票数量的总计。
- 现在,该应用程序会向具有有效电子邮件地址的所有相关客户发送电子邮件提醒。 以前,应用程序在遇到一个无效地址后停止向客户发送提醒电子邮件。
- 从目录中删除产品后,现在可以按预期以异步模式发送销售电子邮件。 以前,异步电子邮件发送被阻止,应用程序显示以下错误: 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
- 在禁用sales_email/order_comment/enabled并将sales_email/order_comment/copy_method设置为bcc时,应用程序不再复制订单确认电子邮件中的客户。 GitHub-29915
框架
- 现在,在搜索客户时,可正确应用自定义的过滤器组。 以前,afterSearch函数没有按预期进行OR筛选。 GitHub-24576
- 商店主页上的图像现在已成功呈现。 以前,页面源HTML已损坏,因为图像的base64代码中的三个连续斜杠被错误解释为评论。
- 现在,在使用阿拉伯语区域设置(ar_SA - Saudi Arabia)的商店中的“管理员订单”列表上过滤订单时,日期选取器可正常工作。
- 现在,商家在部署中保存购物车价格规则后,日期选取器会显示正确的日期。 GitHub-30382
- 该应用程序现在可以正确表示阿拉伯千位分组和阿拉伯小数分隔符。 以前,阿拉伯文符号会被修剪。 GitHub-26676
- 应用程序现在会按预期从数据库session表中删除过期的数据库会话。
常规修复
- 您现在可以配置与php.ini中定义的处理程序不同的本机会话处理程序。 以前,SessionManager未将memcache设置为save_handler,而是使用文件的session_handler。 应用程序引发此错误: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
- 
                  已对 LoginAsCustomer模块进行以下改进:- 
                      已将 around插件替换为after
- 
                      删除多余代码 
- 
                      已将 (bool)->getValue()替换为isSetFlag。 GitHub-29689
 
- 
                      
- 通过通配符(*)重新加载所有客户数据节不再导致customer/section/load的请求引发400错误。 GitHub-28154
- 应用程序现在传递在生产模式下将布局呈现到var/report时发生的异常。 GitHub-29606
- 商家现在可以根据预期取消分配类别中的产品。 以前,应用程序抛出与此错误类似的错误: Could not save product "4" with position 0 to category 3。
- 当不存在客户请求重置密码时,应用程序现在会引发异常。 GitHub-26288
- 现在,当管理员在上传具有客户属性值的文件时尝试保存包含该属性无效值的客户帐户时,应用程序会显示信息性错误消息。 以前,应用程序抛出致命错误。 GitHub-30295
- 应用程序现在可以按预期将HTML打印视图的 徽标 配置设置应用于店面发票PDF。 GitHub-24730
- static::已在用于访问私有常量的代码库中替换为- self::。 GitHub-30781
- 现在,当商家在产品创建过程中两次单击 新建属性 按钮时,应用程序会按预期打开新建属性页面。 以前,应用程序显示空页面并引发错误。 GitHub-30361
- 删除优惠券后,应用程序不再显示The coupon code has been accepted消息。 GitHub-30255
- 管理员现在可以将构件分配给特定类别。 GitHub-30009
- 属性选择器input[type=datetime]已替换为不太具体的输入类型选择器。 GitHub-30064
- 应用程序现在会按预期显示与自定义类别属性关联的特定于商店的值。 GitHub-13440
- 现在,当商店地址和送货目的地属于不同的EU国家/地区时,应用程序会显示一条提示,询问在您单击订单创建页面上的 验证增值税号码 按钮时是否应更改客户组。 GitHub-29652
- \Magento\Catalog\Model\ImageUploader类已重构为使用新的- moveFileFromTmp方法。 GitHub-29598
- 现在,当商家尝试创建具有product_type和type_id代码的产品属性以便更具描述性时,应用程序会显示一条信息性更强的错误消息。 GitHub-28479
- 更正了管理员商店 > 配置 > 服务 > OAuth页面上 客户令牌生命周期(小时) 和 管理员令牌生命周期(小时) 字段的验证逻辑。 GitHub-29502
- 应用程序现在可以正确解析小组件内容字段中包含}}的文本。 GitHub-12087
- 您现在可以从产品类别页面中删除过滤器。 以前,当您尝试删除筛选器时,应用程序不允许您删除筛选器并显示以下错误: Something went wrong。 GitHub-8538
- 禁用可选模块Magento\Framework\MessageQueue\ConfigInterface后,现在可以实例化Magento_MessageQueue。 以前,应用程序引发此错误: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
- 改进了确定应用程序何时可以从永久存储检索电子邮件值的逻辑。 以前,当未注册的用户在第一次填写电子邮件字段后返回到签出页面时,应用程序会在签出页面上显示填充的密码字段。 GitHub-26903
- 缺少的aclResource属性已添加到Admin标头AdminNotification工具栏块中。 以前,即使管理员用户没有查看管理员通知工具栏项的角色资源权限,该工具栏项也仍然可见。 GitHub-29067
- framework/database/select- where函数现在可正确处理- type。 GitHub-29590
- 在整个代码库中,循环中的array_merge使用效率低下已得到改进,这改进了多个位置(包括在静态内容部署过程中)的性能。 GitHub-30183
- 默认的管理会话生命周期已从加密模块移至安全模块。 GitHub-30859
- 应用程序现在检查类中的私有常量,如果存在对其的static::调用,则显示警告。 以前,应用程序引发此错误:Undefined class constant。
- 添加了对错误页面和维护模式中符号链接root的支持。 以前,如果root或magento/pub已符号链接到其他目录,则错误处理器(Magento\Framework\Error\Processor)未生成正确的视图文件URL。 GitHub-30296
- 向order_data类添加了缺失的EmailSender数组。 这使得这些类符合Magento的建议,即使用标量变量而不是电子邮件模板中的对象。 GitHub-29604
GraphQL
- GraphQL URL解析器现在可以正确处理查询参数。 以前,它在处理带参数的SEO友好URL时返回NULL。
- GraphQL URL解析器现在可以正确处理CMS页面层次结构。 以前,它返回NULL。 GitHub-30474
- 对产品categories.breadcrumbs数据的查询不再返回父类别被禁用的类别的痕迹导航数据。 GitHub-30468
- 现在,在禁用URL重写时,可正确返回类别图像的路径。
- 现在,在GraphQL密码重置操作期间发生错误时,应用程序会返回一条信息更丰富的消息。 GitHub-30179
- 现在,在缓存查询结果时,产品位置会在GraphQL查询结果中按预期更新。
- 现在,当products时,category_id查询会返回预期的结果 使用in关键字指定筛选器。 GitHub-30349
- 向editorconfig添加了规则以支持将JSON和YAML文件缩进两个空格。 GitHub-30066,GitHub-30063
- FlushCacheByTags类已更新为使用插件后而不是使用插件。 GitHub-29558
- 通过从checkout_index_index.xml、sortOrder、messages、authentication和progressBar组件中删除estimation,sidebar checkout文件中的代码已得到增强。 GitHub-30550
- calc中的内容现已转义,这将导致CSS输出文件中有正确的- calc值。 以前,应用程序返回的- calc值不正确。 GitHub-30542
- 在保存全局范围的类别URL重写时,URL重写生成器现在将类别对象url_key、url_path和store_id设置为默认存储值。 以前,它使用上次处理的存储ID的值保存url_key、url_path和store_id。 GitHub-29585###分组产品
- 产品查询现在返回分组产品的所有预期数据。 以前,product_links是空数组。
- 现在,当所有子简单产品缺货时,分组的产品会在产品编辑页面上列为缺货。
- 现在,当分组产品的子简单产品的状态更改为缺货时,其状态会在产品编辑页面上正确更新。 以前,分组产品的父级库存物料在其子级更改库存状态后不会更新。
- \Magento\Widget\Controller\Adminhtml\Widget\Instance\Validate现在将短语结果值识别为错误消息,并在小组件验证期间将其输出给用户。 GitHub-27397
- Magento\Catalog\Model\Category\DataProvider::getFieldsMap()中类别属性的硬编码列表已替换为从缓存生成的属性列表。 GitHub-13440
- 已删除req.http.host/client.ip的冗余散列,散列由Varnish内置VCL处理。 GitHub-29988
- 向Magento_Ui文件上传程序添加了失败回调。 GitHub-29557
- 已更正启用acl.xml但禁用Magento_LoginAsCustomerAssistance或Magento_LoginAsCustomerAdminUi时发生的Magento_LoginAsCustomerLog不一致。 以前,当具有这些凭据的管理员尝试登录到管理员时,应用程序显示空白页面,并在出现以下情况时引发此错误:Exception #0 (LogicException): Could not create an acl object: Invalid Document Element 'resource': The attribute 'title' is required but missing. Line: 13。 GitHub-30680
- 在创建插件期间生成Undefined class constant时,应用程序不再引发Interceptor错误。 GitHub-28981,GitHub-29879
- 应用程序现在可以正确处理异步批量操作的消息传递和日志记录。 以前,尽管更新了产品,但magento_operation和queue_message_status表未正确更新,并且系统消息不正确。 GitHub-29718
- 当商店启用 需要电子邮件确认 时,购物者现在按预期在“重置密码”电子邮件中单击 设置新密码 时,被重定向到“设置新密码”页面。 以前,购物者被重定向回登录页面上的 忘记密码 按钮。 GitHub-27954
- 使用默认值保存行系统配置时,更正了数组到字符串的转换错误。 GitHub-30314
- 您现在可以为消息队列设置参数。 GitHub-30216
- 基础文件收集器现在遵循AppState->emulateAreaCode()。 GitHub-39656
- 新BlockByIdentifier类支持基于CMS块标识符检索布局块。 因此,当从缓存中移除CMS块时,应用程序还会清除布局块缓存。 GitHub-28309
- 更正了队列中数值参数转换的问题。 以前,当您在type中声明带有数字queue_topology.xml参数的队列时,参数值会转换为字符串。 GitHub-29615
GraphQL
- urlResolver查询现在可以正确处理查询参数。
- 将自定义CMS节点和页面指定为输入时,urlResolver查询不再返回NULL。 GitHub-30474
- category查询不再返回已禁用的父类别的子类别。 GitHub-30468
- 禁用URL重写时,category查询现在返回类别图像的正确路径。
- 现在,发生错误时,resetPassword突变会返回信息更丰富的消息。 GitHub-30179
- 当产品位置更改时,products查询的缓存结果按预期失效。 GitHub-30467
- 当使用products关键字指定category_id筛选器时,in查询现在返回预期结果。 GitHub-30349
- categories和- categoryList查询现在根据类别权限配置和父类别ID考虑类别可用性。 GitHub-29880,GitHub-30624
- updateProductsInWishList突变现在可以正确验证愿望清单项目。 GitHub-30467
- 
                  已弃用 ProductInterface和CategoryInterface中的多个属性,以防止在店面中使用它们。 GitHub-30625
- 
                  现在,当类别权限设置为隐藏价格时,产品查询结果中会隐藏价格。 GitHub-29926 
- 您现在可以使用addProductsToWishList突变将具有用户定义的数量的捆绑产品添加到愿望清单。
- “添加到购物车”操作的GraphQL响应时间已缩短。
- products查询现在按预期返回层价格值。 GitHub-29168
- 已从getMappedNums中的循环中删除冗余lib/internal/Magento/Framework/GraphQl/Query/EnumLookup.php。 GitHub-30031
- 当查询的产品具有已禁用的相关产品时,products查询不再返回错误。 GitHub-28892
- cart查询现在返回已转换为正确货币(默认显示货币)的价格。 以前,查询返回以基础货币表示的项目价格值,并且返回货币代码作为默认显示货币。
- GraphQL现在提供目录权限。 应用程序根据购物者的客户组限制为products查询返回哪些项目。
- 已将customizable_option属性添加到实现CartItemInterface的多个数据类型。
- 为storeConfig查询添加了返回商店、商店组和网站信息的属性。
- 已恢复SelectedCustomizableOption.type属性。 此外,customizable_options的各种实现中的CartItemInterface属性现在为非null。
- products查询的搜索功能不再返回启用了类别权限的项目。
- products查询为具有多个货币的存储库视图返回正确的货币。
- products查询筛选器的标签现在会返回转换的值(如果适用于非默认存储视图)。
- 购物车中礼品卡上的固定商店货币金额。
- 添加了ConfigurableProductOptionsSelection数据类型,其中包含与产品的可选可配置选项对应的元数据。 在products查询中使用此对象可最大限度地减少购物者选择可配置产品选项时显示的媒体集项目数量。
图像
- 商店主页上的图像现在已成功呈现。 以前,页面源HTML已损坏,因为图像的base64代码中的三个连续斜杠被错误解释为评论。
- 已从CMS模块中删除对fileinfo扩展的依赖关系。 以前,当您尝试使用图像上载程序上载图像时,应用程序引发错误,该程序在添加内容时单击 插入图像 按钮时启动。 GitHub-24332,GitHub-16531,GitHub-29852
- 添加了对读取exif_image.png或exif-image.jpeg元数据的支持。 GitHub-1449
- CMYK图像颜色现在可以正确呈现。 当Imagick适配器现在检测到打开的映像具有CMYK颜色空间时,该颜色空间将转换为SRGB。 以前,这些图像使用反转颜色渲染。 GitHub-22375
- 不再为image_with_border.phtml设置布尔值。 已从max-width中删除冗余height和.product-image-photo设置。 (这些值已通过重置样式在图像上全局设置。)GitHub-30186
导入/导出
- 使用CSV文件(region_id和NULL)导入客户地址时,不再为客户地址entity type = "customer address"分配import behavior = "add/update"值,某些字段值已从该文件删除。
- 现在,您可以在导入期间隐藏店面上的产品图像。
- 当导入的产品在CSV文件中将qty设置为0但is_in_stock set设置为1时,该产品不会列在类别页面上,并且产品详细信息页面会将其识别为缺货。 以前,导入后店面中会显示具有这些值的产品。
- CSV导入不再忽略其他属性的dropdown和textarea值。 以前,这些属性值在导入期间不会更新。
- 产品导出CSV文件现在按预期显示在导出CSV文件的管理员列表中。 以前,应用程序在您运行此命令时引发错误: bin/magento queue:consumers:start exportProcessor --single-thread --max-messages=10000。
- 在导入包含孟加拉语(孟加拉语)字母字符的CSV数据时,应用程序不再引发错误。
- 现在,当管理员在导入文件期间单击 Check Data 时,应用程序会显示一条信息性错误消息;导入文件后,在Chrome中工作时,该文件已发生更改。 以前,应用程序显示控制台错误,但未告知用户如何继续。
- 当您多次导入相同的产品CSV数据时,应用程序不再重复产品图像。 GitHub-21885
- vendor/magento/framework/File/Uploader.php中图像文件名的90个字符限制已被删除。 以前,目录和文件名的长度不能超过255个字符。 应用程序导入了文件名超过此限制的带有图像的产品,但未导入图像文件。 GitHub-29377
- 现在可以将优惠券代码成功导出为CSV或XML。 以前,当您尝试导出优惠券时单击 导出CSV 或 导出XML 时,应用程序显示404错误。 GitHub-29277
- 现在,在导入包含图像的CSV文件后,会删除重复的产品图像。 GitHub-14398,GitHub-21885
索引
- 我们改进了部分索引器的性能。 应用程序现在会清除每个1000-ID批次迭代中更改的缓存ID。 缓存上下文不再累积ID。 以前,缓存上下文累计了每个1000-ID批次迭代的缓存ID,并在每个迭代上清除相同的ID集。
- 部分重新索引系统和完全重新索引系统之间的不一致已得到纠正。 现在,两个索引系统都使用相同的代码,这可以正常工作。 以前,两个索引系统对共享索引器使用不同的逻辑,这可能导致索引器在每次运行部分重新索引系统之后失效。 GitHub-29478,GitHub-29297
- 
                  我们已经解决了手动索引器的问题,该问题导致类别页面为空或类别页面上的产品计数减少。 出现以下情况时,出现类别页面不完整或产品计数问题: - 
                      catalogsearch_fulltext和catalog_product_price部分索引器已在大型目录上执行,直到这些索引器完成执行。
- 
                      在 catalog_category_product或catalog_product_category索引上执行部分索引器,同时对其中一个索引执行完全重新索引。 这两个索引过程可能会发生冲突,从而导致类别页面中缺少产品。
- 
                      bin/magento indexer:reindex inventory是在大型目录上执行的。 在catalogsearch_fulltext部分索引器完成执行之前,类别页面中缺少产品。
 
- 
                      
- 向Magento_BulkMySQL表添加了索引器,这改进了批量操作的性能。
- 现在,数据库表中的注释在重新索引(bin/magento indexer:reindex)后可准确反映表状态。 以前,重新索引后的表注释包含与全新安装后注释包含的值相同的值。
- 在实施MariaDB v.10.3.18的部署中,SELECT entity_id IN语句已得到改进,这改进了目录类别索引的性能。 GitHub-25199
- Magento Open Source通过消除每个索引器实例多次刷新标记而提高了缓存性能。 GitHub-29890
基础架构
- 您现在可以使用app/etc/env.php将消息代理从MYSQL更改为AMQP。
- 产品数量的小数值的余数计算问题已在相关JavaScript库中进行了更正。 应用程序以前错误地计算了超过两位的小数分数,随后显示不正确的消息。
- \Magento\Authorization\Model\Rules::update方法已被弃用。 GitHub-29128
- 从UTC转换日期对象时,应用程序不再引发致命错误。 以前,在某些情况下,convertConfigTimeToUtc方法会引发异常。 GitHub-29525
- DataObject已在- \Magento\MediaGalleryCatalogUi\Ui\Component\Listing\Columns\Thumbnail::prepareDataSource中被替换为产品模型。GitHub-1711
- RequireJS解析程序不再无法检测到被阻止的资源。 以前,解析程序无法正确检测页面上的所有资源是否已正确加载或处理,并且页面继续加载。 GitHub-28116
- 属性存储库代码验证现在遵循Magento\Eav\Model\Entity\Attribute::ATTRIBUTE_CODE_MAX_LENGTH,而不是硬编码值。 GitHub-29017
- HTML缩小功能不再从PHTML文件中的HTML字符串中删除三斜杠(https://experienceleague.adobe.com///?lang=zh-Hans)。 以前,在缩小过程中将三斜杠解释为注释,行其余部分在部署时已在生成的PHTML文件中完全删除。
- 商家现在可以在表列级别而不是表级别配置索引器订阅。 已向\Magento\Framework\Mview\View\Subscription添加了一个新参数,以允许忽略特定视图或表组合的列。 GitHub-30243
- 在产品页面JavaScript完全初始化之前单击 添加到购物车 按钮不再导致重复的form_key值。 以前,可以将具有触发异常的缓存form_key值的产品添加到购物车。 在JavaScript完全初始化之前单击 添加到购物车 时,表单数据中发送的form_key值与用户会话不匹配,产品未添加到购物车。 GitHub-13746
- 当前cURL客户端现在遵循不区分大小写的标头名称。 以前,Set-Cookie比较区分大小写,这可能会导致某些HTTP服务器出现问题。 GitHub-29524
- 更新了api-functional和测试用例XML文件中的XSD URN格式。 GitHub-30552
- 已将事件前缀和事件对象添加到目录产品选项值集合中,以改进\Magento\Catalog\Model\ResourceModel\Product\Option\Value\Collection的集合加载的自定义。 GitHub-29621
- 已重构所有出现的array_merge以使用编码标准中建议的格式。 GitHub-30005
- 类型head.additional的\Magento\Framework\View\Element\Text\ListText块已添加到adminhtmldefault布局(由magento2/module-base添加)。 GitHub-29165
- 向布局模板模块构件添加了缺失的esc URL方法。 GitHub-30036
- \Magento\Framework\Filesystem\Io\File::read()方法现在与- \Magento\Framework\Filesystem\Io\IoInterface::read()兼容。 GitHub-27866
克拉尔纳
- 删除了对PayPal模块的依赖关系。 GitHub-29421
记录
- Magento_Logging模块现在正确注册了新值以及之前的值。 以前,“更改前值”列中的值显示N/A的值,无论这是第一次更改还是下一次更改,也不管何时返回默认值。 GitHub-26943
媒体集
- 管理员商店 > 配置 > 高级 > 系统页面已更新,以显示正确的产品名称(媒体集)。 包括对用户界面的细微重新设计。 GitHub-1738
- 媒体集图像描述的“用于”部分中的链接现在显示已由所选图像按预期过滤的网格。 以前,显示的网格标题不正确,列表条目也不准确。 GitHub-1694
- 您现在可以在媒体集中成功编辑多个图像。 以前,在将标记添加到一个图像后,无法向另一个图像添加标记。 GitHub-1755
- 从媒体集中的图像中删除标记后,“标记”下拉菜单现在按预期为空。 GitHub-1703
- 现在支持对Media Gallery同步队列消息进行批处理。 GitHub-1724
- 在禁用 增强型媒体集 的情况下,当您尝试打开媒体集时,应用程序现在会按预期显示404页。 GitHub-1760
- 如果发生异常,MediaGalleryMetadata现在会跳过区段读取器,而是按预期解析并显示图像元数据。 以前,由于exif_read_data区段读取器出现异常,导致图像元数据为空。 GitHub-1782
- 文件夹名称长度不再阻止将图像上传到媒体集。 媒体集现在将路径列设置为类型text。 GitHub-1778
- 现在,当从媒体集中插入演绎版时,图像上传程序会显示正确的图像大小。 GitHub-1806
- 路径验证已添加到Mediagallery上载程序插件。 以前,验证失败,并且在 启用旧媒体集 被禁用时,应用程序未导入产品。 GitHub-30649
- 
                  已为新媒体集添加并强制执行 Magento_Cms::media_gallery个ACL子资源,以支持为以下离散操作配置的权限:- 上传资源
- 将资产插入内容
- 删除资源
- 创建文件夹
- 删除文件夹。 GitHub-1487
 
- 不再裁剪长媒体集文本字符串和文件夹名称。 以前,应用程序显示裁剪的文本和图像,并显示以下消息: We couldn't find any records。 GitHub-1763,GitHub-1758
- 编辑新页面的内容时未选择任何图像时,应用程序不再显示 添加选定项 按钮。 GitHub-1769
- 筛选器现在已按预期应用于内容 > 媒体集类别网格。 GitHub-1763
- 图库多个断点选项配置现在可按预期工作。 以前,断点选项配置无法正常工作,因为mediaCheck在页面加载时触发了退出媒体查询函数。 GitHub-29933
MFTF
- 用CheckStaticBlocksTest中的操作组替换重复操作。 GitHub-30561
- AdminUpdateCategoryAndMakeInactiveTest和- VerifyChildCategoriesShouldNotIncludeInMenuTest已重构以符合MFTF最佳实践。 GitHub-30058
- 已删除重复的AdminOpenCMSBlocksGridActionGroup。 GitHub-30896
- 已将AdminOpentCmsBlockActionGroup替换为AdminOpenCmsBlockActionGroup。 GitHub-29839
- 已弃用GoToAttributeGridPageActionGroup。 GitHub-30103
- 已将操作组添加到Analytics模块。 GitHub-29500
- 已更新CheckCheckoutSuccessPageAsRegisterCustomerTest和CheckCheckoutSuccessPageAsGuestTest以在测试运行后取消创建的订单。 GitHub-28324
- 由于冗余,已删除AdminNavigateToPageGridActionGroup。 GitHub-29838
- 已实施ActionGroup以导航到签出页面。 GitHub-29843
- 已实施AdminOpenCreateNewCMSPageActionGroup以导航创建新的CMS页面。 GitHub-29824
- 更正了媒体集CMS页面的MFTF测试中跳过的问题。 GitHub-30164
新测试
- 添加了一项测试,用于在“管理员”中向朋友发送电子邮件。 GitHub-29145
- 添加了由管理员执行的从网格中删除CMS块的测试。 GitHub-30372
- 添加了将购物车规则应用于单个捆绑包的测试。 GitHub-28921
- 添加了测试,以检查在删除实体后是否显示媒体集图像的 用于 的信息。 GitHub-1774
新建操作组
- 
                  AssertStorefrontCustomerLogoutSuccessPageActionGroup。 GitHub-29841
- 
                  AdminOpenConfigurationStoresPageActionGroup。 GitHub-29848
- 
                  ReloadPageActionGroup。 GitHub-30683
- 
                  StorefrontClickRefundTabCustomerOrderViewActionGroup。 GitHub-30032
- 
                  AdminOpenAdminThreeDSecurePageActionGroup。 GitHub-29845
- 
                  AdminCustomerClickFirstRowEditLinkActionGroup。 GitHub-29501
- 
                  StorefrontClickAddToCartButtonActionGroup。 GitHub-29823
- 
                  AdminDeleteTaxRateActionGroup。 GitHub-29940
- 
                  AdminOpenWebConfigurationPageActionGroup。 GitHub-29846
- 
                  AdminOpenGeneralConfigurationPageActionGroup。 GitHub-29847
- 
                  AdminOrderClickSubmitOrderActionGroup。 GitHub-29649
- 
                  AdminOpenCatalogProductPageActionGroup。 GitHub-29941
- 
                  AdminClickInvoiceButtonIntoOrderActionGroup。 GitHub-25399
- 
                  AdminGridBulkActionGroup。 GitHub-28324
- 
                  AdminGridColumnShowActionGroup。 GitHub-28324
- 
                  AdminOpenIndexManagementPageActionGroup。 GitHub-29825
- 
                  AdminOpenCatalogSearchTermIndexPageActionGroup。 GitHub-29844
- 
                  AdminClickAddProductToggleAndSelectProductTypeActionGroup。 GitHub-30917
- 
                  StorefrontCheckoutClickSaveAddressButtonActionGroup。 GitHub-30916
- 
                  AdminOpenCurrencyRatesPageActionGroup。 GitHub-30783
- 
                  AdminClickGetShippingMethodsAndRatesActionGroup。 GitHub-30782
- 
                  AdminSelectFixedShippingMethodActionGroup。 GitHub-30782
- 
                  StorefrontClickProceedToCheckoutActionGroup。 GitHub-30926
- 
                  StorefrontOpenMyAccountPageActionGroup。 GitHub-29842
新闻稿
- 当客户订阅了排队的新闻稿时,管理员用户现在可以按预期编辑客户帐户。 GitHub-30645
- 现在,如果购物者没有确认他们的新闻稿订阅,应用程序会重新发送新闻稿订阅确认。 GitHub-28422
- 现在,当客户订阅排队的新闻稿时,您可以按预期编辑客户帐户。 GitHub-30645
支付方式
- 现在,所有网站的支付方法均可按多商店部署中的预期加载到管理员中。
- 当购物者的姓名包含重音字母时,应用程序现在可以成功完成Payflow Pro付款。 以前,付款未完成,应用程序记录此错误: report.CRITICAL: String to be escaped was not valid UTF-8 or could not be converted。
PayPal
- 现在,从使用信用卡的支付方式切换到非信用卡支付方式后,商家可以从管理员成功下达订单。 以前,当商家单击 提交订单 按钮时,加载过程开始但从未完成,并且未下达订单。
- 使用PayPal Express下订单时,应用程序不再创建重复订单。 以前,当购物者尝试使用PayPal Express支付订单,但PayPal返回错误时,应用程序仍会创建订单。 这会导致商户网站上的重复订单。 GitHub-13952
- PayPal结算报告现在可在报告 > 销售 > PayPal结算中获取。 以前,应用程序未在PayPal结算报表网格上列出这些报表,而是显示此消息: We couldn't find any records。
- 在签出期间单击 PayPal 按钮不再触发冗余web-api调用。 以前,会触发两个请求,从而使产品费用加倍。
- 启用 自动分配给客户组 后,来宾购物者现在可以下单PayPal。 付款在PayPal网关上处理,订单在Magento中创建,购物者会看到订单感谢页面。 以前,订单已在PayPal网关上成功处理,但订单未在Magento Open Source中创建。 购物者被重定向到订单审核页面,应用程序在该页面中显示以下错误: Failed address validation: %1" error。 GitHub-25399
性能
- module-catalog-import-export/Model/Import/Product/Option.php中的性能问题已得到解决。 导出或导入100,000多条记录所需的时间已缩短。 查看大量产品选项知识库文章的导入/导出时间比预期长。
- Magento_Csp/Model/BlockCache已重构,以减少内存消耗和生成不需要的大型缓存字符串。 以前,包含动态列入白名单的脚本和样式的页面经常会遇到性能问题。 GitHub-29964
- 我们改进了包括10万多件使用消费者产品的目录预定出口的绩效。
- 在将禁用的产品添加到类别或保存到类别时,应用程序不再刷新类别缓存。 以前,应用程序会刷新相关类别的高速缓存,而不管产品状态如何,这会影响服务器性能。
- 更新购物车中产品数量的页面加载时间已缩短。 以前,应用程序对购物车中的每个产品执行多个单独的查询,这会增加页面加载时间。
- 向Magento_BulkMySQL表添加了索引器,这改进了批量操作的性能。
- 应用程序现在可缓存可配置产品的子ID。 这通过减少数据库请求数提高了页面加载性能。 GitHub-30585
- 管理员功能板的加载已得到改进。 以前,应用程序在页面完成加载之前将选项卡名称显示为列表。
- 通过为布局缓存添加到期限制,改进了Redis缓存管理。 以前,在大型部署中,Redis缓存会快速达到分配的最大内存,并且应用程序在写入操作时抛出错误。
- 通过删除app/code/Magento/Catalog/Model/CategoryLink.php中的冗余数据库查询,提高了签出性能。 GitHub-29453
- Magento\Framework\DB\Adapter\Pdo\Mysql->isTableExists已重构以提高性能。 减少对- SHOW TABLE STATUS的冗余调用,以检查表是否存在。 GitHub-29662
- getPageLayoutsConfig现在保存在缓存中,这改进了配置生成器的性能。 GitHub-29546
永久
- 启用永久购物车后,购物者在其会话Cookie过期后无法再下订单。 相反,应用程序会显示登录页面,以便购物者可以登录。 以前,应用程序会下订单。 当PHPSESSID过期时,应用程序未正确验证永久客户,并且从永久信息重新创建了customerSession。
- 在购物者登录到启用了永久购物车的商店后,应用程序现在会按预期显示欢迎消息。 以前,应用程序显示 不是您?登录后 条消息。
- 应用程序不再显示 不是您吗?在登录到启用了永久购物车的部署时,客户选择 记住我 选项时显示 文本。
- 在客户会话过期后,应用程序不再显示客户购物车的内容。 以前,当访客客户尝试在启用永久购物车时签出时,应用程序会显示此错误: No such entity with cartid = 0。
定价
- 连续的异步价格更新不再相互干扰,并且会为每个操作分配正确的状态。 以前,如果异步价格更新失败,则在重新启动相应的队列使用者之前,后续的所有异步价格更新都将失败。 GitHub-27865
报告
- 报告 > 营销 > 购物车中的产品现在只显示正在生成报告的用户允许范围内的记录。 以前,所有数据都可用于所有范围。
- 现在,当在购物车中的产品报表中显示产品货币时,应用程序将使用在生成报表的贸易商角色范围中指定的货币。
- “最近查看的项目”和“最近比较的项目”产品功能现在会在多商店部署中按预期在管理员中显示不同商店和网站的统计信息。 以前,这些功能不会考虑所有商店或网站。
- 订单报表中的价格现在使用正确的货币符号。
- 应用程序现在在用户单击管理员仪表板 转到高级报告 按钮时验证令牌是否存在。 如果令牌存在,则应用程序会显示“高级报告”页面。 如果未配置令牌,应用程序将在用户指南中显示信息页面。 GitHub-25411
审核
- 现在,当您单击管理员营销 > 所有审核上的 新建审核 按钮时,新审核页面会按预期加载。 单击此页面上的某个产品将打开该产品预期的新审阅表单。
- 当您尝试从管理员营销 > 所有审核编辑订单时,应用程序不再引发此错误: Uncaught TypeError: Event.observe is not a function。 GitHub-30388
销售
- order_created_at的- sales_shipment_grid列现在在每次更新后按预期更新。
- 您现在可以从启用了 使用JavaScript日历 的商店中成功对具有自定义选项日期的产品重新排序。 以前,当您尝试重新排序时,应用程序不会将项目添加到购物车并显示以下错误: Could not add the product with SKU "simp1" to the shopping cart: Please specify date required option(s).
- 在启用了零小计结帐方法的部署中,当购物者结帐的订单包含总成本为$0的虚拟产品时,应用程序不再立即关闭订单。
- 应用程序在处理订单之前不再对其进行存档。 以前,管理员订单网格上的多选操作会影响未选定的订单。
- 现在,将沙特里亚尔(SAR)设置为基础货币时,贷项通知单网格会显示正确的货币符号。
- 现在,应用程序在结帐期间始终如期在订单页面上显示送货地址信息。
- total_qty的值现在与销售发票中的- total_qty_ordered的值匹配。
- 现在,异步发送销售电子邮件只会发送在上次更新日期之后创建的那些订单的电子邮件。 以前,启用异步发送时,应用程序不会按日期过滤电子邮件。
- 现在,在管理员下订单后,应用程序会按预期发送发票电子邮件。
- 现在,当商家从管理员为客户创建新订单时,应用程序会在会话期间清除现有订单数据。
- 启用 启用自动分配给客户组 后,您现在可以为通过管理员订单创建的新客户更改客户组。 您也可以根据增值税验证分配客户组。 以前,在验证VAT号码时,请求对象不检查分配的请求group_id。 默认情况下,它使用默认的group_id。
- 在商家使用REST API创建部分装运后,应用程序不再将状态为Suspected Fraud的自定义订单状态的状态更改为Processing。
销售规则
- 购物者更改配送方式时,已根据配送方式应用的优惠券代码将不再应用。 以前,当购物者切换配送方式时,该应用不会清除优惠券代码。
- 购物者应用优惠券代码的频率不能超过 每位客户使用次数 设置允许的频率。 以前,如果购物者打开了多个浏览器窗口,同时下了多个订单,则每个订单都会收到折扣,即使 每位客户的使用次数 设置的值为1。
Search search-heading
- 购物者搜索搜索同义词时,Elasticsearch不再引发未知修饰符错误。 以前,转义器在正则表达式中缺少转义斜杠符号,从而导致致命错误。
- 当子产品的可见性设置为 不可见 时,高级搜索不再将可配置产品的子产品作为单个搜索结果返回。
- 搜索结果中的Elasticsearch产品名称排序不再区分大小写。
- 当在管理员商店 > 配置 > 目录 > 目录 > 目录搜索中启用 设置要缓存的排名最前的搜索结果数量为0 设置时,搜索结果页面现在会按预期缓存。
- 由于Elasticsearch字段限制,目录搜索索引器现在可在不引发错误的情况下执行。 以前,应用程序引发此错误: Limit of total fields [xxx] in index [m24dev_product_1_v10] has been exceeded。
- 目录搜索的性能已得到改进。 禁用启用搜索建议 (存储 > 配置 > 目录 > 目录搜索 )按预期工作。 以前,应用程序查询MySQL search_query表而不是Elasticsearch以获得自动完成搜索建议。 GitHub-25534
- Elasticsearch现在过滤产品价格的方法与MySQL相同。 在Elasticsearch索引中,字段类型price_*已从float更改为double,以提高精度并更正浮点错误。
- 已向Admin添加一个键值事件侦听器,以便在输入正斜杠时激活全局搜索表单。 GitHub-29551
- 当使用string值按具有integer或decimal后端类型的属性筛选产品时,Elasticsearch不再引发错误,而是不再按预期显示产品。 以前,应用程序在exception.log中显示此错误:number format exception。
- 
                  当搜索词包含 /时,Elasticsearch不再引发异常。 GitHub-25886,GitHub-25110
- 
                  当常规类别权限中的 不允许目录搜索依据 配置设置启用时,现在将按预期禁用产品查询中选定客户组的搜索。 GitHub-29927 
- 搜索结果中不再包含同一单词的多个引号。 GitHub-30104
配送
- 当网络中断中断与DHL传送方法的连接时,签出过程不再失败。 相反,应用程序会显示其他可用的配送方式。 以前,当与DHL传送的连接中断时,签出过程停止,并且应用程序显示以下错误: Sorry, no quotes are available for this order at this time。 GitHub-29902
- 在管理员商店 > 配置 > 销售 > 交付方法上描述UPS交付方法的字段现在按预期启用。
- 通过POST /rest/V1/shipment端点创建的装运现在可以正确更新订单。 以前,应用产品创建发运,但发运状态仍为处理状态。
- 如果在使用“Ship to Multiple Addresses”(收货多个地址)结帐之前从购物车中删除了其他产品,则应用程序将不再从购物车中删除简单产品。 GitHub-30259
- 现在,“订单复查”页会按预期显示要发运至多个地址的订单的发运前税额。
- UPS装运跟踪现在仅在已交付包时指示Delivered On状态。 GitHub-30032
- 现在,当购物者从多个地址结帐返回购物车时,应用程序会显示包含虚拟产品的订单的正确购物车小计。
- 在启用JavaScript捆绑时,商家现在可以从发运页面为使用FedEx发运的现有订单创建发运标签。 以前,当商家单击 创建配送标签 按钮时,应用程序会引发错误。
- 发送给客户的装运确认电子邮件中的装运跟踪链接现在可按预期工作。 以前,此链接返回404错误。
- 现在,当购物者使用多个地址结帐,然后删除虚拟产品以外的所有产品时,应用程序会显示信息性错误消息。 GitHub-25595
- 现在,您可以按预期为部分订单创建送货标签。 以前,当您尝试为订单中的一个项目创建送货标签时,应用程序会将所有产品添加到包,但验证失败。 GitHub-29552
- 调用/V1/guest-carts/:cartId/totals-information时不再绕过配送方法的验证。 GitHub-25147
Sitemap
- cron生成的站点地图现在包含正确的图像URL。 以前,在多存储部署中生成的缓存图像路径不正确。
存储
- 管理员和主商店切换器现在反映对管理员中的商店排序顺序所做的更改。 GitHub-13401
- 现在,在商店视图的顶级URL键发生更改后,应用程序将为类别和产品创建正确的URL。 以前,当商店视图的类别树包含修改的url_keys时,如果类别键未更改但类别父项的键有更改,则原始代码将在创建URL时使用类别的默认商店视图。 GitHub-28633
Target规则
- 产品详细信息页面的加载已优化。 我们为数据库表添加了索引,这些索引可以优化许多情况下的目标规则条件查询。
税金
- 来宾订单上的VAT验证不再导致应用产品保存具有不正确客户税分类的报价。 GitHub-30018
- 现在,在配置FPT时,可以在结账期间保存要发往多个地址的订单。 以前,完成多个地址的订单后,应用程序会显示一个空白页面,而不是订单成功页面。
- 店面产品详细信息页面现在会按预期显示新旧价格(含税和不含税)。 GitHub-27500,GitHub-11998
测试
- bin/magento dev:tests:run现在可按预期启动以下测试:all、unit、integration、integration-all、static、static-all、integrity、legacy和default。
- AdminMediaGalleryInsertLargeImageFileSizeTest已重构。
- 单元测试现在与PHPUnit 8兼容。 GitHub-29779
- \Magento\TestFramework\TestCase\WebapiAbstract现在包含一个支持比较测试中预期结果和实际结果的大型嵌套数组的函数。 结果中无关紧要的关键现在可以忽略了。 GitHub-29498
- AdminMediaGalleryCatalogUiEditCategoryGridPageTest不再随机失败。 GitHub-1764
- dev/tests/integration/testsuite/Magento/Customer/Controller/AccountTest已改进。 (- assert现在基于- XPath选择器而不是- assertStringContainsString。)GitHub-29700
- 已添加AdminAnalytics模块的测试覆盖率。 GitHub-29500
- 集成和API功能测试现在与PHPUnit 9.3兼容。GitHub-30146
- 更正了GraphQL testRequestCacheTagsForCategoryListOnMultipleIds测试的问题。 GitHub-29372
- 现已在ApiFunctional TestFramework中正确解析包含URL的标头值。 GitHub-26425
- 更正了GraphQL testRequestCacheTagsForCategoryListOnMultipleIds测试的问题。 GitHub-29372
- —no-tablespaces已添加到- mysqldump的所有匹配项,这允许在没有- PROCESS权限的情况下运行集成测试(自MySQL 5.7.31 / 8.0.21以来,默认需要运行- mysqldump)。 GitHub-30566
主题
- 向--no-parent命令添加了新的bin/magento setup:static-content:deploy标志,该标志阻止编译主题的父级。 通过这个新标志,您可以避免不必要的编译,从而显着提高静态内容部署过程的性能。 请注意,使用compact策略时,此新标记不起作用。 GitHub-30184
- 设计配置不再生成DDL操作。 以前,当更新设计配置时,应用程序会生成可能触发MySQL错误的DDL语句。
- 已删除管理员主题中Magento_ConfigurableProduct模块中的冗余代码。 GitHub-29857
- 删除了空白主题中多余的少样式导航和未使用的属性。 GitHub-29914
- 为移动视图中的空白主题添加了可折叠的导航功能。 GitHub-30237
- 已优化主题的Web字体加载。 GitHub-29526
- 开发人员现在可以在主题中声明自定义字体时指定字体类型。 GitHub-29719
翻译和区域设置
- 当Admin区域设置为阿拉伯语(ar_SA - Saudi Arabia)时, Admin Orders网格日期选取器现在按预期工作。
- 当购物者在注册或添加新地址时输入带有有效邮政编码的阿根廷地址时,应用程序不再显示错误消息。 以前,应用程序显示此错误: Provided Zip/Postal Code seems to be invalid. Example: 1234. If you believe it is the right one you can ignore this notice.
- 当购物者输入韩国地址的五位邮政编码时,应用程序不再引发错误。
- 添加了对ISO 3166-2:UY中定义的乌拉圭地区的支持。 GitHub-29729
- zip_codes.xml已更新,以对巴西邮政编码强制使用8位数。 GitHub-29984
- 改进了剩余未本地化的短语的本地化。 GitHub-11175
- 现在可以翻译网格搜索输入占位符。 GitHub-30510
- 现在,应用程序仅在启用内联翻译JavaScript模块后才会下载这些模块。 GitHub-29553
UI
- 当购物者输入无效数据时,“创建新帐户”页面上的 创建帐户 按钮保持活动状态。 以前,此按钮处于禁用状态,这会阻止购物者在出错后重新尝试创建帐户。 这是2.4.1中的一个已知问题。GitHub-30513
- 在“管理订单编辑”页面上加载装运网格的工作已得到改进。
- 当SKU将产品添加到购物车时,应用程序现在会按预期在订单页面上显示 与帐单地址相同 复选框。
- 定义有限宽度的CSS类现在按预期应用于管理员存储 > 配置 > 目录 > XML Sitemap > 生成设置上的 开始时间 字段。 GitHub-29496
- 更正了条款和条件复选框标签的显示问题。 GitHub-24060
- 当层价格不可用时,应用程序不再在产品页面上显示层价格块的CSS代码。 GitHub-29194
- 图像视图详细信息页面上的按钮位置已重新排序,以符合用户界面准则。 GitHub-1783
- 优惠券代码文本字段现在在Internet Explorer/EDGE浏览器中以适当的宽度显示。
- @button__border-radius变量现在已在- lib/web/css/source/lib/variables/_buttons.less库中定义。- border-radius的默认值为- 3px。 以前,- border-radius是硬编码的。 GitHub-28674
- 现在,在达到最小搜索字符串长度之前,迷你搜索字段中的提交搜索按钮(放大镜)处于禁用状态。 GitHub-29704
- 现在,预览模板按钮在“编辑队列”页面中按预期工作。
- 现在,在将属性从一个组移动到另一个组时,应用程序会保留该属性的值。
- 已向lib/web/css/source/lib/variables/_typography.less添加字体粗细大变量。 GitHub-29778
- 过滤器可见性现在可以与管理网格中预期的列可见性配合使用。 GitHub-30345
- 设置this.disabled(true)后,UI选择组件选项不再可见。 GitHub-29098
- 加载Open Sans字体时不再使用@font-family-name__base变量。 GitHub-29515
- WAI-ARIA属性aria-atomic="true"已添加到错误容器标记中。 GitHub-29560
- 用户界面组件网格现在显示选定项目的准确计数。 以前,当按关键字搜索选定了所有网格项并且购物者随后在选中标题复选框之前取消选定某些项时,网格指示错误的选择次数。 GitHub-29968
- 应用产品不再在发票和发运概览页上显示未呈现的HTML。 GitHub-29958
- 现在,单击Admin Stores > Currency Rates上的Options,会将用户定向到“系统配置”页面的扩展货币选项部分。 GitHub-29336
- 改进了对在使用选择器构件类型时根据adminhtml构件的其他条件显示构件的支持。 GitHub-13316,GitHub-7252,GitHub-6868
- 改进了Luma主题中确认弹出对话框的文本填充。 GitHub-30452
保险库
- Vault模块现在可从付款信息管理服务的请求中识别付款方式代码。 以前,当购物者使用保存的Braintree信用卡下订单时,即使使用了有效的付款方式,应用程序也会引发此错误:- The requested Payment Method is not available。
- 现在,当用户滚动时,应用程序在“以客户身份登录管理员”页面上显示的横幅将保留在页面顶部。 GitHub-29354
顶点
- 
                  修改地址时,现在会按预期删除地址建议。 
- 
                  解决了阻止某些客户在其帐户面板中保存其地址的争用条件问题。 
- 
                  在某些情况下,顶点地址验证不再将“地址编辑”页添加到全页缓存。 
- 
                  现在,当为含税的金额配置了免运费时,将考虑顶点计算的税额。 
Web API框架
- 您现在可以使用POST V1/invoice/:invoiceId/refund退款产品数量为零且运费为零的发票(例如,{"items": [{"qty": 0, "orderItemId": 6, "extensionAttributes": {}}], "appendComment": false, "notify": true, "isOnline": true, "arguments": {"adjustment_negative": 0.0, "adjustment_positive": 0.99, "shipping_amount": 0}}.)。以前,应用程序引发此错误:You can't create a creditmemo without products。 GitHub-23069
- 您现在可以使用POST V1/categories创建或更新类别。 以前,如果将default_sort_by值设置为数组,则应用程序不会保存该值。 将default_sort_by值设置为字符串时,应用程序引发此错误: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.
- 使用POST V1/invoices/:id/capture捕获付款信息现在按预期工作。 以前,应用产品授权订单,但仅在支付网关的站点上获取该订单。
- 当您使用POST V1/order/:orderId/ship创建部分装运时,终结点将返回正确数量的装运产品。
- 使用POST V1/order/:orderID/invoice创建的发票现在可以准确地反映按商店贷记进行的部分付款。 以前,当使用商店信用支付部分订单的金额时,创建发票时不会考虑商店信用。
- GET rest/all/V1/categories和GETrest/all/V1/categories?rootCategoryId=2调用现在会按预期返回树中所有类别的已填充name和product_count字段。 以前,类别字段值为空。 表名解析程序插件返回了错误的表名,无法按类别获取产品计数。
- 提供V1/categories/:id自定义属性后,PUTsave_rewrites_history端点现在会存储为类别URL密钥创建301重定向所需的数据。 GitHub-29174,GitHub-30240
愿望清单
- 现在,当产品被分配给自定义库存来源时,购物者可以将产品添加到愿望清单。 GitHub-3018
- 当客户将产品从店面添加到其愿望清单后,管理员现在可以从“管理员客户”页面访问“管理购物车”页面。 以前,当管理员单击 管理购物车 按钮时,应用程序显示以下错误: An error has occurred. See error log for details。
- 共享愿望清单页面上的 添加到购物车 按钮现在可按预期方式用于未登录的匿名用户、来宾用户和用户。
- 应用程序现在会按预期在愿望清单页面中显示选定的可配置产品属性选项。 GitHub-24091,GitHub-22503
- 已为ActionInterface实施\Magento\Wishlist\Controller\Shared\Allcart。 GitHub-29537
已知问题
问题:[magento_root]/index.php文件已被删除,对于Apache配置,应用程序现在默认从/pub中运行。 从子文件夹提供的存储将无法按预期工作,并可能会显示404错误。 解决方法:使用符号链接将安装模拟到子文件夹中。 以下示例使用https://shop01.com/shop/说明如何使用符号链接来模拟子文件夹中的安装。
- 
                  为 https://shop01.com/shop/创建子目录:code language-bash mkdir magento_root/pub/shop01code language-bash cd magento_root/pub/shop01
- 
                  在新创建的目录中为存储区的父目录创建符号链接: code language-bash ln -s ../media mediacode language-bash ln -s ../static staticcode language-bash ln -s ../../../pub pubcode language-bash ln -s ../.htaccess .htaccesscode language-bash ln -s ../health_check.php health_check.php
- 
                  在新目录( index.php)中创建一个magento_root/pub/shop01/index.php文件并添加此内容:
   <?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;
   }
- 将Apache Server配置为指向新的子目录。 部署配置可能大不相同。 以下是示例服务器配置:
   <VirtualHost *:80>
       DocumentRoot "magento_root/pub/shop1"
       ServerName shop01.com
   </VirtualHost>
问题:当购物者首次在“付款”页面的“验证码”字段中输入正确的代码时,应用程序未按预期提交付款信息,但显示以下错误: There has been an error processing your request。 仅当购物者尝试在不输入CAPTCHA代码或输入不正确的情况下下达订单时,才会发生这种情况。 解决方法:刷新页面。
问题:当购物者单击 使用Venmo 付款,但未在Admin中创建订单时,应用程序会在Braintree中按预期创建订单。 请参阅2.4.2已知问题: Braintree Venmo付款不起作用知识库文章。
问题:在运行库存的多商店部署中,不能使用addConfigurableProductToCart GraphQL突变将可配置产品添加到非默认商店视图中的购物车。 (Luma店面不受影响。)应用程序显示此错误: Could not add item to cart. Please check required options and try again。 解决方法:请改用addProductsToCart突变。 GitHub-31660
社区贡献
我们感谢更广泛的Magento Open Source社区,并感谢他们为这一版本做出的贡献。
社区工程团队Magento参与者按月、季度、年维护了主要参与人员和合作伙伴的列表。 从该参与者页面,您可以单击链接以转到GitHub上其合并的PR。
合作伙伴投稿
下表列出了合作伙伴所做的贡献。 此表列出了提出拉取请求的合作伙伴、外部拉取请求以及与其关联的GitHub问题编号(如果可用)。
 
              个人贡献者
下表列出了来自社区成员的贡献。 此表列出了外部拉取请求、与其关联的GitHub问题编号(如果可用)以及参与拉取请求的社区成员。
系统要求
我们的技术栈栈是基于PHP和MySQL构建的。 有关详细信息,请参阅系统要求。
安装和升级说明
您可以使用编辑器安装Magento Open Source 2.4.2。
迁移工具包
数据迁移工具有助于将现有Magento 1.x存储数据传输到Magento 2.x。此命令行界面包括验证、进度跟踪、日志记录和测试功能。 有关安装说明,请参阅安装数据迁移工具。 考虑浏览或参与数据迁移存储库。
代码迁移工具包可帮助将现有Magento 1.x存储扩展和自定义项传输到Magento 2.x。命令行界面包括用于转换Magento 1.x模块和布局的脚本。
 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
               
               
                 
                 
                 
                 
                