Magento Open Source2.4.3发行说明

Magento Open Source2.4.3引入了性能和安全性的增强以及重要的平台改进。 安全增强功能包括扩展reCAPTCHA覆盖范围和包含内置速率限制。 核心编辑器依赖项和第三方库已升级到与PHP 8.x兼容的最新版本。Page Builder现在作为Magento Open Source中的捆绑扩展提供。 它现在是Adobe Commerce和Magento Open Source的默认内容编辑工具。

此版本包括370多项核心代码的新修复和33项安全增强功能。 其中包括我们的社区成员解决近290个GitHub问题。 这些社区贡献的内容包括对核心代码进行次要清理,以及GraphQL中的重大增强。

此版本包括370多项核心代码的新修复和33项安全增强功能。 Magento Open Source2.4.2发行说明中发现的所有已知问题已在此版本中修复。

NOTE
Adobe Commerce版本可能包含向后不兼容的更改(BIC)。 要查看与向后不兼容的更改,请参阅BIC参考。 在BIC亮点中描述了严重的向后不兼容问题。 并非所有发行版本都引进了主要BIC。

有关Adobe Commerce 2.4.2-p2的信息,请参阅Adobe Commerce 2.4.2-p2发行说明

其他发行信息

虽然这些功能的代码与季度版本捆绑在一起,但其中几个项目(例如,Progressive Web Application(PWA)Studio)也单独发布。 每个项目的文档中都提供了特定于项目的单独发行信息,其中记录了这些项目的错误修复。

应用AC-3022.patch以继续将DHL作为装运承运人提供

DHL已引入架构版本6.2,并且将在不久的将来弃用架构版本6.0。 支持DHL集成的Adobe Commerce 2.4.4及更早版本仅支持版本6.0。部署这些版本的商家应尽早应用AC-3022.patch,以继续将DHL作为装运承运人提供。 有关下载和安装修补程序的信息,请参阅应用修补程序以继续将DHL作为运输运营商提供知识库文章。

应用MC-43048__set_rate_limits__2.4.3.patch解决API速率限制问题

此修补程序为Web API无法处理数组中包含20个以上项目的请求问题提供了解决方案。 此问题会影响运行Magento Open Source2.4.3、Adobe Commerce 2.4.3或2.3.7-p1的部署。 在这些版本中添加了内置速率限制功能,以防止拒绝服务(DoS)攻击,默认最大值为20。 此修补程序将默认限制还原为更高的值。 如果您怀疑存储区正在遭受DoS攻击,Adobe建议将默认输入限制降低到较低的值,以限制可请求的资源数量。 请参阅Web API无法处理数组知识库文章中超过20个项的请求。

应用AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch解决升级时PHP出现的严重错误

在升级到Magento Open Source2.4.3的过程中可能会出现以下致命错误:

PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74

此错误是由于使用str_contains函数导致的,该函数是一个PHP 8.x函数。 应用程序Open Source 2.4.3不支持PHP 8.x。此修补程序将此函数替换为支持的PHP 7.x函数。 请参阅Adobe Commerce升级2.4.3、2.3.7-p1 PHP致命错误修补程序知识库文章。

高亮

在此版本中查找以下要点。

显着的安全增强功能

此版本包括33项安全修复和平台安全改进。 其中许多安全修复已回溯到2.4.2-p2和2.3.7-p1。

三十三项安全增强功能,可帮助消除远程代码执行(RCE)和跨站点脚本(XSS)漏洞

到目前为止,尚未发生与这些问题相关的已确认攻击。 但是,可能会利用某些漏洞访问客户信息或接管管理员会话。 这些问题中的大多数要求攻击者首先获得对管理员的访问权限。 列入允许列表因此,我们提醒您采取一切必要步骤来保护您的管理员,包括但不限于:IP身份验证、双重身份验证、使用VPN、使用唯一位置而非/admin以及良好的密码卫生。 有关这些已修复问题的讨论,请参阅Adobe安全公告

其他安全增强功能

此版本的安全改进改进了与最新安全最佳实践的符合性,包括:

  • 新Composer插件 ​有助于防止依赖关系混淆,并识别与公共包存储库上的内部包同名的恶意包。 请参阅Adobe发布包含2.4.3版本的新编辑器插件。

  • 速率限制现已内置到API ​中,以防止拒绝服务(DoS)攻击。 Web API现在对客户端可请求的资源大小或数量施加限制(默认最大值为20,并可根据业务需求配置为其他值)。 有关配置这些限制的信息,请参阅速率限制

  • ReCAPTCHA覆盖范围已扩展 ​以包括:

    • ReCAPTCHA涵盖具有相应HTML页的Web API。 (这不包括通过集成访问的Web API。) ReCAPTCHA覆盖范围可保护端点免受垃圾邮件攻击。 当使用OAuth的第三方集成服务访问Web API时,ReCAPTCHA被禁用。

    • 下单店面页面和支付相关Web API。 默认情况下,这些页面的ReCAPTCHA保护处于禁用状态,并且可以从管理员中启用。 此报道添加了一种反暴力机制,以保护商店免受梳理攻击。

NOTE
从2.3.2版本开始,我们将分配并发布索引式常见漏洞和暴露(CVE)编号,其中会包含外部方报告给我们的每个安全错误。 这使用户能够更轻松地识别其部署中未解决的漏洞。 您可以在CVE了解有关CVE标识符的更多信息。

基础架构改进

此版本包含可提高框架质量和以下功能区域的增强功能:

  • 客户帐户

  • 目录

  • CMS

  • OMS

  • 导入/导出

  • 促销和定位

  • 购物车和结账

  • B2B

  • 暂存和预览

包含PayPal的部署现在支持​ PayPal Pay Later。 此功能允许购物者以每两周一次分期付款的方式支付订单,而不是在购买时支付全额。

use_application_lock索引模式use_application_lock模式允许您通过使用环境变量或通过配置app/etc/env.php文件来启用重新索引。 启用此模式后,在失败后不再需要手动重置索引器。 请参阅对重新索引进程使用应用程序锁定模式

平台增强功能

版本2.4.3尚未与PHP 8.x兼容,但下面的平台升级使我们更接近将来与PHP 8.x兼容的程度。

  • 核心编辑器依赖项和第三方库已升级到与PHP 8.x兼容的最新版本。

  • KnokoutJS库已升级到v3.5.1(最新版本)。

  • 已弃用的TinyMCE v3库已删除。 已从Adobe Commerce中删除与TinyMCE v3.x相关的Magento_Tinymce3Banner模块和MFTF测试。

  • Magento Open Source2.4.3已经过测试,并已确认与Redis 6.0.12兼容。 (版本2.4.x仍与Redis 5.x兼容。)

  • Laminas库依赖项已升级到PHP 8.x兼容版本。 已从composer.json文件中删除一些多余的依赖项。 Magento Open Source2.4.3使用Laminas 3.4.0

性能增强

此版本包括一些增强功能,它们缩短了产品价格和目录规则索引器的索引时间。 商家现在可以从客户组或共享目录中排除网站,这减少了用于索引的记录数量并缩短了索引时间。

Adobe Stock集成

此版本包括Adobe Stock集成v2.1.1。

GraphQL

此版本添加了共享路由的GraphQL覆盖范围。 路由查询RoutableInterface支持产品、类别和CMS页面上的路由请求。 urlResolver查询已弃用,其功能已被route查询取代。

有关这些增强功能的详细信息,请参阅GraphQL开发人员指南

页面生成器

Page Builder现在作为Magento Open Source中的捆绑扩展提供。 它现在是Adobe Commerce 2.4.3和Magento Open Source2.4.3的默认内容编辑工具。它可以用任何第三方模块替换WYSIWG编辑器。

Page Builder在以下“管理”区域中取代了TinyMCE编辑器:

  • CMS页面
  • CMS块
  • 类别描述
  • 产品描述

在TinyMCE中创建的所有内容已作为HTML迁移到页面生成器中。

PWA Studio

有关增强功能和错误修复的信息,请参阅PWA Studio版本。 有关PWA Studio版本及其兼容版本的列表,请参阅兼容性

升级兼容性工具

升级兼容性工具的范围已根据社区的反馈进行了扩展。 加入我们的#upgrade-compatibility-toolSlack渠道,获得Adobe产品团队和社区的支持,并帮助指导该工具的未来方向。

供应商开发的扩展

有关此版本功能和更改的更新,请参阅以下文章:

修复的问题

我们已在2.4.3核心代码中修复了数百个问题。

安装、升级、部署

  • 现在,bin/magento setup:db:status命令会返回一条消息,指示在成功升级后一切都是最新的。 以前,应用程序显示此错误: Declarative Schema is not up to date
  • 现在,当创建新可配置产品失败时,在表单重新加载时会保留配置值。 以前,在重新加载表单时丢失值,应用程序显示此错误: The value specified in the URL Key field would generate a URL that already existsGitHub-32102
  • 当您运行bin/magento setup:upgrade从具有Redis的Magento Open Source部署升级到Adobe Commerce时,应用程序不再引发异常。
  • 在Galera群集上运行的部署现在支持更多客户。 GitHub-31038
  • 现在,当应用程序安装在core_config_data_table中的—use-rewrites=0选项或web/seo/use_rewrites设置为0时,管理员可以成功登录到部署。 GitHub-32100
  • 已更新AsyncCssPluginsortOrder加载。 应用程序现在在JsFooterPlugin之前加载AsyncCssPluginGitHub-30882
  • Magento\Config\Model\Config\PathValidator现在检查显示路径以确定元素是否存在,如果它有配置路径,则使用config.xml路径进行验证。 GitHub-27678
  • 使用Grunt或服务器端编译编译的Less文件现在会产生相同的结果。 以前。 使用Grunt编译时,扩展_extends.less中其他.abs- styles.abs- styles未正确输出。 这导致了生产部署与开发部署之间的差异。 GitHub-7231

Adobe Stock集成

  • 当​ API密钥(客户端ID) ​和​ 客户端密钥 ​未设置时,应用程序现在在“搜索Adobe Stock”页面上显示信息性消息以及指向管理员​ 商店 > 配置 > 高级 > 系统 ​的链接。 以前,应用程序显示此错误: We couldn't find any records且没有链接。

后端

  • 具有受限访问权限(例如,仅为一个网站分配了访问权限)的管理员无法再编辑设置为全局范围的类别。
  • 生成的系统报告(系统 > 支持 > 系统报告)现在已正确呈现。 以前,报表内容未对齐。
  • 在创建捆绑产品期间启用​ 动态价格 ​设置时,应用程序现在会按预期关闭​ 价格 ​字段的验证。 以前,启用​ 动态价格 ​设置后,当您从​ 价格 ​字段中移除值时,应用程序会引发验证错误。 GitHub-26214
  • 当管理员URL与部署中的默认网站URL不同时(在该部署中,应用程序配置为可从两个URL访问),不再发生无限重定向。

捆绑产品

  • 您现在可以使用addProductsToCart突变将具有多个复选框选项的捆绑产品添加到购物车。
  • 现在,使用临时表执行捆绑产品的价格索引,从而避免锁定数据库表。 以前,应用程序使用物理表,这会导致表被锁定。
  • 捆绑项目的价格现在可以设置为0.00。以前,在将价格设置为0.00之后返回到编辑页面时,价格会返回到其默认值。 GitHub-32383
  • 现在,如果价格在订单下达之前发生了更改,则包含捆绑产品的订单的订单详细信息会显示捆绑产品的正确价格。
  • 捆绑产品库存状态现在会根据其子产品的库存状态进行更新。 以前,当从产品中删除一个选件时,捆绑产品显示为缺货,并且捆绑产品具有两个SKU相同的选件。
  • 将捆绑产品的Shipment Type属性移动到其他属性组后,管理员现在可以更改该属性的值。 以前,如果此属性被移动到属性集中默认组以外的属性组,则始终使用Together值保存该属性。
  • GraphQL setGuestEmailOnCart突变现在可以正确更新来宾电子邮件。 以前,不更新报价和报价地址表。
  • 通过REST API调用向捆绑产品添加、删除或更新子产品现在会按预期触发重新索引。 以前,这些操作不会触发重新索引,因此,在执行手动重新索引之前,捆绑产品不会更改其库存状态。
  • 该应用程序现在为具有分层价格的捆绑产品显示正确的价格范围。 GitHub-30284
  • 现在,在捆绑包选项的价格发生更改后,应用程序会在购物车页面上以及结帐工作流的配送步骤中显示与预期相同的总价。
  • 现在,您可以通过从客户购物车访问捆绑产品来成功配置捆绑产品。 以前,配置产品页面从未完全加载,并且您无法保存设置。
  • 商家现在可以在多商店部署的每个商店视图上为捆绑产品指定唯一价格。 网站特定价格保存在catalog_product_bundle_selection_price表中。 以前,即使将​ 商店 > 配置 > 目录 > 目录 > 价格 > 目录价格范围 ​设置为Website,应用程序也不会将捆绑产品的价格基于网站范围。 catalog_product_bundle_selection_price中未保存网站特定的价格。 GitHub-12584
  • 禁用​ 动态定价 ​后,捆绑产品的发票现在会显示相关简单产品的正确数量。 以前,与捆绑产品关联的简单产品的数量是父产品的数量,而不是捆绑产品的数量)。 GitHub-30802
  • updateProductsInWishlist突变现在已成功更新愿望清单中属于捆绑产品的项目。 以前,这种突变不会更新愿望清单项,而是删除该项并创建一个新项,从而更改该项的ID。

缓存

  • 已更新varnish6.vcl文件以绕过客户页面的缓存。

验证码

  • 现在,CAPTCHA可正确验证购物者提供的数据,并且在购物者多次尝试通过PayPal Payflow Pro结帐失败后,CAPTCHA字段现在可按预期显示。
  • 验证码验证不会再在结账工作流的支付页面上随机失败。
  • 在超过失败的完成尝试次数后,应用程序现在会按预期显示CAPTCHA字段。 以前,尽管应用程序提示您再次尝试验证码质询,但它不显示验证码字段。
  • 现在,验证码在结账页面上可按预期工作。 以前,在购物者正确回答验证码质询后,结账页面上的加载程序从未完成,应用程序显示以下错误: captchaData[formId] is undefined。 (仅当购物者使用先前访问运行2.3.5-p1的部署的同一浏览器时,才会发生此错误。)
  • _.isEmpty()签入defaultCaptcha.js文件现在已成功完成。 以前,这些检查未完成,因此,升级后无法加载签出页面。 GitHub-31641

购物车和结账

  • 现在,在转换和更新购物车中的产品数量时,应用程序会考虑特定于区域设置的小数定位符。
  • 现在,仅当购物者单击​ 下订单 ​按钮时,应用程序才会在相关块中显示条款和条件验证消息。 以前,每当购物者在结帐工作流中更改付款方式时,应用程序就会在“应用折扣代码”块中显示此消息: The order wasn't placed. First, agree to the terms and conditions, then try placing your order again
  • 如果购物者未能单击​ 更新 ​按钮并返回送货步骤,应用程序现在会放弃对结帐付款步骤上的帐单地址表单的更改。
  • 现在,带有可自定义选项(File)的产品会在多配送结账过程中按预期包含活动链接。 以前,缺少此链接。 GitHub-31095
  • 现在,管理员购物车以正确的货币显示支持多种货币的商店的产品价格。 以前,价格会多次转换为指定的货币 — 首先是从店面将产品添加到购物车时,然后是在管理员随后呈现订单时。
  • 购物者现在可以将最低广告价格(MAP)超过其正常产品价格的产品添加到购物车。
  • 使用多个地址结账时,购物者现在可以从结账工作流中成功更改其账单地址。
  • 现在,来宾创建的所有付费付款交易都已保存到数据库,并可在管理员中按预期显示。 以前,数据库中只保存了一小部分并发订单,并且大多数订单由于数据库锁定导致的超时而丢失。 GitHub-25862
  • 现在,当访客将产品放入迷你购物车时,应用程序可正确显示包含特殊字符的内联欢迎消息。 以前,应用程序不会将产品添加到迷你购物车或显示欢迎消息。 GitHub-32250
  • 现在,在启用店内交付的情况下,会成功加载签出工作流的配送页面。 以前,应用程序引发JavaScript错误,并且装运结账页面未完全呈现。
  • 已将itemResolvers参数添加到目录di.xml文件。 因此,如果禁用了可配置和分组的产品模块,则签出不再中断。 GitHub-30860
  • 在管理员重新排序工作流期间,应用程序现在会按预期在​ 付款和送货信息 ​部分中显示单选按钮。 GitHub-30257
  • 当购物车包含具有多个选项的捆绑产品时,应用程序现在可以正确应用具有购物车级别固定折扣的购物车价格规则。 以前,购物车价格规则未完全应用于订单。 GitHub-30952
  • 类别列表视图上的​ 添加到购物车 ​按钮现在按预期工作。 GitHub-32232
  • 您现在可以使用POST/V1/carts/mine/items将自定义数量的分组产品添加到购物车。 GitHub-26909
  • 应用程序不再使用送货地址填充结账工作流的帐单地址区域。 以前,如果帐单地址的​ 省/市/自治区 ​字段为空,并且送货地址和帐单地址不同,则应用程序会使用送货地址中的信息填充帐单地址​ 省/市/自治区 ​字段。 GitHub-31608

目录

  • 批量更新​ 启用数量增量 ​和​ 数量增量 ​属性现在按预期工作。 GitHub-29544
  • 在启用最近与管理员的产品同步后,应用程序不再引发JavaScript错误。 以前,应用程序显示此JavaScript错误: Cannot read property 'status' of undefined
  • 自定义主题布局更新现已按预期应用。 以前,忽略自定义主题布局更新。
  • 产品类别缓存现在已按cronindexer_update_all_views执行期间的预期清除。 以前,重新索引后“类别”页面上的产品计数不正确。
  • 现在,如果在存储视图的产品更新REST API请求中未指定属性,则属性值将保持不变。 以前,如果未指定属性,应用程序会将该属性值重置为其默认范围值。
  • 当产品按SKU进行过滤时,管理产品网格(管理员​ 目录 > 产品)现在显示正确的产品计数。
  • 现在,如果启用了类别权限,则当产品添加到CMS页面时,应用程序会显示准确的库存状态,并阻止显示指定客户组的价格。 以前,所有产品都显示为缺货,而不管实际库存状态如何。
  • 现在,“高级定价客户组价格”批价格输入字段的最小宽度为5位数。 以前,在低分辨率显示屏上,此字段中只显示两个符号。
  • 现在,应用程序在删除产品后成功删除产品媒体映像。 以前,成功删除产品后,产品媒体图像会保留在文件夹中。
  • 当您在“管理员”中创建或编辑产品,然后创建“计划设计更新”时,页面布局现在会按预期更新。 GitHub-32007
  • 值为零的自定义产品属性现在可以成功保存为空白。 以前,应用程序不会将此值更新为空白。
  • 自定义类别布局更新文件现在可以按预期应用于产品。 以前,更新文件句柄(catalog_category_view_*)与产品句柄不匹配。 GitHub-27285
  • 已为管理员产品列表的固定产品税(FPT)列禁用排序。 以前,在对FPT列进行排序后,无法重新加载Products页面。
  • 现在,当匹配的产品在每个网站上的价格不同时,页面生成器产品小组件预览可按预期在多网站部署中工作。
  • 在使用GET/rest/V1/products/?searchCriteria[filterGroups]的产品搜索中按位置排序现在按预期工作。 以前,产品收藏集没有用于排序的字段position值。 GitHub-31591
  • 管理员用户现在可以在产品网格的​ 名称 ​和​ SKU ​字段中看到双空格内容。 以前,应用程序将多个空格折叠为单个空格。
  • 现在,当Admin的可销售数量为0时,产品在店面显示为缺货。 以前,这些产品在店面中以库存形式列出,应用程序显示活动​ 添加到购物车 ​按钮。 GitHub-31117
  • 管理员现在可以从“管理客户”页面的“购物车”部分(“客户活动”列)将带有可自定义选项(File)的产品添加到“订购的商品”网格中。 以前,应用程序未将该项添加到列表中,因为值在插入\Magento\Catalog\Model\Product\Type\AbstractType::_prepareOptions之前格式不正确。
  • 该应用程序不再提示购物者为仅有一个选项的捆绑产品选择产品选项。
  • 应用程序现在会在创建新小部件的过程中显示布局更新中的所有子类别(锚点类别和非锚点类别)。
  • 当仅为一个存储视图更新产品名称时,product查询不再覆盖多存储部署中所有存储视图的默认值。 GitHub-31083
  • 当您更改与管理员相关的产品、追加销售和交叉销售列表的每页值时,Magento Open Source会按预期更新总页数。 GitHub-31059
  • 管理员现在可以按SKU将具有两个或多个可自定义选项(File)的产品添加到订单。
  • 当具有受限权限的管理员将产品小组件添加到管理员中的CMS页面时,应用程序不再引发错误。 以前,当管理员单击​ 保存 ​按钮时,应用程序引发此错误: We are sorry, an error has occurred while generating the content
  • 启用​ 使用JavaScript日历 ​后,产品详细信息页面现在会打开并显示填充了前一订单日期的可自定义日期选项。 现在,如果自定义日期选项值解析程序中的值未根据当前配置设置格式,则该值将回退到替代格式。 以前,自定义日期选项值为空。
  • 现在,当产品缺货时,应用程序在购物车中仅显示一个错误。 以前,应用程序显示冗余消息。 GitHub-27469
  • 在使用POST /V1/product/:sku端点创建或更新捆绑产品时,您现在可以按预期设置required_optionshas_options捆绑属性。 以前,这些自定义属性设置为0(零),尽管已尝试将其设置为1(一)。
  • 管理员现在可以按SKU将带有可自定义选项(File)的产品添加到订单。 GitHub-30285
  • 您现在无需指定type_id即可保存产品和价格。 GitHub-13639
  • 现在,当使用REST PUT /V1/products/:sku/links请求将新的子产品与新的组产品关联时,店面上可按预期提供组产品。 以前,产品在运行bin/magento cron:run后未正确编制索引。
  • 您无法再创建具有NULL SKU值的产品。 以前,您可以通过自定义导入器或直接在数据库中创建没有SKU值的产品,但当您尝试从管理员中编辑该产品时,应用程序会引发错误。 GitHub-27411GitHub-32525
  • 向简单产品添加所需的自定义选项时,不会再毫无警告地将其从父复合产品中删除。 应用程序现在会显示信息性警告,并且不会保存产品。 以前,应用程序保存了产品更改并且不显示警告。 GitHub-30492

目录规则

  • 现在,当目录价格规则应用于项目时,products查询将返回当前值。 GitHub-26738
  • 当购物车或目录规则过期、禁用或变为非活动状态后重新索引失败时,现在会按预期删除以catalogrule_product__temp开头的临时表。 GitHub-22273
  • 现在在\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexById\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIds中以相同方式应用时区。 GitHub-29549

CMS内容

  • 启用​ 启用前端调整大小 ​配置设置后,现在可以按预期在上传期间调整大图像的大小。
  • 修复了CMS页面保存控制器的错误处理。 以前,当在cms_page_prepare_save事件中抛出Error对象时,应用程序将此对象传递给addExceptionMessage函数,从而违反其约定,因为此函数需要Exception。 通过使用addErrorMessage函数添加错误消息解决了此问题。 GitHub-30149

可配置的产品

  • 单击产品的可配置选项时,应用程序不再复制产品图像库中的产品缩略图。
  • 当您从希望列表中编辑可配置产品时,应用程序显示的配置弹出窗口现在会在您单击“确定”按钮时按预期关闭。
  • 现在,该应用程序可以正确为仅包含一个可配置产品的订单生成发票。 GitHub-31143
  • 购物者现在可以从非默认商店视图将可配置产品添加到购物车。 以前,当非默认存储视图上的购物者尝试添加可配置产品时,应用程序显示此错误: Could not add item to cart. Please check required options and try againGitHub-31660

内容安全策略(CSP)

  • 内容安全策略现在支持通过data: scheme加载base64编码的图像和字体。

cron

  • Cron清理查询已重构,以减少或消除以下性能问题:cron作业仍然卡在挂起状态,MySQL查询速度越来越慢,以及CPU使用率增加。 GitHub-26507
  • 状态为running且已超过24小时的cronjobs现在会自动更改为状态error。 因此,该作业的新实例可以再次运行,并且当作业错误地仍设置为状态running时,您无需手动更改作业状态。 以前,如果cronjob停滞在状态running中,应用程序会阻止启动同一作业的新实例,您必须手动更改作业状态。 GitHub-8933
  • cron作业现在按预期完成,不会再引发此序列化错误: [Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28')GitHub-18409
  • indexer_update_all_views个cron作业在以前失败后现在按预期运行。 失败的运行在cron_schedule schedule中标记为失败,后续运行不会自动失败。 以前,cron_schedule表填入了挂起作业,并且indexer_update_all_views cron作业未运行。 GitHub-23054
  • cron不再发生死锁,因为cron尝试在组重叠的大型部署中设置锁定。 GitHub-8933
  • 只有几个cron作业运行后,cron_schedule表上不再出现cron死锁。 GitHub-22438

自定义客户属性

  • 店面客户帐户通讯簿中的​ 状态 ​字段现在已作为加载,并且仍然是下拉页面元素。 现在,在完全加载所有页面元素之前,提交 ​按钮处于禁用状态。 以前,应用程序在将此字段作为下拉元素呈现之前将其加载为文本框,购物者可以在文本字段中输入并保存值,这稍后会导致结账期间出现错误。
  • 上传文件时,当您在管理员客户地址字段中保存带有文件附件的客户地址属性时,应用程序不再引发错误。 出现此问题的原因是,控制器操作中缺少返回语句。 以前,应用程序引发此错误: Something went wrong while saving the file
  • 现在,RESTGET车API调用会返回帐单和送货地址的正确自定义属性值。 以前,自定义地址属性在“我的帐户前台”页面和“管理员”的订单详细信息页面中显示不正确。
  • 应用程序现在已成功处理包含输入类型为file (attachment)的客户地址属性的文件。 以前,应用程序在上传附加文件期间引发此错误: Something went wrong while saving the file

客户

  • 现在,按帐户创建日期过滤可生成符合配置的时区设置并捕获所有相关已创建帐户的结果。
  • 如果之前缓存了数据,则客户网格过滤器现在为受限制用户使用正确的网站选项。 以前,客户网格过滤器从缓存中检索网站参数,并为受限制的用户包含不正确的数据。
  • 当在多网站部署中删除一个网站时,应用程序不再在“管理员客户”页面上引发异常。 以前,当管理员尝试访问综合客户列表时,应用程序未显示所有客户并显示以下错误: The website with id 2 that was requested wasn't found. Verify the website and try again
  • 具有权限的管理员现在可以从客户的“帐户信息”选项卡将客户重新分配到不同的网站。
  • 现在,在创建输入类型为(File)的客户地址属性时,您可以成功上传文件。 以前,当您尝试上载并保存文件时,应用程序会引发以下错误: Something went wrong while saving the file

目录

  • 当购物者在结账工作流的配送区域输入无效的邮政编码时,应用程序不再引发异常。 GitHub-23371

可下载

  • 现在,当订单同时包含可下载的产品和带有可下载选项的可配置产品时,应用程序会在新订单电子邮件中显示指向可下载产品的链接。 以前,应用程序显示指向独立的可下载产品的链接,但显示指向具有可下载选项的可配置产品的链接。

EAV

  • 客户地址属性日期值现在以四位数格式而不是两位数格式保存。

电子邮件

  • 现在,管理员重置密码页面上的密码重置链接可按预期工作。 以前,当自定义模板用于重置管理员密码页面时,当管理员单击电子邮件内的链接时,应用程序会显示此消息: Your password reset link has expired。 出现此情况是因为自定义电子邮件模板包含用户ID的错误变量。
  • 现在,如果在商店视图级别启用,则从管理员那里发送客户电子邮件会正常运行。 以前,当在商店视图级别而非全局级别启用电子邮件通知设置时,应用程序不会发送客户电子邮件。
  • 现在,在并非所有网站都启用异步电子邮件发送的多站点部署中,应用程序会按预期发送电子邮件。 以前,如果至少有一个网站禁用了此设置,那么即使启用了此设置,也不会从任何网站发送电子邮件。 发票、发运和贷项通知单电子邮件中存在类似问题。 但是,已成功发送订单备注、发票备注、发运备注和贷项通知单备注电子邮件。 GitHub-31950
  • 发票和发票PDF现在包含与预期相同的捆绑产品价格。 以前,发票PDF包含捆绑产品的错误价格。 GitHub-12856
  • 已将字符串转换添加到电子邮件模板筛选方法中,以确保返回值为string。 以前,当未处于开发人员模式时捕获到异常时,应用程序返回phrase对象。 这进而触发了致命的Uncaught TypeErrorGitHub-32671
  • 当在多站点部署的一个网站上启用异步发送(商店 > 配置 > 销售 > 销售电子邮件 > 常规设置 > 异步发送)时,订单确认电子邮件现在会按预期发送。 GitHub-31950
  • 当客户尝试从“联系我们”表单发送电子邮件时出现异常时,应用程序现在会按预期记录错误。 GitHub-23645

框架

  • 现在会检查Admin中的父类是否存在docblock注释,以及原始类和继承的接口。 以前,由于未检查父类,因此在Admin中执行任何触发事件的与客户相关的操作都会导致错误。 应用程序在异常日志中记录此错误: report.CRITICAL: Method's return type must be specified using @return annotation.
  • 在启用了Redis页面缓存的部署中停止Redis服务器时,应用程序不再引发致命错误。
  • 使用bin/magento config:set system/backup/functionality_enabled 1启用备份时,应用程序现在会执行​ 从备份中排除媒体文件夹 ​设置。 以前,尽管进行了此设置,但会备份媒体文件夹,因为指向/magento的路径格式不正确,带有double //。
  • 该应用程序现在会按预期翻译“管理购物车”页面的所有可翻译字符串。 以前,翻译加载发生得太晚,并跳过所有订阅控制器操作预派单的观察者。 GitHub-31849
  • 禁用​ 以客户身份登录 ​启用扩展设置后,“新建客户帐户”页面上的表单验证现在可以成功运行。 以前,应用程序引发JavaScript错误。
  • ProcessManager分支的子进程的异常处理已得到改进。 现在发生异常时,主进程将退出,并且只显示一次错误消息。 以前,会记录多个索引器故障并显示多条消息。 GitHub-30622
  • 当此区域文件的di.xml不包含已注册的插件时,不再为新的自定义区域类型触发全局Magento Open Source插件(例如webapi_restgraphql)。
  • 初始化期间发生的异常不再缓存,现在会触发500响应代码。
  • 合并到communication.xml文件中的最后一个处理程序不再覆盖以前创建的所有处理程序。 GitHub-29528

常规修复

  • 现在,应用程序在“我的产品评论”页面和“我的帐户”页面上显示最近评论的正确星数。 以前,该应用程序只对第一次审阅应用星级审核,而将页面上的其他审阅留空。
  • 标头中的帐户链接现在遵循WCAG标准。 以前,标头中的帐户链接包含重复的ID,这会导致WCAG验证失败。
  • 当来宾购物者使用无效地址时,应用程序不再引发系统日志生成的错误。 以前,应用程序间歇性地显示此错误而不是呈现页面: No such entity with addressIdGitHub-15115
  • 对于格式不受支持的图像,图像大小调整过程不再暂停。 以前,当catalog:images:resize遇到不受支持的图像格式时,进程停止并且应用程序显示以下错误: bin/magento catalog:images:resize Unsupported image format
  • 管理员已添加对徽标图像的WEBP和AVIF支持。 GitHub-32495
  • 您无法再更改media_gallery属性的范围。 以前,当您将media_gallery属性的范围更改回global时,应用程序会引发错误。
  • 在更新结束日期之后,作为计划更新添加的相关产品将不再显示在店面产品页面上。 GitHub-469
  • 选择实体类型后,筛选功能现在可在计划导出列表中按预期工作。 以前,过滤器不起作用,并且应用程序引发JavaScript错误。 GitHub-361
  • 使用数据库存储方法保存类别时,类别图像现在会按预期从catalog/tmp/category目录复制到catalog/category目录。 media_storage_file_storage表中的图像行现在也具有正确的directory_idGitHub-11995
  • 在向CMS层次结构提交更改后,商家现在会按预期收到有关失效缓存的通知。 以前,应用程序在保存CMS层次结构时不会使缓存失效。
  • 减少了对购物车的购物车部分的冗余AJAX请求。 以前,应用程序未正确加载购物车小计,这会再次触发购物车重新加载。
  • 在运行PHP 7.4的部署上,当​ 生成“类别/产品”URL重写 ​设置设置为​ No ​时,应用程序现在返回404错误,购物者尝试访问不存在的类别路径。 以前,应用程序返回一个500错误,说明: Trying to access array offset on value of type boolGitHub-31984
  • nowdoc已替换Magento_Backend存储切换器中的heredocGitHub-32262
  • 已将阿根廷、玻利维亚、智利、厄瓜多尔尔、圭亚那、巴拉圭、秘鲁、苏里南和委内瑞拉区域添加到directory_country_region表中。 GitHub-31169
  • 已将阿尔巴尼亚、丹麦、希腊、冰岛、葡萄牙和瑞典区域添加到directory_country_region表中。 GitHub-31040
  • 现在,当出现异常时,消息会在MysqlMQ消息队列中标记为错误。 GitHub-18140
  • 现在,在为管理员贷项通知单和发票页加载税务信息时,应用产品会引用正确的类对象。 GitHub-31197
  • Royal Mail Click & Drop集成现在按预期工作。 以前,当您尝试激活此集成时,应用程序会引发此错误: Sorry! Something went wrong. Please try again laterGitHub-28996
  • 现在,如果在URL中传递了错误的装运、贷项通知单或发票ID,应用产品将显示一则信息性错误消息。 以前,应用程序抛出致命错误。 GitHub-30424
  • 已删除静态文件位置的递归。 应用程序现在显示404页面,而不是500错误。 以前,默认NGINX配置中的错误会导致无限递归。 GitHub-31530
  • cms_index_noroute.xml文件的名称已更正为cms_noroute_index.xmlGitHub-31300
  • 已重构.editorconfig文件以更正db_schema_whitelist.json文件的自动格式化。 GitHub-31171
  • 调整浏览器窗口大小不再触发重复的绑定放大镜事件。 GitHub-30788
  • 当由user_id筛选Magento\Users\Model\ResourceModel\Users\Collection时,应用程序不再抛出SQL异常。 GitHub-31216

礼品卡

  • 价格范围验证逻辑已添加到礼品卡创建页面。 以前,管理员可以创建其最小值超过最大值的卡片。 GitHub-493
  • 现在,当请求不包含allow_open_amount的值时,addRequisitionListItemsToCart查询会按预期返回自定义礼品卡的金额。

礼品消息

  • 现在,登录后,管理员会直接重定向到所请求的“管理员”页面。 以前,当管理员登录时,他们会被重定向到管理员功能板(或配置为启动页面的任何页面),并且必须手动导航到他们的目标。 GitHub-31042

Google Tag Manager

  • 现在,启用Google Tag Manager后,结账工作流支付页面上账单地址的UI组件可正确使用报价地址。 以前,支付页面上发生JavaScript错误。

GraphQL

  • GraphQL products查询现在返回按与属性编辑页面上使用的相同排序顺序排序的属性选项。
  • { category(id: 2){ children { name children { name } } } } GraphQL请求的响应现在包含正确排序的类别树。
  • CartItemPrices对象现在包含新的GraphQL字段fixed_product_taxes,该字段返回应用于购物车项目的固定产品税的数组。 以前,应用于购物车项目的固定产品税不包括在购物车查询中。
  • 对GraphQL的空请求现在引发响应代码200而不是500。 以前,GraphQL解析器在生成查询结果之前引发异常。
  • applyRewardPointsToCart突变现在更新购物车的总计以准确反映扣除的奖励积分值。 GitHub-486
  • 使用GraphQL链接追加销售产品时,GraphQL响应中不再包含禁用的产品。
  • 在禁用访客结帐时,商家现在可以使用GraphQL setShippingAddressesOnCart方法设置购物车的帐单和送货地址。
  • categoryList查询在CategoryTree对象上包含多个片段时,不再引发异常。 GitHub-31086
  • GraphQL product查询现在返回正确的客户组价格。
  • GraphQL products查询响应现在会根据产品属性位置对聚合进行排序。
  • 当产品和类别URL后缀包含null值时,应用程序在GraphQL查询期间不再引发类型错误。 GitHub-30909
  • CustomizableDateValue对象现在包含type属性。 其值是一个可设置为DATE、DATE_TIME或TIME的枚举。
  • POSTV1/products/special-price-delete请求现在只按预期删除具有指定store_id的价格。 以前,该调用会从所有商店中删除指定SKU的所有特殊价格。 GitHub-25907
  • 修复了createGiftRegistry突变中country_code属性的错误。
  • 修复了updateGiftRegistryItems突变的giftRegistryUid属性的问题。
  • 添加了额外的检查,以防止使用updateGiftRegistryRegistrants突变将随机人员作为注册者添加到礼品注册表。
  • addConfigurableProductsToCart突变现在返回指定产品的正确缩略图。 以前,它会返回父产品的缩略图。
  • 在为将来日期设置特殊价格时段时,products查询不再公开产品的特殊价格。 GitHub-30210GitHub-29631
  • customer查询响应现在包含total_giftcard属性作为OrderTotal对象的一部分。
  • 更正了导致products查询返回有关没有层定价集的项目的价格层的错误信息的问题。 GitHub-32279

图像

  • 在使用POST/V1/product/:sku端点创建或更新捆绑产品时,您现在可以按预期设置required_options和has_options捆绑属性。 以前,这些自定义属性设置为0(零),尽管已尝试将其设置为1(一)。

导入/导出

  • 现在,导出页面实体属性网格中产品实体的类别ID过滤器可按预期工作。
  • 现在,当所有子产品缺货时,分组的产品库存状态会按预期更新,显示为缺货。 GitHub-32647
  • 现在,当导入更新子产品库存状态时,可配置产品库存状态会按预期自动更新。 以前,当子产品库存状态通过导入更新时,产品库存状态不会自动更新。
  • 现在,您可以在计划的导出中保存空值。 以前,应用程序会在创建或保存导出后更新空筛选器值。 nonot specified值在数据库中都以零表示,并且值not selected被替换为no
  • 现在,在导出产品、库存来源和客户实体时,导出过程会考虑用户角色范围。 以前,导出过程忽略用户角色范围,允许导出专用用户角色导出实体。
  • 现在,如果导入的产品具有tax_class_nameNone0,则应用程序会将产品税类设置为None。 以前,如果product tax_class_name在CSV文件中为None,则应用程序会创建一个新的税类None,该税类与现有的税类重复。 如果CSV文件中的product tax_class_name0,则应用程序忽略该值,并且产品税分类在导入后未发生更改。
  • 管理员现在可以从管理员成功更改捆绑产品的bundle_valuesname。 以前,在您从管理员更改名称后,应用程序会在店面上将产品显示为缺货。 产品还与同一SKU合并到单个捆绑选项部分中。
  • 现在,在导出客户数据时,应用程序会考虑用户范围。 以前,当您尝试导出客户时,应用程序会从所有网站导出客户数据。
  • 现在,当在CSV文件中指定__EMPTY__VALUE__时,应用程序将按预期在CSV文件导入过程中删除向上销售、交叉销售和相关产品之间的产品关系。
  • 导出许多客户的自定义地址数据(管理员​ 系统 > 导出)不再会定期导致内存错误。 以前,在导出自定义地址数据时,应用程序尝试加载所有客户数据,这会导致内存耗尽,并且应用程序会引发内存分配失败错误。
  • 在默认CSV导入过程中,不再导入重复层价格。 以前,缺少验证以防止输入重复的分层价格,当出现重复的分层价格时,商家无法保存产品。 商家在尝试计划产品更改时也看到此错误: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…
  • 现在,所有产品映像都将在导入期间进行验证。 以前,当产品具有多个映像时,应用程序仅验证第一个映像。 GitHub-28236
  • 现在,您可以在导入期间按预期从客户地址中删除区域。 以前,当客户地址导入为空区域时,分配的区域不会更改。
  • 现在,将具有JSON或HTML内容的产品作为其他产品属性正确导出到CSV文件。 以前,CSV文件在不正确的字段中包含重叠的数据字符串。

索引

  • 当子进程失败时,进程管理器现在退出,并返回错误。 以前,如果传递给进程管理器的函数数(例如,索引器维度)低于MAGE_INDEXER_THREADS_COUNT环境变量的值,则进程管理器始终会成功退出。 GitHub-30964
  • 当索引器模式设置为​ 保存时更新 ​时,使用RESTPUT/V1/products/:sku/links请求链接产品时,产品现在可在店面搜索结果中按预期提供。
  • 当索引器模式设置为​ 保存时更新 ​时,目录价格规则索引器现在可按预期工作。 GitHub-370
  • 现在,删除不包含产品的已禁用类别对目录搜索和类别平面索引表没有影响。 以前,删除非活动类别会触发完全重新索引。 GitHub-23297
  • 现在,自定义索引器可以为订阅使用不同的实体列名称。 以前,数据库触发器使用索引器上次设置为​ Update by Schedule ​的列名称,而不是指定的索引器。 GitHub-21853
  • 应用程序不再发送AJAX请求以重新加载不受该请求影响的客户数据部分(Magento_Customer/js/section-config)。 GitHub-31948
  • 在类别中添加、删除或重新排序产品后,以下索引器不再失效: catalog_category_productcatalogsearch_fulltext(及其依赖项)。 以前,这些意外移除会触发对站点的完全重新索引。 现在,当未启用平面目录时,在这些情况下会阻止完全重新索引。

基础架构

  • 依赖项pelago/emogrifier已从版本3.1.0更新到5.0.0。此更新导致对Magento\Email\Model\Template\Filter类引入了不向后兼容的更改。 在电子邮件模板渲染期间执行更改的代码。 请参阅BIC参考
  • 更正了\Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::getCategoryIdsByProductIds中阻止保存新产品的问题。
  • 已弃用的TinyMCE v3库已删除。 已从Adobe Commerce中删除与TinyMCE v3.x相关的Magento_Tinymce3Banner模块和MFTF测试。
  • 当购物者输入的电子邮件地址包含法语变音标记(如“é”、“e”)时,应用程序不再在“联系我们”表单中抛出Invalid header value detected错误。 该应用程序现在将用户名中的UTF-8字母转换为ASCII编码。 以前,UTF-8字母不会在电子邮件地址的唯一部分中转换为ASCII编码。
  • 将插件添加到父类时,应用程序不再引发PHP致命错误。 GitHub-31291
  • 更新了以下模块的README.md文件: Magento_MsrpMagento_MsrpConfigurableProductMagento_MsrpGroupedProductMagento_MultishippingMagento_MysqlMqGitHub-32577
  • 已将phpcpd更新到v6.0.3以实现PHP 8兼容性。
  • 已将colinmollenhour/php-redis-session-abstract更新到v1.4.4以实现PHP 8兼容性。 GitHub-32709
  • 更正了phpstan.neon文件中制表符和空格的无效组合。 GitHub-31239
  • 在整个代码库中移除了使用过时的属性$_isScopePrivateGitHub-30506
  • 不再对页面布局进行硬编码 Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container。 因此,getPageLayouts()函数现在会按预期返回由不同模块声明的实际页面布局列表。 以前,只返回硬编码布局。 GitHub-31168
  • composer.lock文件已更新到编码标准的最新版本。 GitHub-31152
  • magento/module-jwt-framework-adapter添加了web-token/jwt-framework程序包上缺少的依赖项。 GitHub-32578
  • 被动侦听器已添加到fotorama.js库以提高Lighthouse量度分数。 GitHub-31140
  • Google Analytics模块的README.md文件已更新。 GitHub-32616
  • Process Manager现在可以正确处理分支流程中的异常。 主进程现在退出,应用程序现在只显示一次错误消息。 此外,当分支进程中的异常被抛出到主进程时,现在可以处理这些异常。 以前,应用程序记录多个索引器故障并显示多个错误消息。 GitHub-30622
  • 将插件添加到父类时,应用程序不再引发错误。 (optionsProvider参数现在在Assest.php中的getContentIdentities之后声明。) 以前,应用程序引发此错误: Error: Cannot instantiate interface Magento\Framework\Data\OptionSourceInterfaceGitHub-31291
  • 在空文件夹上执行Magento\Framework\Filesystem\Io\Ftp::ls()现在会按预期返回空数组。 以前,应用程序引发此异常: Invalid argument supplied for foreach() in vendor/magento/framework/Filesystem/Io/Ftp.php…GitHub-31288
  • 角色和规则的update方法已在app/code/Magento/Authorization/Model/Role.php中标记为已弃用。 GitHub-30756
  • SameSite Cookie参数的连接已得到纠正。 以前,不正确的连接会将lex后缀附加到valuedomain和其他参数。 GitHub-26377GitHub-32440
  • allure-framework/allure-phpunit在整个代码库中已升级到v1.3.1。 以前,应用程序显示此错误: Warning: Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP) in /var/www/html/src/vendor/allure-framework/allure-phpunit/src/Yandex/Allure/Adapter/AllureAdapter.php:74. GitHub-24635
  • 现在,当在生产模式下运行bin/magento命令时出现错误时,应用程序会显示更多信息性错误。 以前,应用程序未显示错误消息或显示的消息缺少信息。 GitHub-32786
  • ArrayIterator PHP对象已更新为可与PHP 7.4正常使用。GitHub-32088
  • 当客户尝试完成没有可用的装运承运人时的订单时,应用程序不再引发错误。 而是显示签出页面和以下消息: Sorry, no quotes are available for this order at this time。 以前,应用程序显示空白签出页面,并在异常日志中记录此消息: array_keys() expects parameter 1 to be array, null givenGitHub-30830
  • 应用程序不再将每个Cookie记录为单独的上下文。 $_COOKIE数组也已转换为字符串。 以前,由于每个Cookie都记录为单独的上下文,因此,当Cookie数量超过50时,应用程序会记录此消息:Unable to send the cookie. Maximum number of cookies would be exceededGitHub-31334

发票

  • 在Admin中创建新发票时,电子邮件副本 ​复选框现在可按预期使用。 以前,如果在​ 销售电子邮件 ​中启用了发送发票电子邮件的全局设置,则会忽略该复选框。 它现在是一致的,其操作方式与发运和贷项通知单创建页面相同。 GitHub-28511

媒体集

  • 在处理缺少XMP信息的PNG图像时,bin/magento media-gallery:sync现在会按预期失败。
  • 删除相关产品时,catalog_product_entity_media_gallery表中的条目会按预期删除。 GitHub-17727
  • 启用JavaScript缩小功能后,现在可以在媒体集中更新图像详细信息。 以前,未保存图像详细信息,应用程序显示此错误: TypeError: Cannot read property 'call' of undefined in jquery.validateGitHub-31633

MFTF

功能测试框架更改日志中介绍了新功能和MFTF核心错误修复。

  • 已从测试中移除magento indexer:reindexcache:flush命令以及AdminReindexAndFlushCache操作组,以改进以下模块的执行: BundleCatalogCatalogRuleCatalogRuleConfigurableCatalogUrlRewriteDownloadableIndexerPaypalSalesGitHub-31031
  • AdminSubmitCategoriesPopupActionGroup已添加到测试中,以防止测试失败。 GitHub-31251
  • 测试已使用StorefrontCheckQuickSearchStringActionGroupStorefrontAssertProductNameOnProductMainPageActionGroup(现有的操作组)重构。 GitHub-31251

重构的测试

为缩短执行时间,以下测试已重构:

AddOutOfStockProductToCompareListTest

AdminApplyTierPriceToProductWithPercentageDiscountTest

AdminCheckingCreditMemoTotalsTest

AdminCheckDashboardWithChartsTest

AdminConfigDefaultProductLayoutFromConfigurationSettingTest

AdminCreateInvoiceTest

AdminCreateOrderAddProductCheckboxTest

AdminMassOrdersCancelCompleteAndClosedTest

AdminMassOrdersCancelProcessingAndClosedTest

AdminMassOrdersHoldOnCompleteTest

AdminMassOrdersHoldOnPendingAndProcessingTest (取代已弃用的AdminMassOrdersHoldOnPendingAndProcessingTest

AdminMassOrdersUpdateCancelPendingOrderTest

AdminMassProductPriceUpdateTest

AdminMassUpdateProductAttributesMissingRequiredFieldTest

AdminOrdersReleaseInUnholdStatusTest

AdminPanelIsFrozenIfStorefrontIsOpenedViaCustomerViewTest

AdminSortingByWebsitesTest

AdminUpdateSimpleProduct

AdminUpdateSimpleProductWithRegularPriceInStockEnabledFlatTest

AdminValidateShippingTrackingNumberTest

CancelOrdersInOrderSalesReportTest

ProductsQtyReturnAfterOrderCancelTest

StorefrontConfigurableProductBasicInfoTest

操作组

在以下测试中,重复性操作已替换为操作组:

AdminCheckConfigurableProductPriceWithDisabledChildProductTest

AdminConfigurableProductCreateTest

AdminConfigurableProductRemoveAnOptionTest

AdminCreateProductDuplicateUrlkeyTest

AdminCreateSimpleProductNegativePriceTest

AdminCreateSimpleProductZeroPriceTest

AdminCreateVirtualProductFillingRequiredFieldsOnlyTest

AdminUpdateSimpleProductWithRegularPriceInStockDisabledProductTest

AdminUpdateSimpleProductWithRegularPriceInStockNotVisibleIndividuallyTest

AdminUpdateSimpleProductWithRegularPriceInStockVisibleInCatalogOnlyTest

新建操作组

AdminClearFiltersOnGridActionGroup

AdminClickAddNewPageOnPagesGridActionGroup

AdminClickInsertWidgetActionGroup

AdminClickRefundOfflineOnNewMemoPageActionGroup

AdminFillAccountInformationOnCreateOrderPageActionGroup

AdminGoToOrderStatusPageActionGroup

AdminOpenCMSPagesGridActionGroup

AdminSelectAttributeSetOnEditProductPageActionGroup

AssertAdminProductIsAssignedToCategoryActionGroup (用SKU替换筛选产品网格并单击第一行(以减少测试执行时间)

AssertLinkActionGroup

AssertStorefrontCartDiscountActionGroup

ClickPlaceOrderActionGroup

SaveCmsPageActionGroup

StorefrontAssertProductNameIsNotOnProductMainPageActionGroup

StorefrontGuestCheckoutProceedToPaymentStepActionGroup

StorefrontHoverProductOnCategoryPageActionGroup

StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup

已删除操作组

  • 已从测试中删除CliIndexerReindexActionGroup(或更改值)以缩短BackendBundleBundleImportExportCatalogCatalogRuleCatalogSearchCheckoutDownloadableElasticsearchElasticsearch6IndexerLayeredNavigationLoginAsCustomerNewsletterSalesSalesRuleSearchStoreSwatchesUrlRewriteWeeeWishlist模块的执行时间。
  • 已从CatalogCatalogUrlRewriteCheckoutConfigConfigurableProductContactCookieCurrencySymbolCustomerDownloadableElasticsearchElasticsearch6FedexIndexerLayeredNavigationLoginAsCustomerMsrpMultishippingSalesSwatchesTranslationUrlRewriteVaultWeeeWishlist模块中移除CliCacheFlushActionGroup

新闻稿

  • 应用程序不再向在新闻稿队列创建和新闻稿发送之间的时间段内取消订阅新闻稿的客户发送新闻稿电子邮件。 GitHub-32116
  • 应用程序现在遵循新闻稿启用设置(商店 > 设置 > 配置 > 客户 > 新闻稿 > 常规选项)。 以前,这些设置始终从多存储部署的默认范围中检索。 GitHub-31188
  • 现在,REST调用GET/V1/customers/search会为订阅了多个新闻稿的客户返回正确的信息。 GitHub-31168
  • 已从新闻稿插件中删除缓存订阅状态。 GitHub-19345

订购

  • 现在,在为部分开票的订单将商店贷项返回客户帐户时,应用产品可以正确计算已开票的客户余额。
  • 现在,应用程序在保存已退款的客户余额时,会按预期保存修改后的订单。 GitHub-393

支付方式

  • 应用程序现在渲染frontend上的付款块,而不管发送电子邮件的区域是什么。 (在呈现付款块之前,当前区域现在模拟为frontend。) 以前,在发送电子邮件的区域中呈现付款块。 因此,无论销售电子邮件是从管理员还是由REST API触发,资产的URL都尝试从错误的区域(webapi_restadminhtml)加载它们。
  • 应用程序现在将可下载产品的链接发送到结账时指定的电子邮件地址。 以前,当访客购物者使用PayPal Express结帐并输入不同的电子邮件地址来提交订单和结帐时,应用程序将可下载的产品链接发送到第一个地址。
  • 现在,在支持多种货币的部署中,此应用产品将在“付款方法”页上显示可用商店贷项的准确值。
  • 当来宾购物者在结帐期间将订单的送货地址更改为其他国家/地区时,付款方法列表现在会按预期更新。 以前,更改账单地址不会触发可能付款方法的更新。

PayPal

  • 购物者现在可以成功结帐PayPal Payflow Pro订单,该订单的送货地址包含特殊字符。 以前,应用程序拒绝支付这些订单。
  • 现在,使用PayPal成功付款后,购物者将被重定向回订单成功页面。 以前,由于会话数据丢失,购物者被重定向到空白页面。

性能

  • 大目录上的管理员SKU搜索性能已得到改进。 查询优化器提示现在强制在查询执行期间使用索引。
  • 在大表(数百万行)上运行时,catalog_product_alert cron进程的性能已得到改进。 以前,catalog_product_alert加载所有产品警报,这会导致内存不足异常。
  • 当仅需要一个编辑页面呈现管理员表单时,应用程序不再加载所有CMS页面。 这些页面现在加载得更快。 GitHub-30936
  • WHERE IN表达式中的数值现在被转换为数字,而不是字符串,这可以提高某些MariaDB版本中的查询性能。 GitHub-31135

  • use_application_lock模式允许您通过使用环境变量或通过配置app/etc/env.php文件来启用重新索引。 启用此模式后,在失败后不再需要手动重置索引器。 如果未启用此模式,则在失败后必须手动重置索引器。 请参阅对重新索引进程使用应用程序锁定模式

定价

  • 现在,当购物者更新店面的产品数量时,应用程序会使用分组价格正确更新产品的价格。 GitHub-32669
  • 现在,当为产品分配了层价格并且使用Magento\Framework\Api\ExtensibleDataObjectConverter转换产品数据时,可以保存捆绑产品。 以前,当在保存产品时使用Magento\Framework\Api\ExtensibleDataObjectConverter将产品数据转换为数组时,应用程序不会保存该产品并显示以下错误: Notice: Undefined index: price in app/code/Magento/Catalog/Model/Product/Type/Price.php on line 382.
  • 计划价格更新现在应用于购物车中已有的产品。 GitHub-356
  • 现在,当启用数量递增并且小数库存小于1时,将按预期对产品应用层价格。 以前,最低层价格数量设置为1。

产品视频

  • 您现在可以使用​ 添加视频 ​按钮(管理员​ 目录 > 产品)连续添加多个视频。 以前,视频字段保留上一个视频的详细信息。
  • 现在,在移动设备上,产品页面上的产品视频进入全屏模式可正常工作。 以前,进入全屏模式会导致视频在退出全屏模式之前暂停。
  • 现在,导航箭头按钮(下一步 ​和​ 上一个)在店面产品视频中按预期显示。
  • 商家现在可以按预期使用产品页面上的​ 插入视频 ​按钮添加Vimeo视频。 以前,应用程序显示404错误。 GitHub-31753

引用

  • /V1/guest-carts/examplecartid/items调用现在返回所请求的存储视图。 以前,它返回存储中的第一个存储视图,而不是请求的视图。
  • 现在可以配置发票发送。 以前,无法配置发票发送,应用程序始终会在发票创建后发送发票。 发票和订单电子邮件均在一个观察者的范围内发送。 现在,由单独的观察者管理订单电子邮件和发票电子邮件的发送。 GitHub-27656

报告

  • 管理员​ 报告 > 审阅 > By产品 ​上的上次审阅日期现在显示正确的审阅日期。 以前,应用程序显示的是产品创建日期,而不是审阅日期。

审核

  • 现在,可以在“我的帐户”页面的“审核详细信息”部分中正确计算产品审核评等星级。
  • 产品审核详细信息页面的平均产品评级和产品评级部分现在可以正确呈现。 以前,当应用程序计算店面评级时,审核ID未设置,并且产品审核模板未正确呈现。
  • 在管理员批准审阅后,成为第一个审阅此产品 ​链接现在会按预期更改为审阅计数。
  • 管理员现在可以按预期在产品编辑页面的产品审核分区上对产品审核进行排序。 GitHub-30270
  • 现在,在管理员批准并保存来自与存储区不同的域的审阅后,使用正确的存储ID保存审阅。 GitHub-17510

奖励

  • 当购物者使用多个地址结帐时,应用程序现在会更新付款方法列表,方法是选中或取消选中​ 商店积分(奖励积分) ​选项。

销售

  • 现在,启用​ 允许延交订单 ​设置时,管理员用户可以订购缺货的商品(商店 > 配置 > 目录 > 库存 > 产品库存选项)。 以前,应用程序会引发错误。
  • 当姓氏以空格结尾时,购物者现在可以在“订单和退货”页面上找到订单。
  • 现在,当分配了100%折扣的购物车价格规则应用于同时需缴纳目录产品和折扣税且符合免运费条件的订单时,系统会使用正确的总计创建发票。 以前,订单价格正确,但发票不正确。 GitHub-30853
  • 现在,按日期过滤订单可返回准确的结果。 以前,当您按订单日期过滤订单时,应用程序不会返回在00:00 UTC之后下达的订单。
  • 在多商店部署中将​ 网站 ​范围用于​ 价格 ​属性时,贷项通知单网格现在显示正确的货币符号。
  • 重新加载“管理员创建新订单”页面后,付款方法单选按钮在结账工作流的“付款和送货信息”部分上不再消失。 GitHub-32106
  • 现在,阿拉伯文本在发票中正确显示。
  • 现在,应用产品将正确地计算基于将PayPal Payment Pro部署为付款网关的商店中订单或发票的贷项通知单的部分贷项通知单税总额。 以前,对于具有多张发票的订单,应用产品会应用该订单的全部税,以便在贷项通知单中取消部分发票。
  • 应用程序在向客户发送新订单电子邮件时不再造成随机数据库死锁。 以前,发生死锁是因为应用程序保存了整个对象及其相关对象,而不是更新的SQL列。 应用程序显示此类型的错误: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transactionGitHub-31090
  • 店面订单详细信息页面现在显示正确的已发运产品数量。 以前,产品数量不正确,因为订单装运页的模板将​ 数量已发运 ​呈现为int。 此项目已更改为float
  • 取消选中​ 电子邮件发票副本 ​按钮后,应用程序不再发送订单发票副本。 以前,应用程序向​ 客户 ​发送电子邮件,向​ 发送发票电子邮件副本GitHub-28511
  • 从管理员为现有客户创建新订单时,应用产品不再为客户帐户创建重复的地址条目。 “保存在通讯簿”复选框已重命名为“添加到通讯簿”,并且默认情况下在Admin中处于取消选中状态。
  • 现在,当购物者从其帐户打印订单时,应用程序将使用​ 徽标中上传的徽标进行HTML打印视图 ​设置。 以前,应用程序显示LUMA徽标,而不是上传的徽标。
  • 现在,当项目数超过20时,店面上的订单项目分页程序将按预期工作。 以前,传呼机会考虑子产品,因此总计数不正确。
  • 现在,应用程序在“订单”页和“贷项通知单”页网格上显示小计值、发运值和处理值的正确货币符号。 GitHub-22662
  • 使用Safari的管理员现在可以从管理员处成功将产品添加到订单。 以前,当管理员单击​ 将所选产品添加到订单 ​按钮时,应用程序显示旋转加载图标,页面挂起。

销售规则

  • 当多个购物车价格规则应用于购物车时,应用程序现在正确应用购物车价格规则,其中​ 最大数量折扣应用于 ​或​ 折扣数量步骤(购买X) ​条件。 以前,如果将具有最大数量折扣的购物车价格规则应用于​ ,或者在应用另一个购物车价格规则之后应用折扣数量步骤(购买X),则总折扣将减少到为​ 最大数量折扣应用于 ​或​ 折扣数量步骤(购买X) ​倍的产品价格。
  • 现在,优惠券报表可准确反映实施拆分数据库的部署中的优惠券活动。
  • 包含条件“类别​ IS NOT”的购物车价格规则现在按预期应用于未分配给类别但分配了父产品的可配置子产品/简单产品。
  • 将优惠券应用于订单后,GraphQL cart查询现在会返回购物车记帐步骤的正确总计。

Search search-heading

  • 类别页面不再包含这些重复的HTML元素ID: modes-labelmode-listtoolbar-amountsorterlimiter
  • 部分单词搜索结果不再包含意外或不相关的匹配项,并且搜索会在店面和管理层产生一致的结果。 现在,该应用程序使用其他分析器(没有词干分析器)进行部分单词搜索。 以前,搜索结果显示的产品不包含搜索关键词。 (默认的分析器以前包含一个词干分析器,并且由于在搜索时使用该分析器进行部分单词搜索,因此搜索结果可能会产生意外或不相关的匹配。)
  • 现在,如果搜索查询包含多个词并且产品名称配置为不可搜索,则快速搜索会返回结果。 以前,如果产品名称配置为不可搜索,则应用程序会对包含多个单词的搜索查询引发查询异常。
  • 现在,搜索结果在将weight属性配置为可搜索时,会按预期包含该属性。
  • 当您查看启用了Elasticsearch的空类别页时,应用程序不再引发错误。 相反,它按预期呈现页面并显示信息性消息。 以前,空的全文索引会在类别页面上触发异常。
  • 如果购物者在开始搜索后单击搜索字段之外的内容,搜索字段自动完成功能现在会按预期工作。 现在,当购物者继续键入时,自动完成建议会重新显示。 以前,应用程序不显示自动完成建议,并且单击搜索框不会使搜索建议再次可见(尽管键入其他字母显示了)。
  • 现在,在高级搜索中根据其完整或部分SKU搜索产品会返回预期的产品。
  • 分层导航筛选器现在可显示准确的产品计数。 以前,Elasticsearch中的产品计数值不是按目录权限过滤的。
  • 当ElasticsearchURL页面参数超出分页范围时,类别不再引发错误。 GitHub-23843
  • 您现在可以将自定义Elasticsearch字段映射器添加到Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\CompositeResolver
  • 开发人员现在可以更改Elasticsearch映射。 以前,在默认映射中发送到Elasticsearch服务器的动态模板进行硬编码,这会阻止开发人员在Elasticsearch中索引与自定义模块关联的任何额外数据。
  • 禁用搜索建议后,搜索字段(表单微搜索)现在可按预期工作。

配送

  • 现在,当购物者在结帐期间删除具有多个地址的产品后导航回购物车页面时,应用程序会按预期更新配送价格。
  • 现在,当购物车中的某些项目符合免费配送条件时,应用程序会显示正确的调整后配送价格。 以前,当购物车中的部分项目符合免费配送条件时,应用程序不会调整配送价格并向购物者显示完整配送价格。
  • 仅限特定网站的管理员用户现在可以为同一网站上下达的订单创建装运。 以前,当缺少默认存储视图权限的管理用户尝试发送在管理员用户有权访问的存储视图中放置的订单时,应用程序引发此异常: Notice: Undefined offset: 1 in /app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php on line 293
  • 现在,在确定订单是否满足免费DHL发运条件时,应用产品将考虑相关的购物车价格规则折扣。
  • 现在,对于支持多种货币的商店,如果以非基本货币下达订单,则装运标签会按预期使用基本货币,而不是订单货币。 GitHub-31891
  • 现在,当购物者在离开多配送页面后在结帐期间返回购物车页面时,应用程序会显示正确的订单小计。 GitHub-31889
  • 在管理员订单创建期间编辑帐单信息不再更改具有不同默认发运和帐单地址的客户的发运信息。 GitHub-31786
  • 当购物者单击​ 获取配送方式和费率 ​并从管理员创建订单时选择配送方式时,应用程序不再取消选中​ 附加备注 ​复选框。
  • 购物者现在可以使用“返回”浏览器按钮返回到“选择配送方式”页面,同时结帐具有多个地址的订单。 以前,应用程序显示损坏的“选择送货方法”页面。 GitHub-30268
  • 现在,在购物者更改“收货地址”页上的数量并单击浏览器的“返回”按钮后,产品数量将保持不变。
  • 在结帐期间应用购物车价格规则时,统一费率配送方式费用不再为零。 GitHub-21832
  • 启用​ 创建装运标签 ​复选框且产品名称包含Unicode字符时,当商家尝试使用DHL装运订单时,应用程序不再引发错误。 以前,应用程序在请求创建标签时显示此错误: The response is in wrong format
  • 您可以在多站点部署中成功向管理员下单,在该部署中,一个网站上启用了United States,而另一个网站上启用了Disable all countries作为默认范围。 以前,应用程序未下订单并显示此错误: Please check the shipping address information. "regionId" is required. Enter and try again

存储

  • 在显示商店主页时,应用程序不再将0字符串视为空值。 以前,应用程序将请求路径开头的整数值视为存储ID,这会对SEO产生意想不到的影响。
  • 已删除lib/internal/Magento/Framework/App/Action/Plugin\Magento\Framework\App\ActionInterface的插件,以遵循以下准则:应使用插件来自定义另一个模块的一个模块的行为。 GitHub-28050
  • 现在,当您在网站创建期间禁用Store View时,尝试选择Website作为默认设置时,应用程序会显示此消息: Please enable your Store View before using this Web Site as Default。 以前,网站崩溃,应用程序不显示警报。

税金

  • 现在,应用产品会在验证最小订单金额时考虑隐藏税额。
  • 现在,当购物者导航回其购物车并在将捆绑产品添加到购物车后继续结帐时,应用程序会按预期显示固定产品税(FPT)。 GitHub-30250
  • 现在,当管理员为现有客户创建订单时,该应用程序会使用已保存的增值税编号预填充“管理员新订单”页面的“地址信息”部分的​ 增值税编号 ​帐单和配送地址输入字段。 GitHub-31846
  • 启用customer/create_account/vat_frontend_visibility后,应用程序现在会在客户注册页面上显示​ 增值税号 ​字段。

测试

  • 测试环境已升级到Redis 6.0.12。
  • 已从集成测试中移除CacheCleaner::cleanAll();
  • 添加了针对此方案的测试:当客户订阅排队的新闻稿时,管理员用户可以编辑客户帐户。
  • 已从测试中删除cache:flush命令以缩短CatalogCatalogUrlRewriteLoginAsCustomer模块的执行时间。
  • 已删除冗余参数,并将POST更改为\Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShipping中所需的GET。

主题

  • 当​ 将JS代码移动到页面底部 ​设置(存储 > 配置 > 高级 > 开发人员 > JavaScript设置)和Cookie均启用时,客户登录页面不再显示此消息: The store will not work correctly in the case when cookies are disabled
  • 标头中的帐户链接现在遵循WCAG标准。 以前,标头中的帐户链接包含重复的ID,这会导致WCAG验证失败。
  • 应用程序现在优先处理商店徽标图像的商店配置而不是布局配置。 以前,徽标图像的大小是固定的,不会因商店而异。
  • 该应用程序现在在使用标准Magento Open Source主题的店面页面上显示一致的页面元素。 以前,并非所有样式都应用于空白主题,因此使用此主题的页面中并非显示所有页面元素。 (例如,“我的订单”页面搜索字段中不存在放大镜图标。)

翻译和区域设置

  • 配置内联翻译后,添加到字符串的括号将不再转义。 以前,escapeHtmlAttr方法将方括号转换为HTML实体代码。
  • 管理员中无法翻译的短语现在可翻译。 (此拉取请求有助于持续努力将所有管理员字符串本地化。) GitHub-11175
  • 模板中用于管理存储的支付方式(我的帐户 > 存储的支付方式 )的文本字符串现在可翻译。
  • 现在,从管理员处发送排序电子邮件时,使用商店区域设置,而不是与管理员帐户关联的区域设置。

UI

  • 管理员页脚现在显示正确的产品版本。
  • 现在,在管理装运创建期间,源的分页已按预期显示。
  • 现在,当您使用自定义日期属性过滤产品并且管理员用户区域设置为en_GB时,产品网格过滤器可正常工作。
  • 现在,在iOS设备上的产品页面图像库放大镜中,捏合以缩放手势可以按预期工作。
  • 现在,按预期对每个搜索从第1页开始对管理员产品网格搜索结果进行分页。
  • 已解决缩放时购物车显示的异常。 以前,缩放此页面时显示元素重叠。
  • 使用PayPal Express签出时显示的订单审核页面现在已成功加载。 以前,模板包含未使用的​ 更新交付方法 ​按钮,该按钮在页面呈现期间仅被脚本部分隐藏。
  • 现在,当存在冗长的评级名称时,产品页面的“客户审核”部分中的评级星级和审核文本之间的间距可以适当设置。
  • 现在,选项会按预期显示在“存档发票”、“发运”和“贷项通知单”页的“活动”下拉列表中。
  • datetime组件timeOnly选项设置为​ ​时,应用程序现在显示正确的时间值。 GitHub-23157
  • 在管理员​ 内容 > 小组件 ​上创建新小组件后,您现在可以删除布局更新。 GitHub-29936
  • 现在,删除布局更新 ​按钮可按预期用于您从管理员​ 内容 > 小组件 ​添加的任何布局。 以前,在添加多个布局时,此按钮不适用于除第一个选定布局之外的任何其他布局。 GitHub-30286
  • 应用程序现在使用在布局文件中设置的页面标题作为客户帐户编辑文件的浏览器页面标题。 以前,Magento\Customer\Controller\Account\Edit控制器操作强制页面标题值为Account InformationGitHub-30724
  • 这些页面中新增了复选框,允许商家在显示和隐藏密码之间进行切换:

    • 客户登录
    • 客户注册
    • 客户编辑(“更改密码”部分)
    • 客户设置新密码GitHub-31557
  • 删除了网格单元格中多余的标题,管理员在更改属性集后将产品添加到分组产品集时会显示该标题。 GitHub-30911
  • 应用程序现在在​ 客户 > 登录 ​页面的登录区域上显示DateRange筛选器。 以前,应用程序显示Text筛选器。 GitHub-30328
  • 已从模板文件中删除JavaScript并将其移动到单独的文件中,以减少管理员页面上的渲染问题。 以前,在启用了HTML缩小的部署中,管理员页面无法正确呈现。 应用程序显示此错误: An error has happened during application run. See exception log for detailsGitHub-32454
  • dropdownDialog小组件现在仅加载其需要的可拖曳和可调整大小的jquery-ui块。 以前,它加载了大量不必要的代码,这会增加加载时间并降低性能。 GitHub-32810

URL重写

  • 在通过批量更新将产品分配给网站后,现在可按预期生成多站点部署中特定网站的产品URL重写。
  • 当为父类别启用URL键的​ 使用默认值 ​复选框时,应用程序现在可以正确生成子类别的URL路径。 以前,在多存储视图部署中使用不同的URL键时,在层次结构中移动类别会导致url_path值不正确。 GitHub-16202
  • 现在,当您在类别层次结构中移动类别时,应用程序会更新分配给所有存储范围的类别的url_path。 以前,在层次结构中移动类别会导致url_path不正确。
  • 现在,使用自定义URL从管理员创建的URL重定向可成功运行。 以前,GraphQL缓存来自GraphQL urlResolver查询的响应,并在URL重写更新后返回旧值。
  • 现在,从网站中删除产品时,产品URL重写会按预期删除。 GitHub-24184
  • app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php集合的addStoreFilter函数中添加了对store_idmain_table引用。 以前,将join添加到还包含store_id列的表中的集合时出现问题。 GitHub-31853
  • PUT /V1/products/:sku REST终结点现在按预期重新生成产品URL重写。 以前,端点重新生成产品url_key值,但不会重写URL。 GitHub-30316

用户

  • 现在,您可以保存有效的新用户角色(管理员​ 系统 > 权限 > 用户角色),并选中整个Catalog树,不包括Edit Product Design目录 > 库存 > 产品 > 编辑产品设计)。 以前,应用程序不保存此角色中的用户所做的产品更改并显示以下错误: Not allowed to edit the product's design attributesGitHub-31973
  • 现在,在为新的管理员用户生成电子邮件时,应用程序使用正确的自定义电子邮件模板。 以前,应用程序使用旧的默认模板,该模板省略了管理员的名字和姓氏。
  • 现在,应用程序在给新用户发送电子邮件时,会使用正确的电子邮件模板。 以前,即使选择了自定义模板,应用程序也会使用默认模板。

VersionCMS

  • 现在,在更改版面后,应用程序会将正确的主题应用到CMS页面。 以前,无论为页面分配了哪个主题,应用程序都会在您保存布局更改后将分配的主题更改为Luma。

视频

  • 现在,在启用和使用高级JavaScript捆绑包后,产品库中会按预期显示视频。 GitHub-32501
  • 现在,属于可配置产品的简单产品的YouTube视频可按预期工作。 以前,图像是按ID而不是位置排序的。 因此,有些视频被视为图像。 GitHub-29690

Web API框架

  • 目录API现在可通过添加新值和删除旧值来正确更新产品的自定义选项值。 以前,API不会删除旧值。
  • POST/V1/guest-carts/:cartId/billing-address现在以整数而不是字符串的形式返回地址ID。

构件

  • 管理员现在可以删除小部件的所有布局更新。 以前,当小部件多次更新布局时,管理员只能删除第一次更新。
  • 单击产品小组件上的​ 添加到购物车 ​按钮不再导致页面重新加载。 以前,单击产品小组件上的​ 添加到购物车 ​按钮会导致当前页面在将该产品添加到购物车之前重新加载。

愿望清单

  • 当您从愿望清单中单击产品的​ 编辑项 ​按钮时,应用程序不再重置可配置产品的配置设置。 GitHub-32119
  • 现在,当您使用愿望清单中的可自定义文件选项更新产品时,应用程序会显示正确的产品价格。 以前,应用程序显示错误的产品价格,并且不显示指向上传文件的链接。
  • 对于具有多个愿望清单的客户,愿望清单中的产品总数现在与愿望清单中的项目数匹配。 以前,缺货产品包含在产品总数中。
  • 现在,应用程序在将产品添加到订单后,会将其从愿望列表中删除。 GitHub-30260
  • 现在,购物者可以从愿望清单中将相关产品添加到购物车中。 以前,当购物者单击“相关产品”部分的​ 全选 ​链接时,应用程序仅添加可配置产品,而不添加可配置产品及其相关产品。 GitHub-32274

已知问题

问题:禁用reCAPTCHA时出现​ JavaScript错误。 如果为签出禁用reCAPTCHA,则签出会继续进行,但应用程序在控制台日志中显示Uncaught TypeError错误。 此问题将在以后的版本中修复。

问题内容安全策略错误。 店面在控制台日志中显示以下错误: The Content-Security-Policy directive frame-ancestors does not support the source expression unsafe-inline。 店面性能不受影响。

问题礼品卡金额的PayPal信用卡显示异常。 启用PayPal信用并配置多个礼品卡金额时,如果购物者更改礼品卡价值的金额,店面不会更新分期付款的金额。 Adobe Commerce 2.4.4和Magento Open Source2.4.4.将包含此问题的修复

问题对于通过SKU添加到购物车的产品,添加到订单 ​按钮不起作用。 在按SKU将产品添加到订单后单击​ 添加到订单 ​按钮时,应用程序会显示此错误消息: An error has happened during application run。 产品不会添加到购物车。 解决方法:使用添加产品功能。

社区贡献

我们感谢更广泛的Magento Open Source界,并感谢他们为这一版本做出的贡献。

社区工程团队Magento参与者按月、季度、年维护了主要参与人员和合作伙伴的列表。 从该参与者页面,您可以单击链接以转到GitHub上其合并的PR。

合作伙伴投稿

下表列出了合作伙伴所做的贡献。 此表列出了提出拉取请求的合作伙伴、外部拉取请求以及与其关联的GitHub问题编号(如果可用)。

合作伙伴
拉取请求
相关的GitHub问题
阿特维克斯
magento/magento2#31228magento/magento2#31025magento/magento2#30996magento/magento2#31128magento/magento2#31053magento/magento2#30837magento/magento2#31433magento/magento2#31079 to2#31013🔗magento/magento2#31261magento/magento2#31016magento/magento2#30986magento/magento2#31241magento/magento2#31243magento/magento2#31221magento/magento2#31123 2}magento/magento2#31147🔗magento/magento2#31097magento/magento2#31287magento/magento2#31099magento/magento2#31420magento/magento2#31320magento/magento2#30776🔗magento/magento2#31564 47},magento/magento2#31827magento/magento2#31592magento/magento2#31634magento/magento2#31436magento/magento2#31371magento/magento2#31323magento/magento2#31057magento /magento2#31009magento/magento2#31595magento/magento2#31452magento/magento2#31458magento/magento2#31487magento/magento2#31418magento/magento2#31240magento/magento2#31603 magento/magento2#31601magento/magento2#31394magento/magento2#31247magento/magento2#31508magento/magento2#31449magento/magento2#31776magento/magento2#31788 #29047magento/partners-magento2ee#280magento/magento2#32071magento/magento2#31936magento/magento2#31924magento/magento2#31918magento/magento2#31859 magento/magento2#31864,magento/magento2#31604magento/magento2#31510magento/magento2#31512magento/magento2#31502magento/magento2#31488magento/magento2#31454magento/magento2#31507magento/magento2#31164magento/magento2#31568magento/magento2#31569magento/magento2#31851🔗magento/magento2#32078 132}magento/magento2#31953magento/magento2#31961magento/magento2#30850magento/magento2#31395magento/magento2#31390magento2#31451magento/magento ento2#32467magento/magento2#32477magento/magento2#32524magento/magento2#32517magento/magento2#32463magento/magento2#32498🔗magento/magento2#32288{15 7},magento/magento2#32353magento/magento2#32539magento/magento2#32465magento/magento2#32295magento/magento2#32759magento/magento2#31938 magento/magento2#32356,magento/magento2#30623magento/partners-magento2ee#539magento/partners-magento2ee#540 🔗 🔗 🔗 🔗
magento/magento2#31233magento/magento2#31031magento/magento2#31056magento/magento2#31130magento/magento2#31074magento/magento2#30858magento/magento2#31438magento/magento2#31160 to2#31034,magento/magento2#31168magento/magento2#31033magento/magento2#31039magento/magento2#31250magento/magento2#31249magento/magento2#31234magento/magento2#31129 2}magento/magento2#31153,magento/magento2#31132magento/magento2#31290magento/magento2#31131magento/magento2#31440magento/magento2#31327magento/magento2#30784🔗magento/magento2#31575 47},magento/magento2#31844magento/magento2#31628magento/magento2#31647magento/magento2#31437magento/magento2#31442magento/magento2#31325magento/magento2#31073magento /magento2#31036magento/magento2#31627magento/magento2#31632magento/magento2#31522magento/magento2#31521magento/magento2#31441magento/magento2#31251magento/magento2#31624 magento/magento2#31626magento/magento2#31403magento/magento2#31248magento/magento2#31516magento/magento2#31524magento/magento2#31801magento/magento2#28522magento-parters to2ee#28586magento/partners-magento2ee#31435magento/partners-magento2ee#31560magento/partners-magento2ee#31561magento/magento2#32072magento/magento2#31937magento/magento2#31902 06}magento/magento2#31860,magento/magento2#31865magento/magento2#31623magento/magento2#31515magento/magento2#31514magento/magento2#31519magento/magento ento2#31520magento/magento2#31517magento/magento2#31075magento/magento2#31574magento/magento2#31573magento/magento2#31852🔗magento/magento2#32079{13 1},magento/magento2#31954magento/magento2#31962magento/magento2#30855magento/magento2#30645magento/magento2#31523magento/magento2#32505 magento/magento2#32504,magento/magento2#32583magento/magento2#32518magento/magento2#32507magento/magento2#32569magento/magento2#32502magento/magento2#32379magento/magento2#32279magento/magento2#32568magento/magento2#32506magento/magento2#32377magento/magento2#4451,magento/magento2#32577{16 9},magento/magento2#29631magento/magento2#30210magento/partners-magento2ee#32574magento/partners-magento2ee#32928 🔗 🔗 🔗
蓝橡果iCi
magento/magento2#31022magento/magento2#28926magento/magento2#30992magento/magento2#30881magento/magento2#30938magento/magento2#31621
magento/magento2#30265magento/magento2#29528magento/magento2#30286magento/magento2#30880magento/magento2#29690magento/magento2#27678
Cedcommerce
magento/magento2#30410magento/partners-magento2ee#444magento/magento2#31736magento/magento2#31584magento/partners-magento2ee#449
magento/magento2#30424magento/partners-magento2ee#31111magento/magento2#31660magento/partners-magento2ee#31331
Krish TechnoLabs
magento/magento2#31142magento/magento2#29991magento/magento2#31208magento/magento2#29804
magento/magento2#30911magento/magento2#29936magento/magento2#31188magento/magento2#29365magento/magento2#29805
EY
magento/magento2#31369magento/magento2#30615magento/magento2#31490magento/partners-magento2ee#445
magento/magento2#4451magento/magento2#29302magento/partners-magento2ee#31196
TechDivision
magento/magento2#30943
magento/magento2#30936
AYKO
magento/magento2#32389
magento/magento2#32088
快白猫
magento/magento2#31157magento/magento2#31886
magento/magento2#30724magento/magento2#30471
菲舍耶
magento/magento2#30695
magento/magento2#30788
瓦伊莫
magento/magento2#30626
magento/magento2#30622
Ziffity
magento/partners-magento2ee#451magento/magento2#31482
magento/magento2#31557
MRM COMMERCE
magento/magento2#32612magento/magento2#32610
magento/magento2#32578magento/magento2#32658
Aligent咨询
magento/magento2#30910
magento/magento2#30909

个人贡献者

下表列出了来自社区成员的贡献。 此表列出了外部拉取请求、与其关联的GitHub问题编号(如果可用)以及参与拉取请求的社区成员。

参与社区成员
拉取请求
相关的GitHub问题
dhaecker
#31045
sagar1dahiwala
#31101
501
zaximus84
#31022
30265
ihor-sviziev
#31151
31152
AnnaAPak
#31079
31160
AnnaAPak
#31013
31034
aligent-lturner
#30910
30909
thomas-kl1
#30822
30830
沃顿
#30868
28511
sky-hub
#30953
30952
pawel-siejba
#30626
30622
Chandresh22
#30477
30270
matiashidalgo
#28926
29528
shawnabramson
#27845
26909
engcom-Golf
#31189
31090
engcom-Echo
#31066
31095
vovayatsyuk
#31275
31291
sergiy-v
#31228
31233
科罗维茨基
#31261
31168
zaximus84
#30881
30880
sergiy-v
#30996
31056
AnnaAPak
#31016
31033
AnnaAPak
#30986
31039
sergiy-v
#31025
31031
zaximus84
#30992
30286
ilnytskyi
#31098
31135
saphaljha
#31142
30911
saphaljha
#29991
29936
AnnaAPak
#31147
31153
sergiy-v
#31128
31130
DmitryFurs
#31165
31239
AnnaAPak
#31221
31234
AnnaAPak
#31241
31250
AnnaAPak
#31243
31249
AnnaAPak
#31123
31129
Usik2203
#30837
30858
AnnaAPak
#31097
31132
Usik2203
#31053
31074
vpsnak
#31021
31032
mrtuvn
#30634
30584
driskell
#28007
8933184092243823054256342650726809
AnnaAPak
#31287
31290
AnnaAPak
#31099
31131
GovindaSharma
#30410
30424
kate-kyzyma
#31433
31438
AnnaAPak
#31420
31440
DmitryFurs
#31166
31171
Bartlomiejsz
#31157
30724
伊莱塞伊
#31212
31211
nikolalardev
#30959
31040
kandy
#30990
31038
viniciusbordinhao-blueacorn
#30938
29690
engcom-Golf
#31368
30964
SmVladyslav
#31352
30284
SmVladyslav
#31422
30256
mrtuvn
#31330
31445
sergiy-v
#31320
31327
AnnaAPak
#31436
31437
AnnaAPak
#31371
31442
aleksinoleg
#31334
31471
vovayatsyuk
#31162
31170
srenon
#31198
31197
AnnaAPak
#31323
31325
AnnaAPak
#31057
31073
Usik2203
#30776
30784
Nazar65
#31308
31288
AnnaAPak
#31009
31036
engcom-Golf
#31563
30250
engcom-Golf
#31594
23843
AnnaAPak
#31452
31632
sergiy-v
#31564
31575
AnnaAPak
#31595
31627
ihor-sviziev
#31542
engcom-Kilo
#31629
31591
engcom-Echo
#31501
26214
engcom-Echo
#31553
22662
AnnaAPak
#31240
31251
chiranjeevi-cj
#31369
AnnaAPak
#31418
31441
AnnaAPak
#31458
31522
AnnaAPak
#31487
31521
AnnaAPak
#31601
31626
AnnaAPak
#31603
31624
AnnaAPak
#31394
31403
vovayatsyuk
#31321
31326
AnnaAPak
#31247
31248
saphaljha
#31208
31188
aapokiiso
#30950
31042
nikunjkotecha
#21857
21853
engcom-Kilo
#31646
11995
mrtuvn
#31793
7231
navarr
#31621
27678
kate-kyzyma
#31827
31844
sergiy-v
#31592
31628
sergiy-v
#31634
31647
mrtuvn
#31754
30506
AnnaAPak
#31508
31516
AnnaAPak
#31449
31524
nikolalardev
#31158
31169
AnnaAPak
#31488
31520
AnnaAPak
#31454
AnnaAPak
#31510
31515
AnnaAPak
#31502
31519
AnnaAPak
#31512
31514
engcom-Charlie
#31485
25907
AnnaAPak
#31604
31623
MellenIO
#31636
31641
AnnaAPak
#31507
31517
sergiy-v
#31788
31801
sergiy-v
#31776
mrtuvn
#30871
30882
PierW
#31299
31300
larsroettig
#30943
30936
edspc
#30883
31530
ravi-chandra3197
#29804
2936529805
dineshvb
#30615
29302
victorpetryk
#31892
31890
engcom-Echo
#31957
31891
shikhamis11
#31736
31660
SmVladyslav
#32120
32119
victorpetryk
#32107
32106
sergiy-v
#31859
31860
sergiy-v
#31864
31865
engcom-Charlie
#31875
26521
achatpc
#31815
31853
sergiy-v
#31936
31937
sergiy-v
#31924
31902
kate-kyzyma
#31918
engcom-Charlie
#32095
28996
sergiy-v
#32071
32072
AnnaAPak
#31569
31573
AnnaAPak
#31568
31574
maksymz
#31804
1117531873
engcom-Hotel
#31750
30802
dorupetruc
#31205
31216
rain2o
#27315
12584
engcom-Kilo
#32217
27285
engcom-Kilo
#32239
31950
mastiuhin-olexandr
#32002
32000
engcom-Charlie
#32009
30316
sergiy-v
#32078
32079
engcom-Charlie
#32082
23297
Den4ik
#32187
31608
ihor-sviziev
#32299
32313
fnogatz
#32249
32262
Bartlomiejsz
#31886
30471
sergiy-v
#31953
31954
ihor-sviziev
#31933
31948
sergiy-v
#31851
31852
AnnaAPak
#31451
31523
AnnaAPak
#31390
30645
AnnaAPak
#31395
engcom-Charlie
#31645
30492
AnnaAPak
#30850
30855
ajithkumar-maragathavel
#31482
31557
edenduong
#30329
30328
SmVladyslav
#32275
32274
engcom-Kilo
#32301
32232
engcom-Kilo
#32326
31849
engcom-Kilo
#32363
30149
ihor-sviziev
#32462
2637732440
gixid192
#32393
30257
gixid192
#32398
31633
engcom-Charlie
#32212
30756
engcom-Charlie
#32186
32116
sergiy-v
#31961
31962
engcom-Charlie
#32273
17727
mamsincl
#32389
32088
bogutskyy
#30755
30577
AntonEvers
#28973
29549
zakdma
#32580
27656
engcom-Kilo
#32650
31956
mastiuhin-olexandr
#32194
32102
问题
#27012
22273
sivaschenko
#32710
32709
hostep
#32639
32644
engcom-Foxtrot
#32646
32647
engcom-Charlie
#32254
19345
Skullsneeze
#32298
32671
kate-kyzyma
#32288
32379
会话中
#32400
32495
mrtuvn
#32434
32454
ihor-sviziev
#32532
2741132525
kate-kyzyma
#32498
32502
kate-kyzyma
#32463
3250732569
sergiy-v
#32517
32518
kate-kyzyma
#32524
32583
kate-kyzyma
#32477
32504
kate-kyzyma
#32467
32505
charles-tychons
#32448
32616
bgorski
#32612
32578
bgorski
#32610
32658
ProkopovVitaliy
#31938
325774451
mrtuvn
#31080
31140
已格式化
#30695
30788
thomas-kl1
#30823
30860
engcom-Kilo
#32730
23645
kate-kyzyma
#32465
32506
ihor-sviziev
#32499
32501
kate-kyzyma
#32539
32568
Usik2203
#32353
32279
vlmed
#32356
martasiewierska
#32802
32810
DmitryTsymbal
#32759
hostep
#32145
32786
engcom-Foxtrot
#32099
32100
erfanimani
#31985
31984
kate-kyzyma
#32295
32377
vidyli
#31296
24635
engcom-Kilo
#32755
24363
ihor-sviziev
#32614
31777826
罗杰尔
#30623
2963130210

系统要求

我们的技术栈栈是基于PHP和MySQL构建的。 有关详细信息,请参阅系统要求

安装和升级说明

您可以使用编辑器安装Magento Open Source2.4.3。

迁移工具包

Data Migration Tool可帮助将现有Magento1.x存储数据转移到Magento2.x。此命令行界面包括验证、进度跟踪、日志记录和测试功能。 有关安装说明,请参阅安装数据迁移工具。 考虑浏览或参与数据迁移存储库

代码迁移工具包可帮助将现有Magento1.x存储扩展和自定义项传输到Magento2.x。命令行界面包括用于转换Magento1.x模块和布局的脚本。

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