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