Magento Open Source2.4.1发行说明

Magento Open Source2.4.1引入了性能和安全性增强功能。 安全增强功能包括支持 SameSite 属性,为支付相关和订单相关API端点以及下单店面页面添加了验证码保护。

此版本包括2.4.0中包含的所有核心质量改进、核心代码的150多项新修复以及超过15项安全增强功能。 其中包括我们的社区成员解决近300个GitHub问题。 这些社区贡献的内容包括对核心代码进行次要清理,以及GraphQL中的重大增强。

此版本中修复了2.4.0中识别的所有已知问题。

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

安全补丁可用

商家现在无需应用完整季度版本(例如2.4.0-p1)提供的数百个功能修复和增强功能,即可安装时效性很强的安全修复。 修补程序2.4.0.1(Composer包2.4.0-p1)是一个安全修补程序,它针对我们以前的季度版本2.4.0中发现的漏洞提供了修复。此安全修补程序中包含应用于2.4.0版本的所有修补程序。 (A 热修复 提供了对已发布版本的修复,该版本可解决特定问题或错误。)

有关安全修补程序的一般信息,请参见 引入新的安全修补程序版本. 有关下载和应用安全修补程序(包括修补程序2.3.5-p2)的说明,请参阅 快速启动内部部署. 安全修补程序仅包括安全错误修复,而不包括完整修补程序中包含的其他安全增强功能。

应用 AC-3022.patch 继续提供DHL作为运输承运商

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

其他发行信息

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

高亮

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

显着的安全增强功能

此版本包括15项以上的安全修复和平台安全改进。 所有安全修复均已回溯至2.4.0-p1和2.3.6。

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

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

其他安全增强功能

此版本的安全性改进包括:

  • 验证码 保护已添加到以下产品领域:

    • 下单店面页面以及REST和GraphQL端点
    • 与支付相关的REST和GraphQL端点。

    默认情况下,将禁用对这些附加页面的验证码保护。 它可以在管理员中启用,其启用方式与验证码涵盖的其他页面相同。 此保护已添加为反暴力机制,以保护商店免受梳理攻击。 请参阅 验证码.

  • 支持Cookie的SameSite属性. 为了支持新的Cookie分类系统的Google Chrome实施,更新了处理Cookie的应用程序类以支持 SameSite Cookie属性。 此属性设置为 Lax 默认情况下,但可以显式覆盖。

  • 增强的安全扫描工具. Adobe已与 Sanguine Security,在防止数字掠夺方面处于领先地位,将其超过8700个威胁签名数据库集成到安全扫描工具中。 这种合作关系将使商家能够通过主动检测恶意软件并减少误报,实时了解其网站的安全状态。 商家可以通过访问https://account.magento.com/scanner注册该工具。 欲了解更多信息,请参见 使用增强的安全扫描工具保护您的店面 博客帖子。

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

基础架构改进

此版本包含对核心质量的增强,这些改进改进了Framework以及以下功能区域的质量:客户帐户、目录、CMS、OMS、导入/导出、促销和定位、购物车和结账以及暂存和预览。

性能改进

  • 减少Redis和Magento之间的网络传输量. 现在,在执行 bin/magento di:compile 命令。 此配置信息会根据作用域写入生成的元数据文件夹。 以前,此信息存储在缓存中。 由此带来的性能改进包括减少网络缓存大小以及许多场景的执行时间。

  • 增强的消息队列使用者性能. 三个新的配置设置支持减少使用者队列CPU消耗。 这些可选参数可增强对使用者的控制并节省服务器资源。 请参阅 配置消息队列 以获取关于 maxIdleTimesleep、和 onlySpawnWhenMessageAvailable 参数。

  • 改进了执行时间 对象 bin/magento 命令。

Adobe Stock集成

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

新建媒体集

新媒体集现在默认在Admin中启用。 商家现在可以对媒体集中的图像执行以下操作:

  • 批量删除图像

  • 通过识别店面未使用的重复图像和图像优化媒体存储

  • 按图像使用的店面区域筛选图像,包括产品和类别内容以及CMS块

  • 使用图像元数据

    • 查看上传到媒体集的图像中的元数据
    • 编辑图像元数据(标题、描述和关键字)
    • 按图像的元数据搜索图像

GraphQL

此版本添加了GraphQL涵盖以下功能的功能:

  • 产品评价. 客户和来宾可以撰写产品评论。 客户可以检索其产品审核历史记录。 请参阅 创建产品评论productReviewRatingsMetadata查询 有关检索有关审阅基础架构的信息。

  • 赠品选项. 所有客户和客人均可在订单中添加礼品信息。 客户还可以将礼品包装、礼品收据和打印卡添加到订单中。 请参阅 setGiftOptionsOnCart 变异updateCartItems 变异

  • 订单历史记录. 所有客户都可以查看有关其订单历史记录的详细信息,包括发票、发运和退款。

  • 添加到购物车. 此 addProductsToCart 变异 允许您将任何类型的产品添加到活动购物车。 我们建议使用这种突变,而不是单用途突变,例如 addSimpleProductsToCart. 修复了Yaroslav Rogoza在拉取请求中提交的错误 27914. GitHub-28524

  • 存储的支付方式. 登录客户现在可以在“我的帐户”中存储付款详细信息(包括Braintree信用卡和使用PayPal的Braintree)。

  • 在Magento Open Source中支持愿望清单. 您可以 添加项目 到, 更新项目 在,和 删除项目 来自一个愿望清单。

  • 改进客户账户管理. 我们已添加 createCustomerV2updateCustomerV2 管理客户帐户的转变。 这些新的突变需要不同的输入对象 createCustomerupdateCustomer 突变。 要更改客户的电子邮件地址,请使用新的 updateCustomerEmail 突变。

  • 支持Payflow Pro Vault. 为添加了对GraphQL Vault的支持 Payflow Pro Vault 付款方式。 Oleh Usik在拉取请求中提交的修复 28821. GitHub-28520

  • 更新了GraphQL storeConfig 查询 以包括新的客户配置设置。 Oleh Usik在拉取请求中提交的修复 27876. GitHub-28521

  • 添加了 requestPasswordResetEmail 变异,它会触发所提供电子邮件地址的密码重置电子邮件。 Oleh Usik在拉取请求中提交的修复 27876. GitHub-28521

  • 克拉娜·GraphQL. 在以下位置添加或更新了有关Klarna GraphQL的主题: 克拉尔纳的支付方式createKlarnaPaymentsSession

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

PWA Studio

PWA Studio v8.0.0引入了以下新增功能和增强功能:

  • 对适用于设计令牌、排版规则、颜色、核心组件和页面布局的Venia样式指南进行了更新。

  • 对Venia迷你购物车体验的改进

  • 对Venia店面的多个区域设置和本地化内容的初始支持

  • 对Venia店面的“我的帐户”体验进行了多项改进

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

功能测试框架(MFTF)

MFTF 3.1.0现已可用。 请参阅 功能测试框架更改日志.

供应商开发的扩展

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

修复的问题

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

安装、升级、部署

  • 在CLI命令中使用依赖于Store模块API的第三方扩展进行安装不会再失败。 以前,应用程序显示此错误消息: The default website isn't defined. Set the website and try again. 这是2.4.0中的一个已知问题。
  • bin/magento setup:di:compile 不再引发致命错误。 以前,在您第一次运行此命令时,应用程序会引发错误,但第二次执行会导致编译成功。
  • 在上声明插件后,升级不再失败 Magento\Framework\Encryption\Encryptor.
  • 现在,当某些主题在运行后未部署时,应用程序会显示信息性错误消息 bin/magento setup:static-content:deploy. 以前,当部署成功完成但未部署所有包时,应用程序不会显示错误。 当在启用并行处理的情况下执行命令,并且每个主题需要部署的时间超过指定的最大执行时间时,尽管未部署主题,但此命令可以成功完成。
  • 使用默认值 用于韩国付款的复选框(商店 > 配置 > 销售 > 支付方式 > 克拉尔纳)在网站范围更改时,现在会按预期保持选中状态。
  • 升级不再导致Galera群集突然失败。 以前,Galera群集在升级后立即重新索引后突然退出。 在升级过程中,索引表会发生更改,并且引擎会从 MEMORYInnoDB. 此时,这些表的内容在Galera群集的节点之间变得不同步。 GitHub-25334
  • 禁用PageBuilder模块不再影响产品页面的呈现。 以前,在禁用模块时,产品页面上的自定义布局会消失,并且应用程序会显示一个空白页面。
  • 您现在可以使用 bin/magento sampledata:deploy 以按预期部署使用编辑器安装Magento Open Source后的示例数据。 以前,应用程序引发此错误: Git installations must deploy sample data from GitHub; see [Clone sample data Git repositories](../../../installation/sample-data/git-repositories.md) for more information. 修复了Andrii Beziazychnyi在拉取请求中提交的错误 27481. GitHub-19481
  • 店面性能通过消除不必要的加载 Datepicker 组件。 修复了Mateusz Krzeszowiak在拉取请求中提交的错误 27860. GitHub-28823
  • 正在执行 bin/magento setup:upgrade 不再显示有关缓存的无关信息。 修复了Sathish Subramanian在拉取请求中提交的错误 27567. GitHub-27091
  • 正在运行 bin/magento config:show <vendor_module>/general/value 现在返回 0 或按预期显示空字符串。 以前,它会返回 Configuration for path: "vendor_module/general/value" doesn't exist. Vadim Malesh在拉取请求中提交的修复 28549. GitHub-23290
  • bin/magento setup:static-content:deploy --language=all 现在,在没有设置语言参数的情况下,部署店面中使用的所有语言以及管理员用户配置的所有语言。 (en_US 默认情况下始终部署。) Anton Evers在拉取请求中提交的修复 28922. GitHub-29218
  • 禁用“备份”功能后,应用程序不再显示“备份”菜单。 修复了Eden Duong在拉取请求中提交的错误 29222. GitHub-29280
  • 目录图像帮助程序初始化现在使用产品模型,而不是 DataObject. 修复了由jmonteros422在拉取请求中提交的错误 29435. GitHub-1711
  • 管理员用户现在可以保存空 客户令牌生命周期(小时) 字段(管理员) 商店 > 配置 > 服务 > OAuth > 访问令牌过期)。 GitHub-29502
  • 为旧URL创建永久重定向 默认情况下,类别的设置处于禁用状态。 Vadim Malesh在拉取请求中提交的修复 28752. GitHub-24922

Adobe Stock集成

  • 在清除过滤器后,Adobe Stock图像网格中的图像现在会正确对齐。 修复了由Nazar Klovanych在拉取请求中提交的错误 28366. GitHub-824GitHub-972
  • 使用位置 Adobe Stock图库图像详细信息页面的字段现在可以准确识别图像是否与产品关联。 修复了由Nazar Klovanych在拉取请求中提交的错误 28798. GitHub-1474
  • \Magento\MediaGallery\Model\ResourceModel\Keyword\SaveAssetsKeywords::execute 现在会删除指向参数上未指定的关键字的链接,并在编辑图像详细信息时删除关键字标记时插入新链接。 修复了由jmonteros422在拉取请求中提交的错误 29207. GitHub-1391
  • Login failed 商家点击时应用程序显示的消息 许可证 对于之前保存的、未许可的Adobe Stock图像,不再包含HTML标记。 由用户在拉取请求中提交的修复 29398. GitHub-1684
  • 单击 使用位置 “图像详细资料”页的部分现在显示一个网格,该网格显示按图像过滤的所有实体。 此外,还可正确设置和显示资源筛选器。 以前,应用程序不会在中显示资产标题 应用的过滤器 部分。 修复了由Nazar Klovanych在拉取请求中提交的错误 29367. GitHub-1694
  • 应用程序不再显示 使用位置 图像未使用时图像详细信息页面的部分。 修复了由Nazar Klovanych在拉取请求中提交的错误 29367. GitHub-1699
  • 修复了在添加超过最大字符数的新图像标记时出现的显示问题。 修复了由Nazar Klovanych在拉取请求中提交的错误 29367. GitHub-1702
  • 现在可以使用图像详细信息中的资源过滤器按预期检查资源 使用位置 部分。 修复了由Nazar Klovanych在拉取请求中提交的错误 29367. GitHub-1704
  • 有关不同实体(例如, pagecategory)现已列在图像详细信息页面中。 修复了由Nazar Klovanych在拉取请求中提交的错误 29367. GitHub-1747
  • 禁用媒体库后,当商家尝试保存产品及其相关图像时,应用程序不再引发异常。 修复了由Nazar Klovanych在拉取请求中提交的错误 29492. GitHub-1750
  • 单击媒体库中图像的“用于”部分中的链接,现在会按预期打开按图像过滤的实体网格。 以前,图像标题不会显示在网格的已应用过滤器部分中。 修复了由Nazar Klovanych在拉取请求中提交的错误 29429. GitHub-1694
  • 现在,当您在媒体集中连续编辑多个图像时,应用程序可正确添加标记。 修复了由Nazar Klovanych在拉取请求中提交的错误 29429. GitHub-1755
  • 现在,商家删除标记并保存图像详细信息后,应用程序将删除Adobe Stock图像的标记。 以前,在刷新页面之前不会删除标记。 由Honeymay Louiese Ignacio在拉取请求中提交的修复 29400. GitHub-1703

Amazon Pay

  • Amazon Pay现在会先检查用户是否已登录,然后再呈现付款选项。

  • 多重身份验证问题和放弃的购物车已得到解决。

  • Amazon Pay现在可正确填充 store name 在电子邮件和其他显示的位置中。 如果 存储名称 Amazon Pay配置中的字段为空,则扩展会检索商店的默认名称(即您在Admin中提供的名称)。

  • 已解决拒绝方案的本地化/翻译问题。 显示的文本不再总是英文。

捆绑产品

  • 当您尝试在安装了清单的部署中创建产品时,应用程序不再引发异常,但是 Magento_InventoryBundleProduct 模块已禁用。
  • 现在,该应用程序可以正确计算包含捆绑产品的订单的离线退款。
  • 现在,当为简单产品分配了层价格时,迷你购物车会显示捆绑产品的正确价格。 GitHub-22807
  • 商家现在可以为捆绑产品创建贷项通知单,无需退货即可提供退款。 以前,应用程序会引发错误。 Dzung Nguyen在提取请求中提交的修复 27455. GitHub-23440
  • 当购物者将捆绑产品添加到购物车而未选择所需选项时,应用程序不再显示冗余的验证消息。 Dzung Nguyen在提取请求中提交的修复 27455. GitHub-23440

修复了由Michal Derlatka在拉取请求中提交的错误 29256. GitHub-26110

缓存

  • 现在,本地缓存存储会保留到中设置的时间段 商店 > 配置 > 常规 > Web > 默认Cookie设置. 以前,Cookie的过期日期硬编码为一天,这会使其与此设置不同步。 因此,欢迎消息不会在预期持续时间内保留返回的客户信息。
  • 对页面缓存的调用数 config 已减少。 Lukasz Bajsarowicz在拉取请求中提交的修复 28992. GitHub-29159
  • 清漆不再抛出 Connection reset by peer 按计划重新索引大型目录时出错。 由Matthew O'Loughlin在拉取请求中提交的修复 26256. GitHub-8815
  • 在管理员中编辑产品后,不再为不相关的产品清除全页缓存。 GitHub-25670

购物车和结账

  • 直接SQL查询已被数据提供程序取代,这改进了签出性能。 Lukasz Bajsarowicz在拉取请求中提交的修复 29376. GitHub-29453
  • “比较”和“最近比较”产品列表中的产品现在按预期工作。 以前,当比较列表展开时,应用程序不显示产品,即使部分指出该列表包含产品。
  • 删除 上的按钮 按SKU添加到购物车 客户的 管理购物车 现在,在选择多行时,页面可按预期工作。
  • 当您尝试按SKU订购产品时,如果输入的数字与有效的SKU匹配,但这两个数字的大小写不同,则应用程序不会再引发错误。 之前,当您在以下 我的帐户 > 按SKU排序 与有效的SKU不完全匹配,应用程序引发错误。
  • 现在,如果客户发货地址位于允许国家/地区列表上标识的国家/地区,并且该列表仅包含该国家/地区,则在结账时默认会选择客户的发货地址。 以前,应用程序没有选择地址作为默认地址,而是显示此错误消息: Please specify a regionId in shipping address.
  • 商家现在可以启用 应用于装运金额 在的“操作”选项卡中 营销 > 购物车价格规则 > 添加新规则 时间 整个购物车的固定金额折扣 中所有规则都适用的URL的区域。 GitHub-24422
  • 当购物者在开始结帐并导航到storefront主页后尝试取消设置持久性Cookie时,应用程序不再引发异常。 以前,当购物者单击 不是你吗? 链接时,应用程序引发以下异常: The shipping address is missing. Set the address and try again. GitHub-24218
  • 现在,当客户将缺货产品添加到购物车时,应用程序会显示添加到购物车成功消息。 以前,会添加产品,但应用程序不会显示成功消息。
  • 自定义地址属性现在按预期包含在结账工作流中为付款步骤显示的表单中。
  • 州/省/地区 输入框现已按预期启用,日期: 我的帐户 > 通讯簿 > 添加新地址.
  • 折扣现在按预期应用于装运费用,当 应用于装运金额 已启用。 Andrii Kalinich在拉取请求中提交的修复 28839. GitHub-26723
  • 支持关闭迷你购物车的代码已重构以删除 closeSidebar 函数。 已将相应的点击绑定添加到 [data-action="close"] 元素。 在拉取请求中按lumn提交的修复 28906. GitHub-29161
  • 在购物车页面上显示“清除购物车”按钮 配置设置提供对显示的控制 清除购物车 “购物车查看”页面上的按钮。 默认情况下,此设置处于禁用状态。 修复了Pavlo Sydorenko在拉取请求中提交的错误 27917. GitHub-28705
  • 验证已添加到签出工作流的“电话”字段中。 Oleh Usik在拉取请求中提交的修复 27537. GitHub-28800
  • 现在,当购物车包含可下载的产品,并且 可共享如果购物车包含可下载的项目,则禁用访客签出 设置已禁用。 修复了拉尼·普里亚在拉取请求中提交的错误 23972. GitHub-23971
  • 当购物者从客户帐户侧边栏将产品添加到购物车时,应用程序显示的成功消息现在包含指向购物者的购物车的链接。 修复了由Ajith在拉取请求中提交的错误 27977. GitHub-29097
  • 应用程序现在为签出工作流上的“前缀”下拉选项菜单默认选择一个空值。 Vadim Malesh在拉取请求中提交的修复 28238. GitHub-18823
  • 现在,当您从购物车中删除多个项目时,应用程序显示的弹出消息可准确地描述您选择删除的实体的数量和类型。 修复了由Nazar Klovanych在拉取请求中提交的错误 29490. GitHub-1749
  • 现在,当访客用户完成结账时,应用程序会显示客户注册表单。
  • 自定义客户地址属性字段现在按预期显示在店面结账工作流中。
  • 现在,应用程序在结帐期间会检索当前客户组以获取有效报价。 以前,应用程序使用在首次将产品添加到购物车时处于活动状态的客户组,如果该客户组在结账前已被删除,则应用程序会引发错误。 由Konstantin在拉取请求中提交的修复 28902. GitHub-29327

目录

  • 应用程序现在会在结帐前从购物车的购物车中删除禁用的产品。 以前,当购物者向购物车添加在结账前禁用的产品时,应用程序会从购物车中删除禁用的产品,但该产品仍保留在报价中,购物者无法结账。 GitHub-26680
  • 该应用程序现在会按预期排序畅销产品。 以前,产品计数和排序结果的分页都不正确。 GitHub-25955
  • 购物者现在可以通过单击比较产品侧边栏中的产品名称来打开产品的详细信息页面。 修复了由Eduard Chitoraga在拉取请求中提交的错误 27451. GitHub-21101
  • children_count 现在,当管理员删除类别时,值将保持为正。 以前,当管理员删除类别时, children_count 其余类别为负数。 修复了由维塔利·普罗科波夫在拉取请求中提交的错误 28044. GitHub-27969
  • 应用程序现在使用默认选项(配置 > Web > 默认布局 > 默认产品布局)您已为 page_layout 属性。 以前,不会应用您选择的默认值。
  • 您现在可以成功地对库存产品库存执行成批活动。 以前,当您尝试对库存产品库存执行成批活动时,应用产品将显示一个空白页。 如果您在开发人员模式下对应用程序执行了此操作,则应用程序会引发以下错误: Notice: Undefined offset: 32000 in /Users/kodithuw/sites/m23inventory/inventory/InventoryCatalogAdminUi/view/adminhtml/templates/catalog/product/edit/action/inventory.phtml on line 24.
  • 单击时显示的记录总数 添加产品 将产品添加到目录类别时,Products选项卡上的不再根据产品排序顺序进行更改。
  • {products(filter: {sku: {eq: "some sku"}}) {…} 现在,查询会返回已转换为预期货币的值。 以前, price_tiers.final_price.value 以基础货币显示的特殊价格。 修复了Petkovski Marjan在拉取请求中提交的错误 28890. GitHub-26121

Cleanup

  • 更正了“管理员销售订单网格”复选框的对齐错误。 由涂阮在拉取请求中提交的修复 27642. GitHub-27633
  • 更正了销售订单地址保存处理程序中送货地址ID getter的拼写错误。 由Konstantin在拉取请求中提交的修复 28810. GitHub-28982
  • 已更正 getRegionNameExpresion 方法名称到 getRegionNameExpression. Pierre Grimaud在拉取请求中提交的修复 28832. GitHub-28829
  • 冗余 init 方法已从 app/code/Magento/AdvancedPricingImportExport/Model/Import/AdvancedPricing/Validator/Website.phpapp/code/Magento/AdvancedPricingImportExport/Model/Import/AdvancedPricing/Validator/TierPriceType.php. Oleh Usik在拉取请求中提交的修复 28650. GitHub-29009
  • localStorage 已将polyfill从 basefrontend. 修复了由Ihor Sviziev在拉取请求中提交的错误 28749. GitHub-28900
  • 更新了Adobe Commerce徽标,并删除了的主自述文件中的多余空格。 magento/magento2 存储库。 修复了Rafael r̻ Cora Gomes在拉取请求中提交的错误 28891. GitHub-29056
  • 不必要的 overflowed 已从迷你购物车侧边栏构件中删除类。 在拉取请求中按lumn提交的修复 28963. GitHub-29160
  • 已更正“装运”页面中错误的CSS选择器。 由涂阮在拉取请求中提交的修复 28639. GitHub-29261
  • lib/internal/Magento/Framework/App/Request/Http.php 通过优化逻辑以及消除冗余变量分配和函数中返回的超量使用,文件得到了简化。 由Chris Snedaker在拉取请求中提交的修复 28608. GitHub-29381
  • bin/magento module:status 命令现在接受多个模块名称作为参数。 Chandru Rajendran在拉取请求中提交的修复 28250. GitHub-29344
  • 修复了的类描述中的拼写错误 \Magento\Downloadable\Block\Sales\Order\Email\Items\Downloadable. Benjamin Rosenberger在拉取请求中提交的修复 29451. GitHub-29470
  • TierPriceManagement 类已重构以删除冗余代码。 Lukasz Bajsarowicz在拉取请求中提交的修复 29202. GitHub-29477
  • autoload.php 已进行重构以提高可读性和返回速度。 修复了由Vitaliy Ryaboy在拉取请求中提交的错误 28923. GitHub-29527

CMS内容

  • 现在,选定默认商店视图的“层次结构”选项卡可按预期显示选定的父页面。
  • 当新的存储视图包含的CMS页面的URL键与另一个存储视图中的页面的URL键相同时,应用程序在存储视图创建期间不再引发错误。 Vadim Malesh在拉取请求中提交的修复 28421. GitHub-28357

可配置的产品

  • 已更正可配置产品编辑当前变体列表的分页问题。
  • 当购物者为可配置产品选择选项时,应用程序不再更新“相关产品”价格框。 以前,每当购物者选择可配置产品的选项时,应用程序都会更新价格框。
  • 现在,应用程序在“管理员创建订单”页面上显示了带有可自定义选项的可配置产品的正确价格。 如预期的那样,显示的价格是子产品的价格和自定义选项的价格之和。 以前,应用程序仅显示自定义选项价格。 GitHub-25766
  • 应用购物车价格规则后,订单摘要现在显示正确的折扣金额。 以前,规则在计算运费折扣时无法正确舍入金额。
  • 从范围受限的管理员帐户创建的管理员用户帐户现在可以按预期创建具有属性的可配置产品。 以前,应用程序引发此错误: Notice: Undefined index: value_index in 23develop/app/code/Magento/ConfigurableProduct/Helper/Product/Options/Factory.php on line 101.
  • 使用POST时,应用程序不再引发验证错误 /V1/products 到具有的可配置产品 int 值为0。 以前,应用程序引发此错误: Product with id "%1" does not contain required attribute "%2"." Vadim Malesh在拉取请求中提交的修复 29001. GitHub-13210
  • 父产品的配置选项属性不再分配给新的可配置产品的 size 属性。 修复了由Abel Truong在拉取请求中提交的错误 27339. GitHub-26449

Cookies

  • 应用程序现在最多创建1个 mage-translation-file-versionmage-translation-storage 每个会话的Cookie。 修复了由Ihor Sviziev在拉取请求中提交的错误 27364. GitHub-27355

cron

  • 扩展了消息队列使用者配置,添加了新参数,这些参数有助于控制使用者并保存服务器资源,并且可能会减少使用者队列CPU消耗:

    • maxIdleTime 定义来自队列的新消息的最长等待时间(以秒为单位)。
    • sleep 指定在检查队列中是否有新消息可用之前进入休眠状态的时间(以秒为单位)。
    • onlySpawnWhenMessageAvailable 标识是否仅当相关队列中存在可用消息时才应派生使用者。 默认情况下,此设置对所有使用者全局启用,但可以按使用者进行配置。
  • cron 表达式,例如 3/10 * * * * 现在按预期计划。 Anton Evers在拉取请求中提交的修复 28930. GitHub-29240
  • sales_clean_quotes 不再一次加载所有过期的引号。 以前,应用程序由于此致命错误而失败,因为所有过期的报价都是同时加载的: PHP Fatal error: Allowed memory size of 2147483648 bytes exhausted (tried to allocate 20480 bytes) in /path/to/magento2/vendor/magento/framework/Model/AbstractModel.php on line 359

CSS

  • 在以下情况下,应用程序不再复制CSS: 关键CSS 已启用。 由涂阮在拉取请求中提交的修复 28480. GitHub-26498
  • 服务器端LESS编译器现在会在您运行时按预期导入所有远程CSS文件 bin/magento setup:static-content:deploy -f. 以前,应用程序不导入远程文件,并引发错误。 GitHub-25119

客户

  • 管理员客户地址中的区域名称现在按预期进行了翻译。
  • 省/市/自治区 字段现在按预期在“编辑地址”页面上填充(我的帐户 > 通讯簿)。
  • 当客户单击 提交 在启用了不可见reCAPTCHA的店面表单上多次按钮。 以前,多次单击此按钮会导致类似于以下内容的内部错误: Internal error: Make sure you are using reCaptcha V3 api keys.
  • 现在,从管理员那里保存已删除的客户只会生成一条错误消息。 以前,应用程序显示一个空白页,并生成一个包含此字符串的报告: "0":"No such entity with customerId = 3","1":"#1 Magento\\Customer\\Model CustomerRegistry->retrieve() called at [app\/code\/Magento\/Customer\/Model\/ResourceModel\/CustomerRepository.php:340".
  • 现在,当管理员尝试为帐户刚刚被删除的客户保存地址时,应用程序会按预期显示错误消息。 以前,应用程序显示一个空白消息框。
  • 已编辑签出工作流和通讯簿中地址字段的标签以保持一致性。
  • 现在,如果前端标签的值不为空,则将其回退到存储标签。 以前,客户属性使用默认前端标签。 Toan Nguyen在拉取请求中提交的修复 27064. GitHub-27063
  • sortOrder已更正布局XML中的链接数。 以前,此顺序被颠倒并使用降序。 由涂阮在拉取请求中提交的修复 27340. GitHub-27162

目录

  • 现在,省/市/自治区下拉菜单的格式在管理员中是一致的。

dotdigital

  • 当订单包含目录中不再存在的产品SKU时,订单同步不再失败。

  • Web分析数据中不再包含空的产品类别。

  • Web行为跟踪现在适用于具有某些主题配置的商家。 新的回退选择器可解决此问题。

  • 使用cron运行客户同步时,订阅者状态数据字段不再包含空值。 (应用程序模拟可解决此问题。)

  • 现在,如果在默认级别启用dotdigital帐户,但在主网站中禁用,则通讯簿映射将按预期工作。

  • 现在,可以为包含加号(“+”)的电子邮件地址生成优惠券(使用外部动态内容URL生成优惠券)。

  • 联系人在以下情况下不再重新订阅: last_subscribed_at 值为null。

  • 已解决影响早期版本的升级错误(自4.5.2开始)。

  • 修复了4.5.3中引入的回归问题,该问题在准备订阅者导出时影响使用获得订阅者状态的方法。

  • 现在可以正确计算已同步订阅者的总人数(显示在日志和屏幕上)。

可下载

  • “我的可下载产品”区域现在会按预期显示已购买的可下载产品的链接,这些产品属于分组产品。
  • 单击可下载产品的 示例 现在,管理员产品页面中的按钮可按预期下载示例。 以前,当您单击 示例,应用程序会显示以下错误: The product that was requested doesn't exist. Verify the product and try again.
  • 购物者现在可以下载无库存的可下载产品样品。 以前,当购物者尝试下载示例时,应用程序会打开一个新选项卡,但不会显示信息性消息或开始下载过程。 Vadim Malesh在拉取请求中提交的修复 28898. GitHub-23638
  • 改进了当购物者尝试为可下载产品设置送货地址时应用程序显示的例外消息。 修复了由Michal Derlatka在拉取请求中提交的错误 28904. GitHub-26107
  • 产品的 stock_item 当您使用RESTPUT调用进行更新时,数据将进行更新并且可下载的产品链接和示例将按预期保留 stock_item 值。 以前,在产品更新之后,该产品不再包含用于下载内容的链接。 Vadim Malesh在拉取请求中提交的修复 28799. GitHub-21811
  • 现在,当客户为仅包含可下载产品的订单设置送货地址时,应用程序会显示一条信息更丰富的消息。

电子邮件

  • 如果在创建订单后更改了客户电子邮件,则应用程序现在会向正确的客户电子邮件发送有关订单更改的电子邮件通知。
  • 向客户发送的订单更新电子邮件现在包含正确的订单状态。 以前,如果订单状态从 processing 对于另一个状态,订单电子邮件未反映状态更改。
  • 应用程序在访客结帐期间不再显示有关现有帐户的误导性消息。 以前,当访客导航到签出页面,然后导航回送货页面时,应用程序显示以下错误: You already have an account with us. Sign in or continue as guest.
  • 现在,自定义电子邮件模板会加载与本机默认电子邮件模板相同的元素。 以前,缺少某些元素,包括变量值。
  • 已从电子邮件预览模板中删除不必要的CSS。 由涂阮在拉取请求中提交的修复 27828. GitHub-27543
  • 电子邮件模板中重复页脚已显示的文本的文本已被删除。 修复了由Pawel Tylek在拉取请求中提交的错误 27356. GitHub-28433
  • 产品警报电子邮件现在从订阅警报的存储中发送。 以前,此电子邮件始终从默认商店发送。 修复了Maciej Pawlowski在拉取请求中提交的错误 26534. GitHub-28968
  • 重复 customer.name 已从电子邮件模板中删除变量。 修复了由Pawel Tylek在拉取请求中提交的错误 29054. GitHub-29087
  • 您现在可以创建电子邮件模板,用于发送电子邮件 Content-Type: "text/plain". 以前,应用程序忽略模板中指定的内容类型。 由twoonesixdigital在拉取请求中提交的修复 26474. GitHub-26471

框架

  • 一天中发送数据的时间 管理员的字段 商店 > 配置 >常规> 高级报告 页面现在已正确呈现。
  • 当订单列表跨越多个页面时,购物者现在可以更改每页显示的订单数。 以前,当购物者导航到订单的最后一页并尝试更改每页显示的订单数时,应用程序会显示以下消息: You have placed no orders. 这是2.4.0中的已知问题。
  • 现在,您可以在实施2级缓存时将产品添加到类别。
  • X-Magento-Tags 标头不再超过HTTP规范允许的大小。 以前,包含许多产品的类别页面返回 X-Magento-Tag 导致503错误的标头。
  • sales_order_shipment_track_save_commit_after 现在,当您使用REST API创建装运时,会按预期触发。
  • 应用程序现在会在以下情况下显示信息性错误消息: di compile 由于不存在依赖关系而失败。 以前,显示的消息不识别发生异常的类。
  • 当Redis使用所有允许内存时,应用程序不再引发以下严重错误: report.CRITICAL: OOM command not allowed when used memory > 'maxmemory'.
  • 现在,购物者可以在以下情况下将多种产品添加到购物车: Persistent 模块已禁用。 GitHub-14486

常规修复

  • 对管理员的产品进行排序(商店 > 属性 > 产品)现在可显示符合搜索条件的所有产品。 以前,应用程序不显示记录,要排序记录,您必须导航到搜索结果的第一页。
  • 在URL周围使用不必要的引号和转义 tracking.phtml 已被删除。
  • var/log/system.log 当用户尝试访问静态目录下的非现有资源文件并启用SCD OnDemand和生产模式时,现在会显示更准确的消息。 应用程序现在记录404错误。 以前,应用程序会记录当开发人员模式中出现错误时所记录的相同消息。
  • JavaScript缩小功能现在可以正常使用。 缩小文件解析程序不再将变量泄露到全局范围。 以前, ctxorigNameToUrl、和 baseUrl 窗口下的变量被泄露。 修复了Mateusz Krzeszowiak在拉取请求中提交的错误 27622. GitHub-28110
  • 在调试阻止创建对象的错误时,应用程序现在会打印并记录原始异常消息。 以前,仅记录消息。 Marvin Hinz在拉取请求中提交的修复 26572. GitHub-26550
  • 提交数据库更改后的回调执行已得到改进。 以前,如果一个回调失败并出现异常,则所有回调都会失败。 由Alok Patel在拉取请求中提交的修复 27134. GitHub-28167
  • 未定义依赖项的模块的Mixin不再引发此错误: TypeError: Cannot read property 'map' of null. 修复了Mateusz Krzeszowiak在拉取请求中提交的错误 27690. GitHub-28340
  • 现在,仅当出现以下情况时才加载和应用存储聚合填充 localStoragesessionStorage 不可用。 修复了Mateusz Krzeszowiak在拉取请求中提交的错误 27619. GitHub-28381
  • 现在,当购物者从第二个或后续结果页面更改每页显示的结果数时,多页店面订单列表会按预期运行。 以前,当购物者更改 我的帐户 > 我的订单 列表: You have placed no orders. Vadim Malesh在拉取请求中提交的修复 28417. GitHub-28488
  • 已弃用 addWarning 方法已替换为 addWarningMessage 方法。 修复了拉取请求中由kishorekumarkesavan提交的错误 28264. GitHub-28308
  • 使用生成的代码 bin/magento 命令行命令现在与要求和编码标准一致。 Lukasz Bajsarowicz在拉取请求中提交的修复 28351. GitHub-28376
  • 保存属性 backend_type = static 不再删除 frontend_class 字段。 修复了由jiten-patel在拉取请求中提交的错误 27369. GitHub-27051
  • 不必要的代码和 responsive.js 已从主题加载的文件中删除。 修复了Mateusz Krzeszowiak在拉取请求中提交的错误 27617. GitHub-28811
  • 验证已添加到 符号数 “管理员CAPTCHA配置”页面上的字段。 修复了Eden Duong在拉取请求中提交的错误 29199. GitHub-29198
  • RSS馈送现在可以正确加载。 以前,馈送不会首次加载,但在刷新页面时会按预期加载。 Vadim Malesh在拉取请求中提交的修复 29455. GitHub-25211
  • 当购物者重新登录时,已过期的永久会话现在会按预期续订。
  • 密码生命周期,如中所设置 商店 > 配置 > 高级 > 管理员 现在很荣幸。 以前,如果您单击 忘记密码? 提示重置密码时,您可以绕过密码重置。
  • 优惠券代码现在仅适用于指定的产品。 以前,该应用程序将优惠券代码应用于购物车中的所有产品。 GitHub-28246
  • 在库存或价格更新发生时,购物车到期设置不再重新设置。 以前,当购物车设置为在24小时后过期,并且发生了库存更新或价格更新时,索引器会填充 updated_at table,重新设置到期时间。
  • 当管理员将具有活动购物车的客户分配给客户组时,应用程序不再引发致命错误。
  • 从中选择工具栏选项 开发人员工具 > 网络 在产品页面上,运行Chrome浏览器时不再初始化 toolbar.js 两次。 修复了由Pawel Tylek在拉取请求中提交的错误 28838. GitHub-25934
  • 该应用程序现在将管理员用户的ACL角色ID添加到产品类别树缓存ID。 这将限制范围有限的管理员可按预期看到的类别树。 在拉取请求中由quangdo-aligent提交的修复 27429. GitHub-28306

GraphQL

  • addProductsToCart 变异 允许您将任何类型的产品添加到活动购物车。 我们建议使用这种突变,而不是单用途突变,例如 addSimpleProductsToCart. 修复了Yaroslav Rogoza在拉取请求中提交的错误 27914. GitHub-28524
  • availableStores query会返回同一网站下可用的多个商店的配置属性列表(基于当前商店)。 它不会公开网站列表。 请参阅 availableStores 查询. 由Dmitriy Gallyamov在拉取请求中提交的修复 28794. GitHub-28569
  • GraphQL现在仅使用授权令牌来检索某种类型的用户及其ID。 以前,当授权令牌为空时,GraphQL使用活动客户的Cookie检索此信息。 Alexander Taranovsky在拉取请求中提交的修复 27373. GitHub-28040
  • 我们已添加 createCustomerV2updateCustomerV2 管理客户帐户的转变。 这些新的突变需要不同的输入对象 createCustomerupdateCustomer 突变。 要更改客户的电子邮件地址,请使用新的 updateCustomerEmail 突变。 修复了由Michal Derlatka在拉取请求中提交的错误 28888. GitHub-28570
  • updateCustomer 变异不再允许您设置无效 INT 中的值 gender 参数。 Alexander Taranovsky在拉取请求中提交的修复 28487. GitHub-28481
  • 删除了 setShippingMethodsOnCart 突变解析器。 Alexander Taranovsky在拉取请求中提交的修复 27349. GitHub-28262
  • 已为 Please provide Email of sender 与相关的错误 sendEmailToFriend 突变。 Alexander Taranovsky在拉取请求中提交的修复 28034. GitHub-28138
  • products 查询现在会按预期返回默认商店视图的产品属性选项标签。 以前,此查询返回为管理员设置的产品属性选项标签。 由Dmitriy Gallyamov在拉取请求中提交的修复 28647. GitHub-28568
  • 自定义属性聚合现在返回特定于存储的选项值。 由Dmitriy Gallyamov在拉取请求中提交的修复 28647. GitHub-28572
  • 在产品汇总中返回的价格间隔现在只能为数字(不允许使用通配符)。 由Dmitriy Gallyamov在拉取请求中提交的修复 28745. GitHub-28628
  • categoryList 现在,使用片段时,查询会返回正确的响应。 Ulzii在拉取请求中提交的修复 28710. GitHub-28584
  • GraphQL产品搜索现在会考虑已配置的类别权限。 以前,产品搜索会忽略 启用 设置(商店 > 配置 > 目录 > 目录 > 类别权限)。 修复了Petkovski Marjan在拉取请求中提交的错误 28757 和拉取请求271partners-magento2ee. GitHub-28563

图像

  • 缩略图图像的HTML标记已得到改进。 由涂阮在拉取请求中提交的修复 28642. GitHub-29468

导入/导出

  • error_report.csv 现在,下载文件时将包含内容,并且该文件可在 var/import_history/ 目录。 以前,导入后不会生成此文件。
  • 现在,使用CSV文件导入产品会生成 error_report.csv 文件按预期显示。 以前,应用程序生成文件,但在导入完成后将其删除。 Vadim Malesh在拉取请求中提交的修复 28460. GitHub-28420
  • 删除了整个代码库中的冗余类导入。 Oleh Usik在拉取请求中提交的修复 28696. GitHub-29012
  • 现在,对于未定义地区的国家/地区,该应用程序可成功导入包含地区的客户地址。 以前,应用程序引发此错误: Please enter a valid region.
  • 现在,当商家在计划新导出时选择实体类型时,应用程序会加载正确的实体属性集。
  • 产品在产品中的位置 catalog_category_product 现在,当管理员在管理员中创建产品并将其分配给类别时,表会按预期更新。 以前,新产品的位置始终被指定为0值。
  • 现在,已成功从管理员中导出客户数据,导出数据网格会按预期显示客户数据。 以前,在导出期间发生与内存分配相关的错误。
  • 导入的CSV文件现在会按预期捕获相关的产品信息。 以前,在首次导入CSV文件时,相关的产品信息上传不一致。
  • 删除中未使用的构造参数 AdvancedPricing.php. GitHub-29531

索引

  • Magento_CacheInvalidate 现在可在执行操作时正确处理大型标记模式 PURGE. sendPurgeRequest 已重构为处理标记数组,而不是要求调用方使用 implode(). 由Matthew O'Loughlin在拉取请求中提交的修复 26256. GitHub-26255
  • 共享索引器现在显示的状态为 有效 运行之后 bin/magento indexer:status 在重新索引之后。 以前,共享索引器使用 无效 完全重新索引后的状态。

基础架构

  • 在运行PHP 7.4.9的部署中加载目录和产品页时不再出现问题。 以前,当您尝试加载目录和产品页面时,应用程序会引发此错误: There has been an error processing your request. Exception printing is disabled by default for security reasons. GitHub-29502
  • 现在,在生产模式下呈现布局时发生的所有异常都记录在异常日志文件(var/report)。 以前,应用程序会在系统日志中将这些消息记录为严重问题。
  • 现在,由于中的增加,正则表达式可适用于较大的页面。 ipcre.backtrack_limit和 pcre.recursion_limit 约1000000。 修复了Mateusz Krzeszowiak在拉取请求中提交的错误 27270. GitHub-26026
  • 改进了拦截器的生成。 } else { 声明已从拦截器中删除,并且 array_map 已替换 foreach. Lukasz Bajsarowicz在拉取请求中提交的修复 27902. GitHub-28383
  • 现在,整个类中的阵列创建过程都是一致的(app/code/Magento/Sales/Model/Order/Pdf/Items/Invoice/DefaultInvoice.php)。 修复了由Nathan de Graaf在拉取请求中提交的错误 28515. GitHub-28795
  • 插件已迁移出框架,以遵循在框架命名空间中禁止插件的最佳实践。 Lukasz Bajsarowicz在拉取请求中提交的修复 27965. GitHub-27962
  • 您现在可以使用新的 UrlFilterApplier 对产品应用过滤器的组件,cms_page、和 cms_block 使用GETURL参数的网格。 Gabriel da Gama在拉取请求中提交的修复 28932. GitHub-1501
  • 应用程序不再抛出 Undefined class constant 生成侦听器时出错。 由Vova Yatsyuk在拉取请求中提交的修复 28797. GitHub-28981
  • 现在,当您使用已使用的名称保存集成时,如果应用程序引发集成异常,则表单数据会持续存在。 由Aditya Yadav在拉取请求中提交的修复 26660. GitHub-28143
  • 应用程序不再截断 X-Forwarded-For 标头为32个字符。 修复了由Ihor Sviziev在拉取请求中提交的错误 27221. GitHub-28693
  • 现在,使用自定义管理域时,用于检查重定向是否为内部的逻辑可在管理中正常工作。 以前,此逻辑的问题会导致许多管理员重定向到默认存储的主页。 Vadim Malesh在拉取请求中提交的修复 29066. GitHub-28943
  • 的问题 styles-old.less 文件已消除,而且Linting不再标识错误。 由涂阮在拉取请求中提交的修复 28895. GitHub-24004
  • NonComposerComponentRegistration.php 已重构。 修复了由Vitaliy Ryaboy在拉取请求中提交的错误 28975. GitHub-29308
  • ResourceConnection.php 已进行重构以提高类可读性。 Lukasz Bajsarowicz在拉取请求中提交的修复 29341. GitHub-29389
  • 内置Web服务器的自述文件已更新为包含所有Elasticsearch参数。 修复了由Yevhenii Dumskyi在拉取请求中提交的错误 29300. GitHub-29299
  • Magento\CmsUrlRewrite\Plugin\Cms\Model\Store\View::aftersSave 插件现在会按预期返回一个值。 以前,此插件不会返回值,因此,保存存储视图会导致错误。 修复了由Pieter Hoste在拉取请求中提交的错误 29035. GitHub-29034
  • 为添加了以下对魔术方法的支持 DataObject

    • 要支持的新扩展 get/set/has/uns 魔术方法(与使用 __call)
    • 支持SessionManager,它将所有调用转发到DataObject容器
    • 扩展的测试覆盖率
    • 更新了筛选错误检查测试
    • 将PHPStan检查级别从0增加到1。 Oleksandr Kravchuk在拉取请求中提交的修复 27905. GitHub-28303
  • ScopeConfigInterface 现在可以不只是一个字符串。 限制 magentoConfigFixture “ to string only(仅字符串) ”是上一拉取请求意外产生的结果,已还原。 修复了由Kristof, Foom在拉取请求中提交的错误 29305. GitHub-29345
  • convertConfigTimeToUtc 方法不再由于向 Phrase 构造函数。 Kos Rafal在拉取请求中提交的修复 29483. GitHub-29525
  • 在以下情况下,价格筛选器现在可在网格数据上按预期工作: Magento\Backend\Block\Widget\Grid\Column\Filter\Price::getConditionMagento\Backend\Block\Widget\Grid\Column\Filter\Price::getValue() 返回一个数组,其索引包含 fromto 字符串数据。 以前,应用程序引发此错误: Notice: A non well formed numeric value encountered in vendor/magento/module-backend/Block/Widget/Grid/Column/Filter/Price.php on line 197. 修复了Nikita Sarychev在拉取请求中提交的错误 29214. GitHub-29213
  • 添加了扩展点以支持将HTML添加到“类别”页面。 这样可更正上一个拉取请求所导致的错误。 修复了由iGerchak在拉取请求中提交的错误 29291. GitHub-29286

分层导航

  • 分层导航侧边栏现在显示具有两个选项(/)和匹配的产品计数。 以前,分层导航不会返回 选项,用于使用Elasticsearch进行部署中的布尔属性。
  • 样本分层导航过滤器现在与整个Magento Open Source中使用的标准过滤器一致。 修复了Bartlomiej Szubert在拉取请求中提交的错误 28015. GitHub-28011

记录

  • 现在,当部署仅处于开发人员模式时,会记录所有损坏的引用错误。 以前,在生产模式下也会为部署记录一个错误,这会使错误日志臃肿。 修复了Bartlomiej Szubert在拉取请求中提交的错误 28735. GitHub-26504

媒体集

  • 媒体集配置UI(管理员) 商店 > 配置 > 高级 > 系统 )已重新组织。 修复由Shankar Konar在拉取请求中提交 29433. GitHub-28011
  • 添加了测试,涵盖 使用位置 媒体集中图像的链接。 修复了由Nazar Klovanych在拉取请求中提交的错误 29392. GitHub-1969

MFTF

  • AdminSubmitAdvancedInventoryFormActionGroupAdminClickOnAdvancedInventoryLinkActionGroup、和 AdminSetStockStatusConfigActionGroup 现在,根据最佳实践在测试中使用操作组。 Oleh USIA在拉取请求中提交的修复 29386. GitHub-29420
  • SearchProductGridByKeywordActionGroup 现在用于产品网格中的搜索。 Oleh Usik在拉取请求中提交的修复 29385. GitHub-29434
  • AdminCategoriesClickDoneButtonOnPopupActionGroup 现在用于单击 完成 在“搜索类别”弹出窗口中。 Oleh Usik在拉取请求中提交的修复 28989. GitHub-29380
  • LoginToStorefrontActionGroup 现在用于替换一系列用于商店前端客户登录的操作。 修复了Sathish Subramanian在拉取请求中提交的错误 28113. GitHub-28165
  • AdminUpdateCustomURLRewritesPermanentTest 已进行重构以符合多边基金的最佳做法。 修复了由Kate Kyzyma在拉取请求中提交的错误 28361. GitHub-28393
  • 已更改测试名称以符合MFTF约定。 修复了由Evgeny Levinsky在拉取请求中提交的错误 27839. GitHub-28305

新建操作组

  • StorefrontCheckoutClickNextButtonActionGroup Oleh Usik在拉取请求中提交的修复 29472. GitHub-29539
  • AdminProductFormSaveActionGroupOleh Usik在拉取请求中提交的修复 29142. GitHub-29292
  • AdminSaveCategoryActionGroup Oleh Usik在拉取请求中提交的修复 28993. GitHub-29388
  • AdminProductGridSectionClickFirstRowActionGroup Oleh Usik在拉取请求中提交的修复 29000. GitHub-29295
  • AdminProductFormCategoryExistInCategoryListActionGroupAdminProductFormCategoryNotExistInCategoryListActionGroup Alexander Steshuk在拉取请求中提交的修复 28287. GitHub-28392
  • AdminExpandCategoryTreeActionGroup Oleh Usik在拉取请求中提交的修复 29133. GitHub-29289
  • AdminTaxRateGridOpenPageActionGroup Oleh Usik在拉取请求中提交的修复 29007. GitHub-29281
  • AdminNavigateNewCustomerActionGroup Oleh Usik在拉取请求中提交的修复 29134. GitHub-29287

新测试

  • 添加了对以管理员用户身份删除CMS页面的测试。 由Dmitry Tsymbal在拉取请求中提交的修复 28112. GitHub-28202

  • 添加了 StorefrontShareCustomerWishlistActionGroup 测试客户是否希望与无效的电子邮件地址共享列表。 希望列表共享的现有测试(StorefrontShareWishlistEntityTest)已重构。 StorefrontCustomerShareWishlistActionGroup 已弃用。

  • 添加了一个测试以检查实施 仅X左侧阈值 配置设置。 Oleh Usik在拉取请求中提交的修复 27549. GitHub-28755

新闻稿

  • 使用导出新闻稿订阅者列表 EXCEL XML 选项现在会按预期导出所有行。 以前,导出的数据仅包含页面分页值,而不包含所有行。
  • 新闻稿订阅电子邮件现在使用与其他新闻稿相关电子邮件相同的HTML标记。 修复了由Pawel Tylek在拉取请求中提交的错误 27357. GitHub-28165
  • 添加了将新闻稿订阅者作为管理员用户进行删除的测试。 由Dmitry Tsymbal在拉取请求中提交的修复 28972. GitHub-29032
  • 为配置语句中具有不允许选项的来宾添加了新闻稿订阅测试。 此测试将替换已弃用的 VerifyRegistredLinkDisplayedForGuestSubscriptionNoTestStorefrontCreateNewSubscriberActionGroup. 由Dmitry Tsymbal在拉取请求中提交的修复 28872. GitHub-29039

订购

  • GetAssetIdByContentFieldInterface 及其在 MediaContent 模块现在允许Adobe Stock集成扩展 MediaGallery 筛选器功能。 Gabriel da Gama在拉取请求中提交的修复 29058. GitHub-1464
  • CustomerAddressId 现在会在引号中验证新创建客户的值。 Andrii Kalinich在拉取请求中提交的修复 29139. GitHub-28793
  • 总金额为零的贷项通知单的订单状态现在为 Closed. 以前,应用程序将其订单状态报告为 Complete. Andrii Kalinich在拉取请求中提交的修复 29023. GitHub-22762

支付方式

  • 现在,应用产品会显示一条消息,提示您输入必选信用卡数据,然后单击 提交 未输入有效付款信息的管理员订单。 以前,当付款输入字段无效并且页面变为不活动时,Braintree卡验证器不会引发错误。
  • 现在,对于其帐户具有已存储信用卡(Braintree)的客户,您可以从管理员中更改所创建订单的配送方式。 以前,当您选择其他送货方法时,不会选择存储的卡,并且应用程序不会下订单。

PayPal

  • 现在,结账工作流的“订单审核”页面通过结账期间已更改配送方式的Braintree订单,显示PayPal的正确配送金额。 以前,当客户在结账工作流的“PayPal订单审核”页面上更改配送方式时,应用程序未使用正确的方法更新订单总额。
  • 商家现在可以成功取消使用PayPal授权的订单。 以前,应用程序不会取消订单并显示以下错误: Declined: 10601-Authorization has expired.
  • 当您通过先完成另一张订单后关闭PayPal付款弹出窗口来取消订单时,应用产品不再清空购物车。

性能

  • 三个新的配置设置支持减少使用者队列CPU消耗。 这些可选参数可增强对使用者的控制并节省服务器资源。 请参阅 配置消息队列 以获取关于 maxIdleTimesleep、和 onlySpawnWhenMessageAvailable 参数。
  • 现在,在执行 di:compile 命令。 此配置信息会根据作用域写入生成的元数据文件夹。 以前,此信息存储在缓存中。 由此产生的性能改进包括:

    • 网络缓存大小已减小
    • 许多场景的执行时间已得到改进。
  • 现在,应用程序可按需加载相应的滑块构件,从而改进了页面加载。 触控滑块构件自定义已移至单独的文件,因此只能在兼容设备上加载。 现在,仅当页面上实际使用了范围绑定时,才加载相应的滑块构件类型。 修复了Mateusz Krzeszowiak在拉取请求中提交的错误 27616. GitHub-28807
  • 提高了多订单同时结账的性能。
  • 当导入进程执行批量插入且重新索引进程同时通过select执行大量插入时,不再发生死锁。 以前,应用程序显示以下错误: PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock. GitHub-8933

审核

  • 的唯一键值 entity_pk_value-entity_type-store_id 已添加至 review_entity_summary 表,防止为同一产品ID创建重复行(entity_pk_value)。 以前,由于缺少唯一键,导致同一产品ID出现重复行和SQL错误。

销售

  • 应用程序不再分配状态 Complete 在为需要零付款的订单开票之后。
  • 现在,由REST API生成的新发运电子邮件包含与从管理员手动创建的发运相同的发运和客户信息。 以前,此电子邮件不包含客户名称、跟踪信息、订购的产品和其他订单信息。
  • 现在,当从管理员加载或自定义电子邮件时,来宾用户名会按预期显示在与发票和装运相关的电子邮件中。
  • PDF发票现在将转换为下订单所在商店视图的语言。 以前,PDF发票是采用管理员的语言翻译的。
  • 您现在可以从贷项通知单页面按预期发放退款。 GitHub-29014
  • 店面订单页面上显示的本地化区域名称现在可以正确翻译。 以前,区域名称不基于指定的区域设置,除非在管理员中对其进行编辑。
  • 通过POST创建的装运 /rest/V1/shipment 端点现在可以正确更新订单。 以前,应用产品创建发运,但发运状态仍为处理状态。
  • 贷项通知单现在显示从发出订单的商店范围中推导出的付款方式。 以前,贷项通知单显示默认存储范围所定义的名称。 修复了Ledian Hymetlari在拉取请求中提交的错误 27582. GitHub-27570

Search search-heading

  • 您现在可以使用QuickSearch从管理员客户视图中按属性搜索产品。 以前,目录搜索结果页面上发生异常。
  • 现在,在添加产品属性后,应用程序会按预期在类别页面上显示可配置产品。
  • Elasticsearch结果现在包含每个商店视图属性选项的正确值。 如果 DropdownMultiple Select 属性在非默认存储视图中的选项值不同于默认存储视图中的选项值,现在,Elasticsearch会对该值编制索引,或在结果中返回具有该值的产品。 以前,Elasticsearch不对该值进行索引,也不在结果中返回具有该值的产品。
  • 现在,通过SKU搜索可按预期方式使用Elasticsearch进行高级搜索。 以前,当您尝试按SKU进行搜索时,应用程序会显示以下错误消息: We can't find any items matching these search criteria. Modify your search.
  • 高级搜索不再允许购物者过滤负价格。 Rohan Hapani在拉取请求中提交的修复 27359. GitHub-27358
  • 范围值现在在“新建同义词组”窗体中按预期重置。 修复了Sathish Subramanian在拉取请求中提交的错误 29206. GitHub-28947

配送

  • 现在,升级后,该应用程序可正确计算装运表费率。 以前,发运表格费率是根据不含增值税的净价格计算的。
  • 现在,对于将FedEx指定为发运方法的订单,应用产品会在结帐工作流中以正确的币种显示发运费率。
  • 现在,UPS发运的订单的发运标签的多页PDF会显示正确的计数。
  • “创建包”页的JavaScript组件问题已得到解决。 以前,应用程序不显示 创建送货标签 复选框,因此无法为现有订单创建送货标签。

Sitemap

  • 中的站点地图 robots.txt 现在特定于商店。 Vadim Malesh在拉取请求中提交的修复 29331. GitHub-28901
  • 编码值现在会在中正确转义 sitemap.xml 文件。 以前,当您在产品名称或图像标题中包含编码字符时,生成的站点地图无效。

存储

  • 删除以前创建的存储视图不会再导致使用拆分数据库配置的部署中出现错误。 以前,应用程序引发异常。
  • 您现在可以导出 config.php 和默认网站代码,用于在多网站部署中的第二个网站上安装和配置应用程序。 以前,默认存储和视图在导出后消失,店面发生错误。

Swagger

  • 您现在可以使用Swagger生成客户令牌。 以前,在输入有效的客户访问信息时,Swagger不会生成响应代码,并且应用程序会显示以下错误: The account sign-in was incorrect or your account is disabled temporarily. Please wait and try again later. Vadim Malesh在拉取请求中提交的修复 28822. GitHub-27098

色板

  • 现在,当购物者单击时,带色板的可配置产品会显示分层定价 编辑 在购物车中。 以前,应用程序在结账前不会在购物车中显示分层价格。 修复了Sathish Subramanian在拉取请求中提交的错误 29137. GitHub-28270
  • 应用程序现在可按预期显示可配置产品变体的层价格。

税金

  • 商家从产品的属性集中取消分配产品后,应用产品不再在店面上显示产品的固定产品税属性。

测试

  • 单元测试中已修复PHPUnit 9错误。 Anton Evers在拉取请求中提交的修复 29244. GitHub-29329
  • 添加了用于批准使用已过期折扣发出的采购订单的单元测试,它将全额下单,而不会更新采购订单合计。 在拉取请求中由Joan He提交的修复 18. GitHub-204
  • SynchronizeFilesInterface 集成测试现已涵盖。 修复了由jmonteros422在拉取请求中提交的错误 29493. GitHub-1742
  • 函数已添加到 \Magento\TestFramework\TestCase\WebapiAbstract 该功能能够比较测试中预期结果和实际结果的大型嵌套数组,并允许测试者忽略实际结果中的无关键。 由Jekabs在拉取请求中提交的修复 29458. GitHub-29498
  • 将预期值的反演与中的实际值更正 app/code/Magento/Newsletter/Test/Unit/Model/SubscriptionManagerTest.php. Lukasz Bajsarowicz在拉取请求中提交的修复 29271. GitHub-29283
  • 解决了在运行连续测试时静态属性的序列化和取消序列化问题。 修复了Pavel Bystritsky在拉取请求中提交的错误 26175. GitHub-28319GitHub-29313
  • 使用 ObjectManager 用于在测试期间实例化类已在unit tests中替换为new关键字。 Lukasz Bajsarowicz在拉取请求中提交的修复 29272. GitHub-29346
  • 已为 updateCustomer 突变:出生日期无效,电子邮件地址无效,客户姓氏为空。 Alexander Taranovsky在拉取请求中提交的修复 28304. GitHub-28394
  • ApiFunctional TestFramework GraphQL客户端现在可以正确解析标头。 GitHub-26425

主题

  • 现在,在用户代理规则中添加的主题会在您运行时受到预期的影响 bin/magento catalog:images:resize. 以前,只有分配给商店的主题在以下情况下受到影响: bin/magento catalog:images:resize 运行。

翻译和区域设置

  • 当管理员更改时,应用程序不再引发错误 日期 当管理员区域设置为中文或日文时,在管理员产品创建或保存过程中显示的字段。 GitHub-24696
  • 应用程序现在检查区域(前端或 adminhtml),然后渲染内联翻译标记。 以前,通过API调用 POST /V1/integration/admin/token 启用内联翻译时凭据不正确会导致在API响应中包含错误消息周围的内联翻译标记。 Zach Nanninga在拉取请求中提交的修复 28856. GitHub-28656
  • 保加利亚地区已添加到 directory_country_region 表格。 修复了Nikola Lardev在拉取请求中提交的错误 27957. GitHub-28215
  • 管理员的标题和按钮 客户 > 添加新地址编辑产品 > 高级清单 模型现在可以翻译了。 修复了Sathish Subramanian在拉取请求中提交的错误 28174. GitHub-28201
  • 术语FPT现在可以在“管理员”上翻译 商店 > 配置 > 销售 > 税金 > 固定产品税. Vadim Malesh在拉取请求中提交的修复 28108. GitHub-5477
  • 发到此处 “签出工作流送货地址”模式上的按钮标签已更改,以匹配用于其他按钮的驼峰式大小写。 现在,此案例与翻译文件中使用的案例匹配。 以前,由于大小写不匹配,因此不翻译此标签。 WK在拉取请求中提交的修复 28547. GitHub-28685

UI

  • 现在,当显示“隐私和Cookie策略”页面时,页脚中的隐私和Cookie策略链接将显示为活动链接。 修复了Sathish Subramanian在拉取请求中提交的错误 28004. GitHub-27985
  • 修复了与从“管理员”中选择的订单关联的发票的“发票备注”文本区域中的光标未对齐的问题 销售 > 订购.
  • 此时会显示“创建新订单”页 按SKU添加产品添加产品 按钮。
  • 当所选产品的产品评级可用时,应用程序现在会正确显示“编辑审阅”页面。
  • 现在,该应用程序可在运行Safari的iPhone上正确显示“管理员客户编辑”页面。
  • 更正了“创建新订单”页上不必要的滚动。
  • 直接单击 出口税率 “添加新税则”页的按钮(商店 > 税则)现在可下载 tax_rates.csv 文件按预期显示。 以前,商家必须单击 出口税率 按钮。 这是2.4.0中的一个已知问题。
  • 将选定内容添加到我的购物车 购物车底部的按钮现在可按预期工作。 这是2.4.0中的一个已知问题。
  • 刷新 的按钮 最近查看的产品 客户活动页面的部分现在可按预期使用。 以前,当您单击 刷新,产品列表未刷新,页面滚动。
  • 应用程序现在可以在的“条件”选项卡上正确显示用于选择客户出生日期的日历图标 客户 > 区段 > 添加区段.
  • 当购物者在Internet Explorer 11.x上滚动浏览此页面时,签出工作流的签出摘要部分不再闪烁。
  • 现在,应用程序可在店面类别页面上正确显示“按SKU排序”构件。 以前,此构件的HTML代码未呈现,应用程序也不显示 加载SKU列表 链接。
  • 已使用禁用的UI组件 this.disabled(true) 不再出现在店面上。 GitHub-29098
  • 该应用程序现在可以在移动设备视图中正确显示最近查看过的产品小部件。 由涂阮在拉取请求中提交的修复 27572. GitHub-27058
  • 从管理员那里更改产品位置现在会反映在店面的产品位置中。 Oleg Aleksin在拉取请求中提交的修复 28150. GitHub-28149
  • 登录表单样式现在与空白主题中其他表单上的样式一致。 删除了设置容器控件换行输入字段宽度的不必要样式。 由涂阮在拉取请求中提交的修复 28084. GitHub-28059
  • 确定 现在,迷你购物车删除产品确认弹出窗口上的按钮的行为与预期一致。 由涂阮在拉取请求中提交的修复 28083. GitHub-27095
  • 在页面加载过程中,产品库元素不再闪烁。 修复了Mateusz Krzeszowiak在拉取请求中提交的错误 27871. GitHub-28339
  • 控制字段宽度的CSS类现在按预期应用于整个Admin中的Start Time元素。 修复由Shankar Konar在拉取请求中提交 29511. GitHub-29496
  • 条款和条件文本标签现在可以正确显示较长的文本字符串。 修复了Bartlomiej Szubert在拉取请求中提交的错误 29413. GitHub-24060
  • 为准确起见,已重写订单失败页面的标题。 以前,当购物者取消订单时,应用程序会显示一个具有以下标题的页面: We received your order!. Angelo Romano在拉取请求中提交的修复 29410. GitHub-29416
  • 现在,已取消订单查看页面上的已取消项目总数在已取消订单查看页面上可正确识别。 以前,该字段会被标记为 到期总计. Madhu Rajawat在拉取请求中提交的修复 27516. GitHub-26191
  • 创建可配置产品页面上的切换按钮现在可按预期工作。 由涂阮在拉取请求中提交的修复 28032. GitHub-22702
  • 现在,“高级属性属性”页面上的高级属性属性块图标会按预期运行。 由涂阮在拉取请求中提交的修复 28032. GitHub-26022
  • 现在,当您尝试保存新模块的配置设置时,系统配置页面的“管理员”部分将展开以按预期显示必填字段。 修复了Bartlomiej Szubert在拉取请求中提交的错误 28285. GitHub-26427
  • 当模式设置为时,已更正放大镜的行为 inside. 修复了Sean van Zuidam在拉取请求中提交的错误 29077. GitHub-29076
  • 更正了购物者在页脚的subscribe字段中输入无效电子邮件地址时导致输入字段宽度过长且令人难以置信的问题。 由Dipesh Rangani在拉取请求中提交的修复 27106. GitHub-27099
  • An Uncaught ReferenceError 添加新标记并将鼠标光标移动到该标记上时,开发控制台中不再显示错误。 修复了由Nazar Klovanych在拉取请求中提交的错误 29392. github-1700

URL重写

  • 将商店视图移动到其他网站时,不再重置URL。 以前,应用程序错误地重新生成了CMS和产品URL重写。
  • 将存储视图分配给其他存储时,应用程序现在会按预期保留现有目录URL重写。 以前,应用程序删除了特定于存储的URL重写。

清漆

  • 重新启动Varnish不再导致503错误。 修复了由Ihor Sviziev在拉取请求中提交的错误 28137. GitHub-24353

保险库

  • 在以下情况下,应用产品不再保存信用卡号码: 保存以供将来使用 未选中结帐工作流付款部分的复选框。

Web API框架

  • 现在,具有多个网站的商家可以使用REST API创建和更新产品,同时保留图像和图像角色继承。 以前,当商家使用REST API创建和更新产品,并为商店视图更新产品时,将为该商店视图加载并保存默认图像角色。 因此,存储视图图像角色在更新后停止从默认范围继承。
  • 当资源权限允许访问时,无作用域的集成用户帐户现在可以通过REST API访问资源。
  • 现在,搜索标准筛选器可按预期适用于在创建可配置产品期间使用的产品属性。 GitHub-29126
  • 客户组ID现已通过POST验证 /rest/V1/customers 请求。 以前,当您使用无效时,应用程序不会显示错误消息 group_id 在这些请求中。 Vadim Malesh在拉取请求中提交的修复 28903. GitHub-28064
  • 默认情况下,不会为匿名REST调用创建PHP会话。 以前,即使没有必要,也会启动会话。 修复了Maciej Pawlowski在拉取请求中提交的错误 26032. GitHub-7213
  • 使用各种REST端点更新包含自定义选项的订单不再删除自定义选项信息。 以前,的值位于 info_buyRequest 已被删除。 Vadim Malesh在拉取请求中提交的修复 28483. GitHub-22431
  • 使用GET V1/customers/me 现在荣誉 共享客户帐户 设置(管理员) 商店 > 配置 > 客户 > 客户配置 > 帐户共享选项)。 修复了Pavel Bystritsky在拉取请求中提交的错误 28213. GitHub-26089
  • 与地址相关的扩展属性可以设置为数据阵列。 以前,当包含的POST请求时,应用程序会引发错误 extension_attributes 已发送至 estimate-shipping-methods. 此错误由以前的提交引入,它影响在上设置的任何扩展属性。 Magento\Quote\Api\Data\AddressInterface 不是物品。 Alexander Menk在拉取请求中提交的修复 27338. GitHub-26682
  • 使用PUT更新客户时,您现在可以指定单个字段 V1/customers/:id 端点。 以前,端点要求您指定客户电子邮件和创建客户所需的其他字段。 Vadim Malesh在拉取请求中提交的修复 28332. GitHub-21237

愿望清单

  • 客户现在可以从愿望清单本身更改愿望清单中产品的数量。 以前,应用程序不更新产品数量,也不显示消息。
  • 客户现在可以从愿望清单本身更改愿望清单中分组产品的数量。 以前,应用程序不更新产品数量或显示消息。
  • 聚合填充 MapWeakMapFormData、和 MutationObserver 现在仅根据需要加载。 由Dmitry Tsymbal在拉取请求中提交的修复 28330. GitHub-28377
  • 希望列表更新过程现在支持同时更新希望列表项及其描述。 修复了由Eduard Chitoraga在拉取请求中提交的错误 28222. GitHub-28261
  • 添加了用于与超过允许数量的电子邮件共享客户愿望列表的测试。 由Dmitry Tsymbal在拉取请求中提交的修复 28641. GitHub-28720
  • 管理员现在可以配置已由客户从非默认存储添加到愿望清单的可配置产品。 以前,当客户还从非默认存储区添加了可配置产品时,应用程序会引发错误。
  • 添加了用于与超过允许数量的电子邮件共享客户愿望列表的测试。 由Dmitry Tsymbal在拉取请求中提交的修复 28641. GitHub-28720
  • 添加了一项测试,用于以管理员用户身份从客户的愿望列表中删除项目。 由Dmitry Tsymbal在拉取请求中提交的修复 28632. GitHub-28721
  • 添加了禁用愿望清单功能的测试。 由Dmitry Tsymbal在拉取请求中提交的修复 28635. GitHub-28744
  • 添加了一项测试,说明在共享客户希望列表时使用无效的电子邮件地址。 StorefrontShareWishlistEntityTest 已重构。 StorefrontCustomerShareWishlistActionGroup 已弃用。 由Dmitry Tsymbal在拉取请求中提交的修复 28330. GitHub-28377
  • 添加了用于共享超出允许文本长度限制的客户愿望列表的测试。 由Dmitry Tsymbal在拉取请求中提交的修复 28812. GitHub-28969

已知问题

问题:使用第三方支付提供商时,用于签出的新CAPTCHA功能在“下订单”页面上无法正常工作。 运行2.3.6或2.4.1并在下单店面页面上启用了验证码保护的商家在使用第三方支付提供商(如PayPal)结帐时将会看到此错误: Please provide CAPTCHA code and try again. 解决方法:此问题的修复程序现已可用。 请参阅 签出的Magento Open Sourcev2.3.6/2.4.1验证码不起作用 知识库文章。 我们的下一个季度修补程序(Q12021)中也将包含修补程序。

问题:没有管理员权限的用户当前无法设置其个人2FA访问权限。 2FA包括两个ACL角色。 一个角色会影响全局系统配置,仅在配置系统时才需要该角色。 第二个ACL角色影响单个用户2FA帐户。 管理员用户必须配置第二种类型的2FA ACL。 解决方法:用户登录并看到访问被拒绝屏幕后,即可访问 https://<magento store>/<admin_path>/tfa/tfa/requestconfig/ 以强制进行配置。 注意:我们不建议禁用安全设置。 但是,只有在禁用管理员URL密钥时,此解决方法才有效。

问题:和 创建帐户 如果购物者输入了无效数据,“创建新帐户”页面上的按钮将保持禁用状态。 这样可防止购物者在出错后重新尝试创建帐户。 解决方法:应用修补程序 MC-38509. 我们的下一个季度版本(2.4.2、2.4.1-p1和2.3.6-p1)中也将包含修复,这些版本计划于2021年第1季度发布。 请参阅 2.4.1和2.3.6创建帐户按钮禁用的修补程序 知识库文章。 GitHub-30513

问题:启用dotdigital后,商家无法从Safari中的管理员登录到dotdigital。 请参阅 启用dotdigital帐户后,无法通过admin面板登录dotdigital 知识库文章。

问题:当购物者选择与帐单地址不同的送货地址时,在付款期间顶点地址验证不起作用。 此问题将在2.4.2中修复。请参阅 2.4.1已知问题:更新地址后,顶点地址验证消息未消失 知识库文章。

问题:当商家在Safari浏览器上保存Dotdigital Page Builder表单时,应用程序显示空页面。 解决方法:重新加载页面以应用更改。 请参阅 2.4.1已知问题:保存dotdigital Page Builder表单后页面为空 知识库文章。

问题:在某些情况下,应用程序会自动将客户登录到以前使用的Amazon帐户,而不是提示他们在使用Amazon Pay结帐期间登录。 请参阅 2.4.1已知问题:无法在Google Chrome中更改Amazon帐户 知识库文章。

问题:在选择PayPalBraintree支付和多地址发送时,应用程序会在结账工作流的账单页面上简要显示错误消息。 请参阅 2.4.1已知问题:使用PayPalBraintree结帐时弹出错误 知识库文章。

问题:在禁用访客结帐时,如果访客客户尝试通过Braintree使用PayPal下达订单,则应用程序会显示一条非信息性错误消息。 请参阅 2.4.1已知问题:使用Paypal通过Braintree进行访客结账时出现非信息性错误消息 知识库文章。

社区贡献

我们感谢更广泛的Magento Open Source界,并感谢他们为这一版本做出的贡献。 您可以通过以下方式了解社区对我们当前版本的贡献:

  • 如果社区成员提供了此版本的修复,我们将在这些注释的修复问题部分中使用以下短语标识修复: ”由社区成员提供的修复“。

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

合作伙伴投稿

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

合作伙伴
拉取请求
相关的GitHub问题
阿特维克斯
magento/magento2#27670magento/magento2#28112, magento/partners-magento2ee#258, magento/magento2#28466magento/magento2#28450magento/magento2#28449magento/magento2#28408magento/magento2#28391magento/magento2#28361magento/magento2#28330magento/magento2#28304magento/magento2#27481magento/magento2#27373magento/magento2#28467magento/magento2#28407magento/magento2#28418magento/magento2#28034magento/magento2#28222magento/magento2#27956magento/magento2#28105magento/magento2#27586magento/magento2#28631magento/magento2#28629magento/magento2#28498magento/magento2#28496magento/magento2#28469magento/magento2#27451magento/magento2#28725magento/magento2#27549magento/magento2#28641magento/magento2#28635magento/magento2#28632magento/magento2#28457, magento/partners-magento2ee#247, magento/magento2#28205magento/magento2#28072magento/magento2#28727magento/magento2#28684magento/magento2#28679magento/magento2#28401magento/magento2#28506magento/magento2#28492magento/magento2#28487magento/magento2#27349magento/magento2#28991magento/magento2#28972magento/magento2#28869magento/magento2#28696magento/magento2#28956magento/magento2#28942magento/magento2#28941magento/magento2#28872magento/magento2#28854magento/magento2#28661magento/magento2#28852magento/magento2#28812magento/magento2#28650magento/magento2#27882, magento/partners-magento2ee#250, magento/magento2#29002magento/magento2#28959magento/magento2#28955magento/magento2#28925magento/magento2#29053magento/magento2#27697magento/magento2#29143magento/magento2#29156magento/magento2#29004magento/magento2#29162magento/magento2#28999magento/magento2#29134magento/magento2#29133magento/magento2#29007magento/magento2#29000magento/magento2#28210magento/magento2#29135magento/magento2#27537magento/magento2#29142magento/magento2#29386magento/magento2#29385magento/magento2#28993magento/magento2#28989, magento/partners-magento2ee#263, magento/partners-magento2ee#246, magento/magento2#27914magento/magento2#29427magento/magento2#29485magento/magento2#29472
magento/magento2#28202magento/magento2#28393magento/magento2#28377magento/magento2#28394magento/magento2#19481magento/magento2#28040magento/magento2#28138magento/magento2#28261magento/magento2#253magento/magento2#27337magento/magento2#21101magento/magento2#28755magento/magento2#28720magento/magento2#28744magento/magento2#28721, magento/partners-magento2ee#261, magento/magento2#246magento/magento2#28519magento/magento2#28481magento/magento2#28262magento/magento2#28427magento/magento2#29032magento/magento2#29012magento/magento2#29039magento/magento2#28969magento/magento2#29009magento/magento2#250magento/magento2#29287magento/magento2#29289magento/magento2#29281magento/magento2#29295magento/magento2#28800magento/magento2#29292magento/magento2#29420magento/magento2#29434magento/magento2#29388magento/magento2#29380magento/magento2#28524magento/magento2#29539
蓝橡果iCi
magento/magento2#27903magento/magento2#27902magento/magento2#28606magento/magento2#28601magento/magento2#28605magento/magento2#28351magento/magento2#27965magento/magento2#28856magento/magento2#29271magento/magento2#28992magento/magento2#29341magento/magento2#29272magento/magento2#28599magento/magento2#29376magento/magento2#29202
magento/magento2#28383magento/magento2#28850magento/magento2#28376magento/magento2#27962magento/magento2#28656magento/magento2#29283magento/magento2#29159magento/magento2#29389magento/magento2#29346magento/magento2#29453magento/magento2#29477
creativestyle
magento/magento2#27622magento/magento2#27270magento/magento2#27871magento/magento2#27690magento/magento2#27619magento/magento2#27618magento/magento2#27357magento/magento2#27356magento/magento2#27616magento/magento2#27860magento/magento2#27617magento/magento2#29054magento/magento2#28838
magento/magento2#28110magento/magento2#26026magento/magento2#28339magento/magento2#28340magento/magento2#28381magento/magento2#28382magento/magento2#28166magento/magento2#28433magento/magento2#28807magento/magento2#28823magento/magento2#28811magento/magento2#29087magento/magento2#25934
comwrap
magento/magento2#28714magento/magento2#28743magento/magento2#28710magento/magento2#28757, magento/partners-magento2ee#288, magento/partners-magento2ee#271, magento/partners-magento2ee#277, magento/magento2#28890, magento/partners-magento2ee#285, magento/magento2#27850magento/magento2#27917
magento/magento2#28584, magento/partners-magento2ee#28563, magento/partners-magento2ee#28566, magento/partners-magento2ee#28769, magento/magento2#26121, magento/partners-magento2ee#28834, magento/magento2#28705
Ziffity
magento/magento2#26704magento/magento2#28113magento/magento2#28174magento/magento2#28039magento/magento2#28004magento/magento2#27567magento/magento2#28264magento/magento2#29137magento/magento2#29206magento/magento2#28250magento/magento2#27977
magento/magento2#28165magento/magento2#28201magento/magento2#27985magento/magento2#27091magento/magento2#28308magento/magento2#28270magento/magento2#28947magento/magento2#29344magento/magento2#29097
Aligent咨询
magento/magento2#27429magento/magento2#26256
magento/magento2#28306magento/magento2#8815magento/magento2#26255
快白猫
magento/magento2#28015magento/magento2#28735magento/magento2#28285
magento/magento2#28011magento/magento2#26504magento/magento2#26427
瓦伊莫
magento/magento2#29300magento/magento2#27905magento/magento2#27582
magento/magento2#29299magento/magento2#28303magento/magento2#27570
指导解决方案
magento/magento2#28810magento/magento2#28902
magento/magento2#28982magento/magento2#29327
Cedcommerce
magento/magento2#27990magento/magento2#26660
magento/magento2#26118magento/magento2#28143
平衡Internet
magento/magento2#27064
magento/magento2#27063
Krish TechnoLabs
magento/magento2#27359magento/magento2#27106
magento/magento2#27358magento/magento2#27099
Ranosys技术
magento/magento2#27516
magento/magento2#26191
布里特斯基
magento/magento2#29301
magento/magento2#104
勒赛特
magento/magento2#28891
magento/magento2#29056
MediaCT
magento/magento2#28547
magento/magento2#28685

个人贡献者

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

参与社区成员
拉取请求
相关的GitHub问题
纳扎尔·克洛瓦尼
#28048
Volodymyr扎耶特
#27948
Volodymyr扎耶特
#27662
阿吉特
#26704
涂颜
#27572
27058
阮进添
#27455
23440
罗汉·哈帕尼
#27359
27358
马特乌什·克尔泽索维亚克
#27622
28110
马特乌什·克尔泽索维亚克
#27270
26026
塞尔希伊·杰帕
#28168
奥列格·阿列克辛
#28150
28149
萨塔希什·萨勃拉曼尼亚
#28113
28165
尼古拉·拉尔德夫
#27957
28215
马文·欣茨
#26572
26550
萨塔希什·萨勃拉曼尼亚
#28174
28201
瓦迪姆·马莱什
#28108
5477
德米特里·琴巴尔
#28112
28202
涂颜
#27828
27543
涂颜
#27642
27633
阿洛克·帕特尔
#27134
28167
涂颜
#28084
28059
涂颜
#28083
27095
阿吉特
#28039
涂颜
#28032
22702, 26022
奥利·乌西克
#27670
伊万·切普尔尼
#22829
奥利·乌西克
#28466
奥利·乌西克
#28450
奥利·乌西克
#28449
凯特·凯兹玛
#28418
凯特·凯兹玛
#28408
凯特·凯兹玛
#28391
凯特·凯兹玛
#28361
28393
德米特里·琴巴尔
#28330
28377
亚历山大·塔拉诺夫斯基
#28304
28394
尼古拉伊·马莱瓦内茨
#28287
28392
奥利·乌西克
#28105
253
亚历山大·塔拉诺夫斯基
#28034
28138
奥利·乌西克
#27956
253
卢卡斯·巴伊萨罗维茨
#27903
卢卡斯·巴伊萨罗维茨
#27902
28383
马特乌什·克尔泽索维亚克
#27871
28339
叶夫根尼·列文斯基
#27839
28305
马特乌什·克尔泽索维亚克
#27690
28340
马特乌什·克尔泽索维亚克
#27619
28381
马特乌什·克尔泽索维亚克
#27618
28382
亚历山大·塔拉诺夫斯基
#27586
27337
安德里伊·贝齐阿齐赫尼
#27481
19481
亚历山大·塔拉诺夫斯基
#27373
28040
帕维尔·蒂莱克
#27356
28433
帕维尔·蒂莱克
#27357
28166
伊霍尔·斯维齐耶夫
#27260
28342
奥利·乌西克
#28467
凯特·凯兹玛
#28407
#28547
28685
爱德华·奇托拉加
#28222
28261
巴尔特洛米耶·苏伯特
#28015
28011
凯特·凯兹玛
#28631
凯特·凯兹玛
#28629
奥利·乌西克
#28498
奥利·乌西克
#28496
凯特·凯兹玛
#28469
瓦迪姆·马莱什
#28417
28488
卢卡斯·巴伊萨罗维茨
#28606
卢卡斯·巴伊萨罗维茨
#28601
喜所库马凯萨万
#28264
28308
维塔利·普罗科波夫
#27854
27489
爱德华·奇托拉加
#27451
21101
Abel Truong
#27339
26449
亚历山大·门克
#27338
26682
迪佩什·兰加尼
#27106
27099
巴尔特洛米耶·苏伯特
#28735
26504
凯特·凯兹玛
#28725
瓦迪姆·马莱什
#28332
21237
奥利·乌西克
#27549
28755
亚历山大·梅尔尼克
#28666
佩特科夫斯基·马尔扬
#28714
德米特里·加利亚莫夫
#28647
28568, 28572
德米特里·琴巴尔
#28641
28720
德米特里·琴巴尔
#28632
28721
德米特里·琴巴尔
#28635
28744
凯特·凯兹玛
#28457
爱德华·奇托拉加
#28205
奥利·乌西克
#28072
253, 246, 28519
维塔利·普罗科波夫
#28044
27969
马特乌什·克尔泽索维亚克
#27616
28807
阮道安
#27064
27063
纳扎尔·克洛瓦尼
#28798
1474
卢卡斯·巴伊萨罗维茨
#28605
28850
帕维尔·贝斯特里茨基
#28213
26089
萨塔希什·萨勃拉曼尼亚
#28004
27985
马特乌什·克尔泽索维亚克
#27860
28823
纳扎尔·克洛瓦尼
#28739
内森·德·格拉夫
#28515
28795
瓦迪姆·马莱什
#28460
28420
瓦迪姆·马莱什
#28421
28357
卢卡斯·巴伊萨罗维茨
#28351
28376
卢卡斯·巴伊萨罗维茨
#27965
27962
萨塔希什·萨勃拉曼尼亚
#27567
27091
quangdo-aligent
#27429
28306
凯特·凯兹玛
#28727
凯特·凯兹玛
#28684
凯特·凯兹玛
#28679
凯特·凯兹玛
#28401
吉滕帕特尔
#27369
27051
瓦迪姆·马莱什
#28483
22431
马特乌什·克尔泽索维亚克
#27617
28811
瓦迪姆·马莱什
#28822
27098
亚历山大·梅尔尼克
#28855
德米特里·加利亚莫夫
#28745
28628
佩特科夫斯基·马尔扬
#28743
Michal Derlatka
#28713
28561
乌尔齐
#28710
28584
亚历山大·塔拉诺夫斯基
#28506
亚历山大·塔拉诺夫斯基
#28492
亚历山大·塔拉诺夫斯基
#28487
28481
亚历山大·塔拉诺夫斯基
#27349
28262, 28427
奥利·乌西克
#28991
德米特里·琴巴尔
#28972
29032
凯特·凯兹玛
#28869
康斯坦丁
#28810
28982
奥利·乌西克
#28696
29012
奥利·乌西克
#28956
奥利·乌西克
#28942
奥利·乌西克
#28941
德米特里·琴巴尔
#28872
29039
奥利·乌西克
#28854
皮埃尔·格里莫
#28832
28829
凯特·凯兹玛
#28661
马切伊·帕夫洛斯基
#26534
28968
瓦迪姆·马莱什
#28898
23638
奥利·乌西克
#28852
德米特里·琴巴尔
#28812
28969
奥利·乌西克
#28650
29009
Michal Derlatka
#28904
26107
德米特里·加利亚莫夫
#28794
28569
佩特科夫斯基·马尔扬
#28757
28563
亚历山大·梅尔尼克
#28747
爱德华·奇托拉加
#27882
250
帕维尔·蒂莱克
#29054
29087
奥利·乌西克
#29002
奥利·乌西克
#28959
奥利·乌西克
#28955
加布里埃尔·达伽马
#28932
1501
奥利·乌西克
#28925
瓦迪姆·马莱什
#28903
28064
安德里伊·卡里尼奇
#28839
26723
瓦迪姆·马莱什
#28799
21811
沃瓦·亚秋克
#28797
28981
瓦迪姆·马莱什
#28752
24922
伊霍尔·斯维齐耶夫
#28749
28900
瓦迪姆·马莱什
#28549
23290
纳扎尔·克洛瓦尼
#28366
824, 972
Madhu Rajawat
#27516
26191
阿迪提亚·亚达夫
#26660
28143
纳扎尔·克洛瓦尼
#29144
纳扎尔·克洛瓦尼
#29071
奥利·乌西克
#29053
Michal Derlatka
#28888
28570
斯拉娃·曼基夫斯基
#29179
马克斯·梅任斯基
#28210
帕夫洛·西多连科
#27850
纳扎尔·克洛瓦尼
#29149
奥利·乌西克
#29143
瓦迪姆·马莱什
#29001
13210
帕维尔·蒂莱克
#28838
25934
佩特科夫斯基·马尔扬
#28890
26121
奥利·乌西克
#29156
加布里埃尔·达伽马
#29058
1464
奥利·乌西克
#29004
拉斐尔·科雷亚·戈麦斯
#28891
29056
巴尔特洛米耶·苏伯特
#28285
26427
奥利·乌西克
#29162
肖恩·范·苏丹
#29077
29076
奥利·乌西克
#28999
安东·埃弗斯
#28922
29218
扎克·纳宁加
#28856
28656
涂颜
#27340
27162
伊霍尔·斯维齐耶夫
#27221
28693
安德烈·卡西安
#27377
jmonteros422
#29207
1391
萨塔希什·萨勃拉曼尼亚
#29137
28270
奥利·乌西克
#29134
29287
奥利·乌西克
#29133
29289
瓦迪姆·马莱什
#29066
28943
奥利·乌西克
#29007
29281
奥利·乌西克
#29000
29295
lumnn
#28963
29160
lumnn
#28906
29161
涂颜
#28895
24004
涂颜
#28639
28345, 29261
罗维纳S
#29170
约翰·卡洛·奥塔比奥
#28594
帕夫洛·西多连科
#27917
28705
黑兹尔·乔伊·卡基克拉
#29290
卢卡斯·巴伊萨罗维茨
#29271
29283
安东·埃弗斯
#29244
29329
安德里伊·卡里尼奇
#29139
28793
奥利·乌西克
#29135
卢卡斯·巴伊萨罗维茨
#28992
29159
维塔利·里亚博伊
#28975
29308
安东·埃弗斯
#28930
29240
涂颜
#28842
奥利·乌西克
#27537
28800
马切伊·帕夫洛斯基
#26032
7213
拉尼·普里亚
#23972
23971
萨塔希什·萨勃拉曼尼亚
#29206
28947
奥利·乌西克
#29142
29292
纳扎尔·克洛瓦尼
#29402
马特·沃尔特斯
#29238
543
纳扎尔·克洛瓦尼
#29422
黑兹尔·乔伊·卡基克拉
#29412
纳扎尔·克洛瓦尼
#29405
黑兹尔·乔伊·卡基克拉
#29404
黑兹尔·乔伊·卡基克拉
#29401
jmonteros422
#29399
塞尔吉·伊瓦先科
#29396
jmonteros422
#29393
纳扎尔·克洛瓦尼
#29392
1700, 1693
奥利·乌西克
#29386
29420
奥利·乌西克
#29385
29434
卢卡斯·巴伊萨罗维茨
#29341
29389
瓦迪姆·马莱什
#29331
28901
叶夫亨尼·杜姆斯基伊
#29300
29299
纳扎尔·克洛瓦尼
#29285
伊甸园
#29222
29280
伊甸园
#29199
29198
彼得·霍斯特
#29035
29034
安德里伊·卡里尼奇
#29023
22762
奥利·乌西克
#28993
29388
奥利·乌西克
#28989
29380
康斯坦丁
#28902
29327
克里斯·斯内达克
#28608
29381
钱德鲁·拉金德兰
#28250
29344
伊霍尔·斯维齐耶夫
#28137
24353
阿吉特
#27977
29097
亚历山大·克拉夫丘克
#27905
28303
Ledian Hymetlari
#27582
27570
伊霍尔·斯维齐耶夫
#27364
17195, 27355
Michal Derlatka
#29256
26110
雅罗斯拉夫·罗戈萨
#27914
28524
黑兹尔·乔伊·卡基克拉
#29441
纳扎尔·克洛瓦尼
#29438
jmonteros422
#29424
纳扎尔·克洛瓦尼
#29367
1747, 1704, 1702, 1699, 1694
本杰明·罗森伯格
#29451
29470
克里斯托夫,福曼
#29305
29345
卢卡斯·巴伊萨罗维茨
#29272
29346
涂颜
#28480
26498
瓦迪姆·马莱什
#28238
18823
马修·奥洛克林
#26256
8815, 26255
jmonteros422
#29493
1742
塞尔吉·伊瓦先科
#29449
奥利·乌西克
#29427
涂颜
#28642
29468
卢卡斯·巴伊萨罗维茨
#28599
维塔利·普罗科波夫
#27758
26702
帕维尔·贝斯特里茨基
#26175
28319, 29313
纳扎尔·克洛瓦尼
#29492
1750
纳扎尔·克洛瓦尼
#29490
1749
奥利·乌西克
#29485
塞尔吉·伊瓦先科
#29484
纳扎尔·克洛瓦尼
#29475
奥利·乌西克
#29472
29539
瓦迪姆·马莱什
#29455
25211
优路易
#29398
1684
卢卡斯·巴伊萨罗维茨
#29376
29453
伊格恰克
#29291
29286
尼基塔·萨里切夫
#29214
29213
卢卡斯·巴伊萨罗维茨
#29202
29477
维塔利·里亚博伊
#28923
29527

系统要求

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

安装和升级说明

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

迁移工具包

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

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

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