Adobe Commerce 2.4.3发行说明
Adobe Commerce 2.4.3引入了性能和安全性的增强以及重要的平台改进。 安全增强功能包括扩展reCAPTCHA覆盖范围和包含内置速率限制。 核心编辑器依赖项和第三方库已升级到与PHP 8.x兼容的最新版本。
此版本包括370多项核心代码的新修复和33项安全增强功能。 Adobe Commerce 2.4.2发行说明中识别的所有已知问题都已在此版本中修复。
请参阅 Adobe Commerce 2.4.2-p2发行说明 有关Adobe Commerce 2.4.2-p2的信息。
其他发行信息
虽然这些功能的代码与季度版本捆绑在一起,但其中的多个项目(例如B2B、Page Builder和Progressive Web Application(PWA) Studio)也单独发布。 每个项目的文档中都提供了特定于项目的单独发行信息,其中记录了这些项目的错误修复。
应用MC-43048__set_rate_limits__2.4.3.patch解决API速率限制问题
此修补程序为Web API无法处理数组中包含20个以上项目的请求问题提供了解决方案。 此问题会影响运行Magento Open Source2.4.3、Adobe Commerce 2.4.3或2.3.7-p1的部署。 在这些版本中添加了内置速率限制功能,以防止拒绝服务(DoS)攻击,默认最大值为20。 此修补程序将默认限制还原为更高的值。 如果您怀疑存储区正在遭受DoS攻击,Adobe建议将默认输入限制降低到较低的值,以限制可请求的资源数量。 请参阅 Web API无法处理数组中超过20个项目的请求 知识库文章。
应用AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch解决升级时PHP出现的严重错误
升级到Adobe Commerce 2.4.3期间可能会出现以下致命错误:
PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74
此错误是由于使用 str_contains
函数,它是一个PHP 8.x函数。 Adobe Commerce 2.4.3不支持PHP 8.x。此修补程序将此函数替换为支持的PHP 7.x函数。 请参阅 Adobe Commerce升级2.4.3、2.3.7-p1 PHP致命错误修补程序 知识库文章。
应用 AC-3022.patch
继续提供DHL作为运输承运商
DHL已引入架构版本6.2,并且将在不久的将来弃用架构版本6.0。 支持DHL集成的Adobe Commerce 2.4.4及更早版本仅支持版本6.0。部署这些版本的商家应适用 AC-3022.patch
尽早继续提供DHL作为航运公司。 请参阅 应用修补程序以继续将DHL作为运输运营商 知识库文章,了解有关下载和安装修补程序的信息。
高亮
在此版本中查找以下要点。
显着的安全增强功能
此版本包括33项安全修复和平台安全改进。 其中许多安全修复已回溯到2.4.2-p2和2.3.7-p1。
三十三项安全增强功能,可帮助消除远程代码执行(RCE)和跨站点脚本(XSS)漏洞
到目前为止,尚未发生与这些问题相关的已确认攻击。 但是,可能会利用某些漏洞访问客户信息或接管管理员会话。 这些问题中的大多数要求攻击者首先获得对管理员的访问权限。 列入允许列表因此,我们提醒您采取一切必要步骤保护您的管理员,包括但不限于这些工作:IP, 双重身份验证,使用VPN,使用唯一位置而不是 /admin
和良好的密码卫生。 请参阅 Adobe安全公告 以讨论这些已修复的问题。
其他安全增强功能
此版本的安全改进改进了与最新安全最佳实践的符合性,包括:
-
A 新的Composer插件 有助于防止依赖关系混淆,并标识与公共包存储库上的内部包同名的恶意包。 请参阅 Adobe使用2.4.3版本发布新编辑器插件 博客帖子。
-
API现在内置了速率限制 以防止拒绝服务(DoS)攻击。 Web API现在对客户端可请求的资源大小或数量施加限制(默认最大值为20,并可根据业务需求配置为其他值)。 请参阅 限速 以了解有关配置这些限制的信息。
-
ReCAPTCHA覆盖范围已扩展 要包括,请执行以下操作:
-
ReCAPTCHA涵盖具有相应HTML页的Web API。 (这不包括通过集成访问的Web API。) ReCAPTCHA覆盖范围可保护端点免受垃圾邮件攻击。 当使用OAuth的第三方集成服务访问Web API时,将禁用ReCAPTCHA。
-
下单店面页面和支付相关Web API。 默认情况下,这些页面的ReCAPTCHA保护处于禁用状态,并且可以从管理员中启用。 此报道添加了一种反暴力机制,以保护商店免受梳理攻击。
-
基础架构改进
此版本包含可提高框架质量和以下功能区域的增强功能:
-
客户帐户
-
目录
-
CMS
-
OMS
-
导入/导出
-
促销和定位
-
购物车和结账
-
B2B
-
暂存和预览
现在支持PayPal Pay Later 在包括PayPal的部署中。 此功能允许购物者以每两周一次分期付款的方式支付订单,而不是在购买时支付全额。
新建 use_application_lock
索引模式. 此 use_application_lock
模式允许您通过使用环境变量或通过配置 app/etc/env.php
文件。 启用此模式后,在失败后不再需要手动重置索引器。 请参阅 对重新索引进程使用应用程序锁定模式.
平台增强功能
版本2.4.3尚未与PHP 8.x兼容,但下面的平台升级使我们更接近将来与PHP 8.x兼容的程度。
-
核心编辑器依赖项和第三方库已升级到与PHP 8.x兼容的最新版本。
-
KnokoutJS库已升级到v3.5.1(最新版本)。
-
已弃用的TinyMCE v3库已删除。 此
Magento_Tinymce3Banner
与TinyMCE v3.x相关的模块和MFTF测试已从Adobe Commerce中删除。 -
版本2.4.3已经过测试并且确认与Redis 6.0.12兼容。 (版本2.4.x仍与Redis 5.x兼容。)
-
Laminas库依赖项已升级到PHP 8.x兼容版本。 从删除了一些冗余依赖项
composer.json
文件。 Adobe Commerce 2.4.3使用Laminas 3.4.0.
性能增强
此版本包括一些增强功能,它们缩短了产品价格和目录规则索引器的索引时间。 商家现在可以从客户组或共享目录中排除网站,这减少了用于索引的记录数量并缩短了索引时间。
实时搜索
实时搜索 提供者 Adobe Sensei 通过使用人工智能和机器学习算法来对汇总的访客数据进行深入分析,提供直观的搜索体验。 请参阅 Live Search发行说明.
GraphQL
此版本添加了GraphQL对以下功能的支持:
-
共享目录
-
愿望清单. 此 addWishlistItemsToCart变异 将项目从指定的希望列表移至客户的购物车。
-
礼品登记簿. 涉及的任务包括:
-
可协商的引号. 请参阅
negotiableQuote
和negotiableQuotes
查询。新的突变包括:
-
共享路由. 此 路由查询 和 可路由接口 支持产品、类别和CMS页面上的路由请求。 此
urlResolver
查询已弃用,其功能已被route
查询。
请参阅 GraphQL开发人员指南 以了解有关这些增强功能的详细信息。
B2B
版本2.4.3引入了B2B v1.3.2。此版本包含多个错误修复。 请参阅 B2B发行说明.
页面生成器
Page Builder现在作为Magento Open Source中的捆绑扩展提供。 它现在是Adobe Commerce 2.4.3和Magento Open Source2.4.3的默认内容编辑工具。它可以用任何第三方模块替换WYSIWG编辑器。
Page Builder在以下“管理”区域中取代了TinyMCE编辑器:
- CMS页面
- CMS块
- 类别描述
- 产品描述
在TinyMCE中创建的所有内容已作为HTML迁移到页面生成器中。
PWA Studio
有关增强功能和错误修复的信息,请参阅 PWA Studio版本. 请参阅 兼容性 有关PWA Studio版本及其兼容版本的列表。
升级兼容性工具
范围 升级兼容性工具 已根据社区的反馈进行了扩展。 加入我们的 #upgrade-compatibility-tool Slack渠道,以获得Adobe产品团队和社区的支持,并帮助指导该工具的未来方向。
Cloud Managed Services更新
此版本包括增强我们对Amazon Simple Storage Service (AWS S3)和Amazon Aurora云托管服务的支持。 它为AWS ElastiCache、AWSElasticsearch和AWS Managed Queues (Rabbit MQ)提供经认证的支持。 (我们测试了这些服务的功能、性能,以及它们与Adobe Commerce的集成。)
Adobe Stock集成
此版本包括Adobe Stock集成v2.1.1。
供应商开发的扩展
有关此版本的功能和更改的更新,请参阅以下主题:
-
Amazon Pay. Amazon Pay已被弃用,将在以后的2.4.x版本中删除。 版本2.4.3及更高版本将仅包含兼容性更新和主要错误的修复。
修复的问题
我们已在2.4.3核心代码中修复了数百个问题。
安装、升级、部署
- 此
bin/magento setup:db:status
命令现在会返回一条消息,指示在成功升级后一切都是最新的。 以前,应用程序显示以下错误:Declarative Schema is not up to date
.
- 现在,当创建新可配置产品失败时,在表单重新加载时会保留配置值。 以前,在表单重新加载过程中会丢失值,并且应用程序会显示此错误:
The value specified in the URL Key field would generate a URL that already exists
. GitHub-32102
- 运行时,应用程序不再引发异常
bin/magento setup:upgrade
,从使用Redis的Magento Open Source部署升级到Adobe Commerce。
- 在将部署从Magento Open Source升级到Adobe Commerce后,以前创建的购物车价格规则现在显示在“内容暂存仪表板”页面上。
- 在Galera群集上运行的部署现在支持更多客户。 GitHub-31038
- 现在,当应用程序与以下任一应用程序一起安装时,管理员可以成功登录到部署
—use-rewrites=0
选项或web/seo/use_rewrites
在中设置为0core_config_data_table
. GitHub-32100
- 已更新
sortOrder
加载AsyncCssPlugin
. 应用程序现在加载AsyncCssPlugin
早于JsFooterPlugin
. GitHub-30882
Magento\Config\Model\Config\PathValidator
现在检查显示路径以确定元素是否存在,如果它有配置路径,则使用config.xml
而不是验证路径。 GitHub-27678
- 使用Grunt或服务器端编译编译的Less文件现在会产生相同的结果。 以前。
.abs- styles
,可以扩展其他.abs- styles
在_extends.less
使用Grunt编译时,未正确输出。 这导致了生产部署与开发部署之间的差异。 GitHub-7231
AdminGWS
- 管理员GWS现在使用
int
的值website_id
具有自定义权限的管理员的管理员集合中的SQL条件。
Adobe Stock集成
- 应用程序现在会显示一条信息性消息和指向管理员的链接 商店 > 配置 > 高级 > 系统 第页的“搜索Adobe Stock”页面,当时 API密钥(客户端ID) 和 客户端密码 未设置。 以前,应用程序显示以下错误:
We couldn't find any records
没有链接。
后端
- 具有受限访问权限(例如,仅为一个网站分配了访问权限)的管理员无法再编辑设置为全局范围的类别。
- 生成的系统报告(系统 > 支持 > 系统报告)现在已正确呈现。 以前,报表内容未对齐。
- 应用程序现在关闭对 价格 字段满足以下条件时 动态价格 在捆绑产品创建期间将启用设置。 以前,当您从以下位置删除值时,应用程序会引发验证错误 价格 字段,当 动态价格 设置已启用。 GitHub-26214
- 当管理员URL与部署中的默认网站URL不同时(在该部署中,应用程序配置为可从两个URL访问),不再发生无限重定向。
捆绑产品
- 您现在可以使用
addProductsToCart
将具有多个复选框选项的捆绑产品添加到购物车的突变。
- 现在,使用临时表执行捆绑产品的价格索引,从而避免锁定数据库表。 以前,应用程序使用物理表,这会导致表被锁定。
- 捆绑项目的价格现在可以设置为0.00。以前,在将价格设置为0.00之后返回到编辑页面时,价格会返回到其默认值。 GitHub-32383
- 现在,如果价格在订单下达之前发生了更改,则包含捆绑产品的订单的订单详细信息会显示捆绑产品的正确价格。
- 捆绑产品库存状态现在会根据其子产品的库存状态进行更新。 以前,当从产品中删除一个选件时,捆绑产品显示为缺货,并且捆绑产品具有两个SKU相同的选件。
- 管理员现在可以更改捆绑产品的值
Shipment Type
属性移到其他属性组之后。 以前,此属性保存时始终使用Together
值(如果它被移动到属性集中默认组以外的属性组)。
- GraphQL
setGuestEmailOnCart
突变现在可以正确更新来宾电子邮件。 以前,不更新报价和报价地址表。
- 通过REST API调用向捆绑产品添加、删除或更新子产品现在会按预期触发重新索引。 以前,这些操作不会触发重新索引,因此,在执行手动重新索引之前,捆绑产品不会更改其库存状态。
- 该应用程序现在为具有分层价格的捆绑产品显示正确的价格范围。 GitHub-30284
- 现在,在捆绑包选项的价格发生更改后,应用程序会在购物车页面上以及结帐工作流的配送步骤中显示与预期相同的总价。
- 现在,您可以通过从客户购物车访问捆绑产品来成功配置捆绑产品。 以前,配置产品页面从未完全加载,并且您无法保存设置。
- 商家现在可以在多商店部署的每个商店视图上为捆绑产品指定唯一价格。 网站特定价格保存在
catalog_product_bundle_selection_price
表格。 以前,应用程序不会根据网站范围确定捆绑产品的价格,即使在 商店 > 配置 > 目录 > 目录 > 价格 > 目录价格范围 已设置为Website
. 未保存网站特定的价格catalog_product_bundle_selection_price
. GitHub-12584
- 在以下情况下,捆绑产品的发票现在会显示相关简单产品的正确数量: 动态定价 已禁用。 以前,与捆绑产品关联的简单产品的数量是父产品的数量,而不是捆绑产品的数量)。 GitHub-30802
- 此
updateProductsInWishlist
突变现在可以成功更新属于希望列表中的捆绑产品的项目。 以前,此变异不会更新愿望清单项,而是删除该项并创建一个新项,从而更改了项ID。
- 现在,您可以设置
required_options
和has_options
使用创建或更新捆绑产品时,按预期显示捆绑属性POST /V1/product/:sku
端点。 以前,这些自定义属性设置为0(零),尽管已尝试将其设置为1(一)。
- 以前缺失的捆绑产品数据现在包含在暂存流程中。 这解决了当购物者从产品列表页面购买捆绑产品而不是直接从产品页面添加捆绑产品时产品行为不一致的问题。
缓存
- 此
varnish6.vcl
文件已更新以绕过客户页面的缓存。
验证码
- 现在,CAPTCHA可正确验证购物者提供的数据,并且在购物者多次尝试通过PayPal Payflow Pro结帐失败后,CAPTCHA字段现在可按预期显示。
- 验证码验证不会再在结账工作流的支付页面上随机失败。
- 在超过失败的完成尝试次数后,应用程序现在会按预期显示CAPTCHA字段。 以前,尽管应用程序提示您再次尝试验证码质询,但它不显示验证码字段。
- 现在,验证码在结账页面上可按预期工作。 以前,在购物者正确应答了验证码质询后,结账页面上的加载程序从未完成,并且应用程序显示以下错误:
captchaData[formId] is undefined
. (仅当购物者使用先前访问运行2.3.5-p1的部署的同一浏览器时,才会发生此错误。)
_.isEmpty()
签入defaultCaptcha.js
文件现在已成功完成。 以前,这些检查未完成,因此,升级后无法加载签出页面。 GitHub-31641
购物车和结账
- 现在,在转换和更新购物车中的产品数量时,应用程序会考虑特定于区域设置的小数定位符。
- 订单不再忽略提供的具有送货地址的客户名称。 以前,会忽略名称,因为
same_as_billing
标记未保存在数据库中。
- 现在,当您在购物车中编辑产品时,指向礼品注册表的链接会按预期保留。 以前,当您单击 更新购物车 按钮。
- 使用者的所有队列消息
quoteItemCleaner
现在将其状态更改为complete
删除多个产品后的预期结果。 以前,此使用者只有一条消息将其状态更改为complete
,则其余部分的状态已更改为in progress
.
- 现在,只有当购物者单击 下单 按钮。 以前,每当购物者在结帐工作流中更改付款方式时,应用产品会在“应用折扣代码”块中显示此消息:
The order wasn't placed. First, agree to the terms and conditions, then try placing your order again
.
- 现在,在从“计划更新”预览中将捆绑产品添加到购物车并单击购物车后,您会按预期重定向到结帐页面。 GitHub-447
- 现在,如果购物者未能单击 更新 按钮并返回到送货步骤。
- 现在,当购物者添加无效产品数量并单击 更新物料和数量 “管理购物车”页面上的按钮。 以前,应用程序升级了产品数量并且不显示错误消息。 GitHub-459
- 带有可自定义选项的产品
(File)
现在,在整个多装运结帐过程中按预期包括活动链接。 以前,缺少此链接。 GitHub-31095
- 现在,管理员购物车以正确的货币显示支持多种货币的商店的产品价格。 以前,价格会多次转换为指定的货币 — 首先是从店面将产品添加到购物车时,然后是在管理员随后呈现订单时。
- 现在,在管理员完成店面购物者从管理员那里创建的订单后,应用程序会按预期清空购物车。 以前,当客户在管理员完成订单后重新登录时,店面购物车仍包含订单内容。 GitHub-30262
- 购物者现在可以将最低广告价格(MAP)超过其正常产品价格的产品添加到购物车。
- 使用多个地址结账时,购物者现在可以从结账工作流中成功更改其账单地址。
- 现在,来宾创建的所有付费付款交易都已保存到数据库,并可在管理员中按预期显示。 以前,数据库中只保存了一小部分并发订单,并且大多数订单由于数据库锁定导致的超时而丢失。 GitHub-25862
- 现在,当访客将产品放入迷你购物车时,应用程序可正确显示包含特殊字符的内联欢迎消息。 以前,应用程序不会将产品添加到迷你购物车或显示欢迎消息。 GitHub-32250
- 现在,在启用店内交付的情况下,会成功加载签出工作流的配送页面。 以前,应用程序引发JavaScript错误,并且送货签出页面未完全呈现。
- 添加了
itemResolvers
目录参数di.xml
文件。 因此,如果禁用了可配置和分组的产品模块,则签出不再中断。 GitHub-30860
- 应用程序现在显示 付款和送货信息 部分。 GitHub-30257
- 当购物车包含具有多个选项的捆绑产品时,应用程序现在可以正确应用具有购物车级别固定折扣的购物车价格规则。 以前,购物车价格规则未完全应用于订单。 GitHub-30952
- 此 添加到购物车 类别列表视图上的按钮现在可按预期使用。 GitHub-32232
- 您现在可以使用POST
/V1/carts/mine/items
向购物车添加自定义数量的分组产品。 GitHub-26909
- 应用程序不再使用送货地址填充结账工作流的帐单地址区域。 以前,当 省/市/自治区 帐单地址字段为空,并且送货地址和帐单地址不同,应用程序填充了帐单地址 省/市/自治区 包含来自配送地址信息的字段。 GitHub-31608
目录
- 批量更新 启用数量增量 和 数量增量 现在,属性可按预期工作。 GitHub-29544
- 现在,您可以成功复制包含仅限数值的SKU的共享目录。 以前,当您尝试复制共享目录时,应用程序会引发错误,因为
\Magento\Catalog\Model\ProductIdLocator
类无法正确用于仅限数值的SKU。
- 在您启用最近与管理员的产品同步后,应用程序不再引发JavaScript错误。 以前,应用程序显示此JavaScript错误:
Cannot read property 'status' of undefined
.
- 自定义主题布局更新现已按预期应用。 以前,忽略自定义主题布局更新。
- 现在,产品类别缓存已按预期清除
cron
期间indexer_update_all_views
执行。 以前,重新索引后“类别”页面上的产品计数不正确。
- 现在,如果在存储视图的产品更新REST API请求中未指定属性,则属性值将保持不变。 以前,如果未指定属性,应用程序会将该属性值重置为其默认范围值。
- 管理产品网格(Admin 目录 > 产品)现在,按SKU过滤产品时显示正确的产品计数。
- 现在,如果启用了类别权限,则当产品添加到CMS页面时,应用程序会显示准确的库存状态,并阻止显示指定客户组的价格。 以前,所有产品都显示为缺货,而不管实际库存状态如何。
- 现在,“高级定价客户组价格”批价格输入字段的最小宽度为5位数。 以前,在低分辨率显示屏上,此字段中只显示两个符号。
- 现在,应用程序在删除产品后成功删除产品媒体映像。 以前,成功删除产品后,产品媒体图像会保留在文件夹中。
- 当您在“管理员”中创建或编辑产品,然后创建“计划设计更新”时,页面布局现在会按预期更新。 GitHub-32007
- 值为零的自定义产品属性现在可以成功保存为空白。 以前,应用程序不会将此值更新为空白。
- 自定义类别布局更新文件现在可以按预期应用于产品。 以前,更新文件句柄(
catalog_category_view_*
)与产品句柄不匹配。 GitHub-27285
- 已为管理员产品列表的固定产品税(FPT)列禁用排序。 以前,在对FPT列进行排序后,无法重新加载Products页面。
- 现在,当匹配的产品在每个网站上的价格不同时,页面生成器产品小组件预览可按预期在多网站部署中工作。
- 使用GET在产品搜索中按位置排序
/rest/V1/products/?searchCriteria[filterGroups]
现在可按预期运行。 以前,产品收藏集没有字段position
排序的值。 GitHub-31591
- 管理员用户现在可以在 名称 和 SKU 产品网格中的字段。 以前,应用程序将多个空格折叠为单个空格。
- 现在,当Admin的可销售数量为0时,产品在店面显示为缺货。 以前,这些产品在店面中以库存形式列出,并且应用程序显示活动 添加到购物车 按钮。 GitHub-31117
- 管理员现在可以添加带有可自定义选项的产品
(File)
从“管理客户”页面的“购物车”部分(“客户活动”列)转到“订购的商品”网格。 以前,应用程序不会将项目添加到列表中,因为值在插入之前格式不正确\Magento\Catalog\Model\Product\Type\AbstractType::_prepareOptions
.
- 该应用程序不再提示购物者为仅有一个选项的捆绑产品选择产品选项。
- 应用程序现在会在创建新小部件的过程中显示布局更新中的所有子类别(锚点类别和非锚点类别)。
- 此
product
当仅为一个存储视图更新产品名称时,查询不再覆盖多存储部署中所有存储视图的默认值。 GitHub-31083
- 当您更改与管理员相关的产品、追加销售和交叉销售列表的每页值时,Adobe Commerce会按预期更新总页数。 GitHub-31059
- 管理员现在可以添加具有两个或多个可自定义选项的产品
(File)
SKU的订单。
- 当具有受限权限的管理员将产品小组件添加到管理员中的CMS页面时,应用程序不再引发错误。 以前,当管理员单击 保存 按钮:
We are sorry, an error has occurred while generating the content
.
- 现在,产品详细信息页面会打开并在以下情况下使用使用来自前一订单的日期填充可自定义的日期选项: 使用JavaScript日历 已启用。 现在,如果自定义日期选项值解析程序中的值未根据当前配置设置格式,则该值将回退到替代格式。 以前,自定义日期选项值为空。
- 现在,当产品缺货时,应用程序在购物车中仅显示一个错误。 以前,应用程序显示冗余消息。 GitHub-27469
- 管理员现在可以添加带有可自定义选项的产品
(File)
SKU的订单。 GitHub-30285
- 您现在可以保存产品和价格,而无需指定
type_id
. GitHub-13639
- 现在,当REST时,店面可按预期提供组产品
PUT /V1/products/:sku/links
请求用于将新的子产品与新的组产品相关联。 以前,产品在运行后未正确编制索引bin/magento cron:run
.
- 您无法再使用创建产品
NULL
SKU值。 以前,您可以通过自定义导入器或直接在数据库中创建没有SKU值的产品,但当您尝试从管理员中编辑该产品时,应用程序会引发错误。 GitHub-27411, GitHub-32525
- 向简单产品添加所需的自定义选项时,不会再毫无警告地将其从父复合产品中删除。 应用程序现在会显示信息性警告,并且不会保存产品。 以前,应用程序保存了产品更改并且不显示警告。 GitHub-30492
目录规则
- 此
products
现在,当目录价格规则应用于项目时,查询会返回当前值。 GitHub-26738
- 以开头的临时表
catalogrule_product__temp
当购物车或目录规则过期、被禁用或变得不活动后重新索引失败时,现在会按预期删除。 GitHub-22273
- 时区现在以与应用时区相同的方式在
\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexById
和\Magento\CatalogRule\Model\Indexer\IndexBuilder::reindexByIds
. GitHub-29549
CMS内容
- 现在,在上传期间,大图像会按预期调整大小, 启用前端调整大小 已启用配置设置。
- 修复了CMS页面保存控制器的错误处理。 以前,当
Error
对象被抛出cms_page_prepare_save
事件,则应用程序将此对象传递给addExceptionMessage
函数中,因为此函数需要Exception
. 通过使用,添加错误消息来解决此问题addErrorMessage
函数。 GitHub-30149
- 现在,您可以从CMS编辑页的“层次结构”选项卡将新页面分配给多个节点。 以前,当尝试将页面分配给节点时,会发生唯一约束冲突。 GitHub-363
可配置的产品
- 单击产品的可配置选项时,应用程序不再复制产品图像库中的产品缩略图。
- 现在,当您从愿望清单编辑可配置产品时,应用程序显示的配置弹出窗口会在您单击 确定 按钮。
- 现在,该应用程序可以正确为仅包含一个可配置产品的订单生成发票。 GitHub-31143
- 购物者现在可以从非默认商店视图将可配置产品添加到购物车。 以前,当非默认存储视图上的购物者尝试添加可配置产品时,应用程序会显示以下错误:
Could not add item to cart. Please check required options and try again
. GitHub-31660
内容安全策略(CSP)
- 内容安全策略现在支持通过以下方式加载base64编码的图像和字体
data: scheme
.
cron
- Cron清理查询已重构,以减少或消除以下性能问题:
cron
作业在挂起状态下仍然卡住,MySQL查询速度日益缓慢,并且CPU使用率增加。 GitHub-26507
cronjobs
处于状态running
超过24小时后会自动更改为状态error
. 因此,该作业的新实例可以再次运行,并且当作业错误地仍设置为状态时,您无需手动更改作业状态running
. 以前,如果cronjob
卡在状态running
,应用程序阻止启动相同作业的新实例,并且您必须手动更改作业状态。 GitHub-8933
cron
作业现在按预期完成,不会再引发此序列化错误:[Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28')
. GitHub-18409
indexer_update_all_views
cron作业现在可在以前的失败后按预期运行。 失败的运行在中标记为失败cron_schedule schedule
,后续运行不会自动失败。 以前,cron_schedule
填充了待处理作业的表,以及indexer_update_all_views
cron作业未运行。 GitHub-23054
cron
死锁不再作为的结果出现cron
尝试在组重叠的大型部署中设置锁定。 GitHub-8933
cron
死锁不再发生在cron_schedule
在只有少数几张表格之后cron
作业已运行。 GitHub-22438
自定义客户属性
- 此 状态 店面客户帐户通讯簿中的字段现在加载为,并且仍然是下拉页面元素。 此 提交 现在,在完全加载所有页面元素之前,按钮处于禁用状态。 以前,应用程序在将此字段作为下拉元素呈现之前将其加载为文本框,购物者可以在文本字段中输入并保存值,这稍后会导致结账期间出现错误。
- 现在,应用程序可在店面页面和管理员订单页面上正确显示自定义客户地址属性。 以前,地址信息部分中缺少下拉属性的选定选项,并且输入属性的值包含属性代码。 GitHub-508
- 上传文件时,当您在管理员客户地址字段中保存带有文件附件的客户地址属性时,应用程序不再引发错误。 出现此问题的原因是,控制器操作中缺少返回语句。 以前,应用程序引发此错误:
Something went wrong while saving the file
.
- 现在,RESTGET车API调用会返回帐单和送货地址的正确自定义属性值。 以前,自定义地址属性在“我的帐户前台”页面和“管理员”的订单详细信息页面中显示不正确。
- 该应用程序现在可以成功处理包含具有输入类型的客户地址属性的文件
file (attachment)
. 以前,应用程序在上传附加文件的过程中引发此错误:Something went wrong while saving the file
.
客户
- 存储信用电子邮件现在会考虑所选范围,并从正确的电子邮件地址发送。
- 现在,按帐户创建日期过滤可生成符合配置的时区设置并捕获所有相关已创建帐户的结果。
- 如果之前缓存了数据,则客户网格过滤器现在为受限制用户使用正确的网站选项。 以前,客户网格过滤器从缓存中检索网站参数,并为受限制的用户包含不正确的数据。
- 当在多网站部署中删除一个网站时,应用程序不再在“管理员客户”页面上引发异常。 以前,当管理员尝试访问全面的客户列表时,应用程序不会显示所有客户并显示以下错误:
The website with id 2 that was requested wasn't found. Verify the website and try again
.
- 具有权限的管理员现在可以从客户的“帐户信息”选项卡将客户重新分配到不同的网站。
- 现在,在创建输入类型的客户地址属性时,您可以成功上传文件
(File)
. 以前,当您尝试上载并保存文件时,应用程序会引发以下错误:Something went wrong while saving the file
.
客户区段
- 现在,该应用程序可按预期在店面中根据客户区段显示相关产品。 以前,在为特定客户区段创建相关产品规则时,应用程序不显示此部分。
- 现在,当相应的客户区段同时应用于来宾和注册客户时,为其购物车中的注册客户显示动态块。 以前,应用程序仅显示来宾的块。
- 现在,在管理员下订单后,客户区段会自动更新。 以前,创建管理员订单后,管理员用户必须手动刷新相关的区段数据,方法是导航到相关的客户区段并单击 刷新区段数据 按钮。
- 应用程序现在在购物车中显示相关客户区段中所有客户的动态块。 以前,即使客户区段同时包含来宾和注册客户,来宾也不会看到阻止。
- 由于使用的客户分段规则而导致数据库性能问题
Product was Ordered
条件已解决。
- 添加了REST/SOAP API的客户区段事件观察器。 因此,如果通过REST/SOAP API下达订单时区段中定义的标准匹配,则客户区段现在会按预期自动更新。
- 为GraphQL请求添加了客户区段事件处理器。 以前,在购物车价格规则条件中使用客户区段时,购物车价格规则折扣不会应用于购物车。 GitHub-371
目录
- 当购物者在结账工作流的配送区域输入无效的邮政编码时,应用程序不再引发异常。 GitHub-23371
可下载
- 现在,当订单同时包含可下载的产品和带有可下载选项的可配置产品时,应用程序会在新订单电子邮件中显示指向可下载产品的链接。 以前,应用程序显示指向独立的可下载产品的链接,但显示指向具有可下载选项的可配置产品的链接。
动态块(以前称为横幅)
- 动态块现在仅在指定页面上显示。 以前,如果未指定动态块,则应用程序会显示所有页面上分配给构件的所有横幅。
- 您现在可以保存具有空内容的动态块。
EAV
- 客户地址属性日期值现在以四位数格式而不是两位数格式保存。
电子邮件
- 现在,管理员重置密码页面上的密码重置链接可按预期工作。 以前,当自定义模板用于重置管理员密码页面时,应用程序在管理员单击电子邮件内的链接时显示此消息:
Your password reset link has expired
. 出现此情况是因为自定义电子邮件模板包含用户ID的错误变量。
- 现在,如果在商店视图级别启用,则从管理员那里发送客户电子邮件会正常运行。 以前,当在商店视图级别而非全局级别启用电子邮件通知设置时,应用程序不会发送客户电子邮件。
- 现在,在并非所有网站都启用异步电子邮件发送的多站点部署中,应用程序会按预期发送电子邮件。 以前,如果至少有一个网站禁用了此设置,那么即使启用了此设置,也不会从任何网站发送电子邮件。 发票、发运和贷项通知单电子邮件中存在类似问题。 但是,已成功发送订单备注、发票备注、发运备注和贷项通知单备注电子邮件。 GitHub-31950
- 现在,当您从管理员共享礼品注册时,应用程序发送的电子邮件消息包含指向注册位置的有效链接。 以前,使用此链接会导致404错误。 GitHub-504
- 发票和发票PDF现在包含与预期相同的捆绑产品价格。 以前,发票PDF包含捆绑产品的错误价格。 GitHub-12856
- 字符串转换已添加到电子邮件模板过滤方法中,以确保返回值为
string
. 以前,当未处于开发人员模式时捕获到异常时,应用程序返回phrase
对象。 这进而触发了致命的Uncaught TypeError
. GitHub-32671
- 现在,当启用异步发送时,订单确认电子邮件会按预期发送(商店 > 配置 > 销售 > 销售电子邮件 > 常规设置 > 异步发送)。 GitHub-31950
- 当客户尝试从“联系我们”表单发送电子邮件时出现异常时,应用程序现在会按预期记录错误。 GitHub-23645
框架
- 现在会检查Admin中的父类是否存在docblock注释,以及原始类和继承的接口。 以前,由于未检查父类,因此在Admin中执行任何触发事件的与客户相关的操作都会导致错误。 应用程序在异常日志中记录此错误:
report.CRITICAL: Method's return type must be specified using @return annotation.
.
- 在启用了Redis页面缓存的部署中停止Redis服务器时,应用程序不再引发致命错误。
- 该申请现在符合 从备份中排除介质文件夹 启用备份时的设置
bin/magento config:set system/backup/functionality_enabled 1
. 以前,尽管进行了此设置,但会备份介质文件夹,因为此文件的路径/magento
用双//格式不正确。
- 该应用程序现在会按预期翻译“管理购物车”页面的所有可翻译字符串。 以前,翻译加载发生得太晚,并跳过所有订阅控制器操作预派单的观察者。 GitHub-31849
- 现在,当发生以下情况时,新建客户帐户页面上的表单验证可成功工作 客户登录 “启用扩展”设置已禁用。 以前,应用程序引发JavaScript错误。
- 使用
bin/magento setup:db-schema:split-sales
现在可以按预期移动数据库表。 现在可以正确创建表并填充数据。 以前,由于检查表存在性不正确,应用程序抛出SQLSTATE
运行时出现错误bin/magento setup:db-schema:split-sales
.
- 由分支的子进程的异常处理
ProcessManager
已得到改进。 现在发生异常时,主进程将退出,并且只显示一次错误消息。 以前,会记录多个索引器故障并显示多条消息。 GitHub-30622
- 全局Adobe Commerce插件(例如,
webapi_rest
和graphql
)不再为新的自定义区域类型触发,当di.xml
此文件不包含已注册的插件。
- 初始化期间发生的异常不再缓存,现在会触发500响应代码。
- 商家现在可以通过商店视图在目录事件中指定或删除图像。 以前,当您在编辑目录事件时更改商店视图时, 删除图像 复选框未处于活动状态,应用程序会显示以下错误:
Uncaught ReferenceError: toggleValueElements is not defined at HTMLInputElement.onclick
. GitHub-364
- 最后一个处理程序合并到
communication.xml
文件不再覆盖所有以前创建的处理程序。 GitHub-29528
常规修复
- 现在,应用程序在“我的产品评论”页面和“我的帐户”页面上显示最近评论的正确星数。 以前,该应用程序只对第一次审阅应用星级审核,而将页面上的其他审阅留空。
- 标头中的帐户链接现在遵循WCAG标准。 以前,标头中的帐户链接包含重复的ID,这会导致WCAG验证失败。
- 该应用程序现在以UTC时区保存目录事件日期。 以前,应用程序保存的目录事件日期以用户的时区为准。
- 当来宾购物者使用无效地址时,应用程序不再引发系统日志生成的错误。 以前,应用程序会间歇性地显示此错误,而不是呈现页面:
No such entity with addressId
. GitHub-15115
- 对于格式不受支持的图像,图像大小调整过程不再暂停。 以前,当
catalog:images:resize
遇到不支持的图像格式,进程已停止,应用程序显示此错误:bin/magento catalog:images:resize Unsupported image format
.
- 管理员已添加对徽标图像的WEBP和AVIF支持。 GitHub-32495
- 您无法再更改
media_gallery
属性。 以前,当您更改media_gallery
属性返回到global
,应用程序引发错误。
- 在更新结束日期之后,作为计划更新添加的相关产品将不再显示在店面产品页面上。 GitHub-469
- 现在,当您单击时,应用程序会显示一条准确、信息丰富的消息 管理项目 在“我的帐户礼品注册”页面上,注册产品已缺货。 以前,应用程序引发此错误:
Error: Call to a member function getId() …
. GitHub-490
- 现在,您可以按预期从“添加新页面”页面将CMS页面添加到网站根层次结构。
- 选择实体类型后,筛选功能现在可在计划导出列表中按预期工作。 以前,过滤器不起作用,并且应用程序抛出JavaScript错误。 GitHub-361
- 现在,类别图像可按预期从
catalog/tmp/category
目录到catalog/category
目录(使用数据库存储方法保存类别时)。 中的图像行media_storage_file_storage
现在,表格也包含正确的内容directory_id
. GitHub-11995
- 在向CMS层次结构提交更改后,商家现在会按预期收到有关失效缓存的通知。 以前,应用程序在保存CMS层次结构时不会使缓存失效。
- 减少了对购物车的购物车部分的冗余AJAX请求。 以前,应用程序未正确加载购物车小计,这会再次触发购物车重新加载。
- 添加了对URL的验证,以防止在URL键中包含保留字。 请参阅 定义已知统一资源标识符(URI)
- 在运行PHP 7.4的部署中,当应用程序运行 生成“类别/产品”URL重写 设置已设置为 否,购物者会尝试访问不存在的类别路径。 以前,应用程序返回500错误,指出:
Trying to access array offset on value of type bool
. GitHub-31984
- 现在,您可以成功编辑使用属性集创建的产品,该属性集中的 设计组和计划设计更新 组已被删除。 以前,当您尝试编辑根据该属性集创建的产品时,应用程序会引发致命错误。 GitHub-44
nowdoc
已替换heredoc
在Magento_Backend
商店切换器。 GitHub-32262
- 现在,登录后,管理员会直接重定向到所请求的“管理员”页面。 以前,当管理员登录时,他们会被重定向到管理员功能板(或配置为启动页面的任何页面),并且必须手动导航到他们的目标。 GitHub-31042
- 阿根廷、玻利维亚、智利、厄瓜多尔尔、圭亚那、巴拉圭、秘鲁、苏里南和委内瑞拉已加入到
directory_country_region
表格。 GitHub-31169
- 阿尔巴尼亚、丹麦、希腊、冰岛、葡萄牙和瑞典等地区也加入了
directory_country_region
表格。 GitHub-31040
- 现在,当出现异常时,消息会在MysqlMQ消息队列中标记为错误。 GitHub-18140
- 现在,在为管理员贷项通知单和发票页加载税务信息时,应用产品会引用正确的类对象。 GitHub-31197
- Royal Mail Click & Drop集成现在按预期工作。 以前,当您尝试激活此集成时,应用程序会引发此错误:
Sorry! Something went wrong. Please try again later
. GitHub-28996
- 现在,如果在URL中传递了错误的装运、贷项通知单或发票ID,应用产品将显示一则信息性错误消息。 以前,应用程序抛出致命错误。 GitHub-30424
- 已删除静态文件位置的递归。 应用程序现在显示404页面,而不是500错误。 以前,默认NGINX配置中的错误会导致无限递归。 GitHub-31530
- 的名称
cms_index_noroute.xml
文件已更正为cms_noroute_index.xml
. GitHub-31300
- 此
.editorconfig
文件已重构,以更正db_schema_whitelist.json
文件。 GitHub-31171
- 调整浏览器窗口大小不再触发重复的绑定放大镜事件。 GitHub-30788
- 应用程序在过滤时不再引发SQL异常
Magento\Users\Model\ResourceModel\Users\Collection
按user_id
. GitHub-31216
礼品卡
- 取消礼品卡后,未决付款费用现在会按预期从礼品卡中删除。 以前,应用程序在以下情况下引发错误:
cron
在删除礼品卡后运行。
- 现在,购物者在结帐时可使用多个地址从“查看订单”页面上的订单中删除礼品卡。 以前,当购物者选择礼品卡后单击时,应用程序不会将礼品卡从订单中移除 移除.
- 现在,当您在将礼品卡添加到购物车中后更改其价值时,应用产品会在购物车中显示礼品卡的新价格。
- 价格范围验证逻辑已添加到礼品卡创建页面。 以前,管理员可以创建其最小值超过最大值的卡片。 GitHub-493
- 此
addRequisitionListItemsToCart
现在,当请求不包含的值时,查询会按预期返回自定义礼品卡的金额allow_open_amount
.
礼品消息
- 此
setGiftOptionsOnCart
突变现在可以正确地生成礼品信息。 GitHub-388
礼品注册表
- 活动日期 现在,在创建或编辑礼品注册期间,店面和管理员上的值相同。 以前,每次编辑和保存礼品注册时,应用程序都会调整 活动日期 店面和管理员都倒推一天。 GitHub-466
- 该应用程序不再在礼品注册中显示禁用产品。 以前,如果产品在添加到礼品注册表中后被禁用,当购物者访问注册表时,应用程序会显示以下消息:
Error: Call to a member function getId() …
. GitHub-510
礼品包装
- 商店视图的礼品包装标签的翻译现在按预期工作。
- 礼品包装现在按预期应用于发送到多个地址的订单。
- 现在,当所有产品都移除时,应用程序会从购物车中删除礼品包装费用。
- 现在,当贷项通知单包含礼品包装和可配置产品费用时,贷项通知单合计是正确的。 以前,赠品包装税金额并不总是包含在贷项通知单合计中。 GitHub-34
Google Analytics
- 启用Google Analytics后,当管理员尝试在店面加载页面时,应用程序不再引发错误。 的CSP条目
connect-src
已添加以允许AJAX请求访问www.google-analytics.com。 GitHub-30880
Google Tag Manager
- 现在,启用Google Tag Manager后,结账工作流支付页面上账单地址的UI组件可正确使用报价地址。 以前,付款页面上发生JavaScript错误。
GraphQL
- GraphQL
products
现在,查询会返回按“属性编辑”页面上使用的相同排序顺序排序的属性选项。
- 对的响应
{ category(id: 2){ children { name children { name } } } }
GraphQL请求现在包含排序正确的类别树。
- 此
CartItemPrices
对象现在包含新的GraphQL字段fixed_product_taxes
,以返回应用于购物车项目的固定产品税的数组。 以前,应用于购物车项目的固定产品税不包括在购物车查询中。
- 对GraphQL的空请求现在引发响应代码200而不是500。 以前,GraphQL解析器在生成查询结果之前引发异常。
- 此
applyRewardPointsToCart
变异现在会更新购物车的总计,以准确反映扣除的奖励积分值。 GitHub-486
- 使用GraphQL链接追加销售产品时,GraphQL响应中不再包含禁用的产品。
- 商家现在可以使用GraphQL
setShippingAddressesOnCart
在禁用访客结帐时设置购物车帐单和送货地址的方法。
- 此
categoryList
当查询在中包含多个片段时,它不再引发异常CategoryTree
对象。 GitHub-31086
- GraphQL
product
query现在返回正确的客户组价格。
- GraphQL
products
查询响应现在会根据产品属性位置对聚合进行排序。
- 当产品和类别URL后缀包含null值时,应用程序在GraphQL查询期间不再引发类型错误。 GitHub-30909
- 此
CustomizableDateValue
对象现在包含type
属性。 其值是一个可设置为DATE、DATE_TIME或TIME的枚举。
- 此
dynamicBlocks
查询 返回与指定过滤器匹配的动态块的内容。
- POST
V1/products/special-price-delete
请求现在仅删除具有指定值的价格store_id
如预期。 以前,该调用会从所有商店中删除指定SKU的所有特殊价格。 GitHub-25907
- 修复了错误
country_code
中的属性createGiftRegistry
突变。
- 修复了的问题
giftRegistryUid
的属性updateGiftRegistryItems
突变。
- 添加了额外的检查以防止
updateGiftRegistryRegistrants
变异:用于向礼品注册表中添加随机注册者。
- 此
addConfigurableProductsToCart
现在,突变可返回指定产品的正确缩略图。 以前,它会返回父产品的缩略图。
- 此
products
为将来日期设置特殊价格时段时,查询不再公开产品的特殊价格。 GitHub-30210, GitHub-29631
- 此
customer
查询响应现在包括total_giftcard
属性作为OrderTotal
对象。
- 更正了导致出现错误的问题。
products
查询以返回有关没有层定价集的项目的价格层的错误信息。 GitHub-32279
图像
- 使用POST创建或更新捆绑产品时,现在可以按预期设置required_options和has_options捆绑属性
/V1/product/:sku
端点。 以前,这些自定义属性设置为0(零),尽管已尝试将其设置为1(一)。
导入/导出
- 现在,导出页面实体属性网格中产品实体的类别ID过滤器可按预期工作。
- 现在,当所有子产品缺货时,分组的产品库存状态会按预期更新,显示为缺货。 GitHub-32647
- 现在,当导入更新子产品库存状态时,可配置产品库存状态会按预期自动更新。 以前,当子产品库存状态通过导入更新时,产品库存状态不会自动更新。
- 现在,您可以在计划的导出中保存空值。 以前,应用程序会在创建或保存导出后更新空筛选器值。 两者
no
和not specified
值在数据库中以零表示,值为not selected
已被覆盖no
.
- 现在,在导出产品、库存来源和客户实体时,导出过程会考虑用户角色范围。 以前,导出过程忽略用户角色范围,允许导出专用用户角色导出实体。
- 应用产品现在将产品税分类设置为
None
如果使用导入产品tax_class_name
值None
或0
. 以前,如果product tax_class_name
是None
应用产品在CSV文件中新建了一个税分类None
,与现有的税分类重复。 如果product tax_class_name
为0
在CSV文件中,应用程序忽略了该值,产品税分类在导入后没有变化。
- 管理员现在可以成功更改
name
捆绑产品的bundle_values
来自管理员。 以前,在您从管理员更改名称后,应用程序会在店面上将产品显示为缺货。 产品还与同一SKU合并到单个捆绑选项部分中。
- 现在,在导出客户数据时,应用程序会考虑用户范围。 以前,当您尝试导出客户时,应用程序会从所有网站导出客户数据。
- 现在,应用程序在CSV文件导入过程中删除向上销售、交叉销售和相关产品之间的产品关系,符合预期时
__EMPTY__VALUE__
在CSV文件中指定。
- 为许多客户导出自定义地址数据(管理员) 系统 > 导出)不再会定期导致内存错误。 以前,在导出自定义地址数据时,应用程序尝试加载所有客户数据,这会导致内存耗尽,并且应用程序会引发内存分配失败错误。
- 在默认CSV导入过程中,不再导入重复层价格。 以前,缺少验证以防止输入重复的分层价格,当出现重复的分层价格时,商家无法保存产品。 商家在尝试安排产品更改时也会看到此错误:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…
.
- 现在,所有产品映像都将在导入期间进行验证。 以前,当产品具有多个映像时,应用程序仅验证第一个映像。 GitHub-28236
- 现在,您可以在导入期间按预期从客户地址中删除区域。 以前,当客户地址导入为空区域时,分配的区域不会更改。
- 现在,将具有JSON或HTML内容的产品作为其他产品属性正确导出到CSV文件。 以前,CSV文件在不正确的字段中包含重叠的数据字符串。
索引
- 当子进程失败时,进程管理器现在退出,并返回错误。 以前,如果传递给Process Manager的函数数(例如,索引器维度)低于的值,则Process Manager始终会成功退出
MAGE_INDEXER_THREADS_COUNT
环境变量。 GitHub-30964
- 现在,使用RESTPUT链接产品时,可在店面搜索结果中按预期提供产品
/V1/products/:sku/links
当索引器模式设置为时请求 保存时更新.
- 现在,当索引器模式设置为时,目录价格规则索引器可按预期工作 保存时更新. GitHub-370
- 现在,删除不包含产品的已禁用类别对目录搜索和类别平面索引表没有影响。 以前,删除非活动类别会触发完全重新索引。 GitHub-23297
- 现在,自定义索引器可以为订阅使用不同的实体列名称。 以前,数据库触发器使用索引器上次设置为中的列名 按计划更新 而不是指定的索引器。 GitHub-21853
- 应用程序不再发送AJAX请求以重新加载客户数据部分(
Magento_Customer/js/section-config
),不受请求影响。 GitHub-31948
- 在类别中添加、删除或重新排序产品后,以下索引器不再失效:
catalog_category_product
和catalogsearch_fulltext
(以及他们的家属)。 以前,这些意外移除会触发对站点的完全重新索引。 现在,当未启用平面目录时,在这些情况下会阻止完全重新索引。
基础架构
- 依赖关系
pelago/emogrifier
已从版本3.1.0更新到5.0.0。此更新导致对引入了向后不兼容的更改Magento\Email\Model\Template\Filter
类。 在电子邮件模板渲染期间执行更改的代码。 请参阅 BIC参考.
- 更正了的问题
\Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::getCategoryIdsByProductIds
无法保存新产品。
- 已弃用的TinyMCE v3库已删除。 此
Magento_Tinymce3Banner
与TinyMCE v3.x相关的模块和MFTF测试已从Adobe Commerce中删除。
- 应用程序不再抛出
Invalid header value detected
当购物者输入包含法语变音标记(例如“é”、“e”)的电子邮件地址时,“联系我们”表单上出现错误。 该应用程序现在将用户名中的UTF-8字母转换为ASCII编码。 以前,UTF-8字母不会在电子邮件地址的唯一部分中转换为ASCII编码。
- 将插件添加到父类时,应用程序不再引发PHP致命错误。 GitHub-31291
- 更新了以下模块的README.md文件:
Magento_Msrp
,Magento_MsrpConfigurableProduct
,Magento_MsrpGroupedProduct
,Magento_Multishipping
,Magento_MysqlMq
. GitHub-32577
phpcpd
已更新至v6.0.3,以兼容PHP 8。
ramsey/uuid
更新了以与PHP 8.0兼容。 GitHub-31777, GitHub-826
colinmollenhour/php-redis-session-abstract
已更新至v1.4.4,以兼容PHP 8。 GitHub-32709
- 更正了中的制表符和空格无效组合
phpstan.neon
文件。 GitHub-31239
- 删除了过时属性的使用
$_isScopePrivate
整个代码库。 GitHub-30506
- 不再对页面布局进行硬编码
Magento\Widget\Block\Adminhtml\Widget\Instance\Edit\Chooser\Container
. 因此,getPageLayouts()
函数现在会按预期返回由不同模块声明的实际页面布局列表。 以前,只返回硬编码布局。 GitHub-31168
- 此
composer.lock
文件已更新至编码标准的最新版本。 GitHub-31152
- 添加了对的缺失依赖项
web-token/jwt-framework
打包到magento/module-jwt-framework-adapter
. GitHub-32578
- 被动侦听器已添加到
fotorama.js
库,以提高Lighthouse量度分数。 GitHub-31140
- Google Analytics模块的README.md文件已更新。 GitHub-32616
- Process Manager现在可以正确处理分支流程中的异常。 主进程现在退出,应用程序现在只显示一次错误消息。 此外,当分支进程中的异常被抛出到主进程时,现在可以处理这些异常。 以前,应用程序记录多个索引器故障并显示多个错误消息。 GitHub-30622
- 将插件添加到父类时,应用程序不再引发错误。 (此
optionsProvider
现在,参数声明于getContentIdentities
在Assest.php
.) 以前,应用程序引发此错误:Error: Cannot instantiate interface Magento\Framework\Data\OptionSourceInterface
. GitHub-31291
- 正在执行
Magento\Framework\Filesystem\Io\Ftp::ls()
现在,空文件夹上的会按预期返回空数组。 以前,应用程序引发此异常:Invalid argument supplied for foreach() in vendor/magento/framework/Filesystem/Io/Ftp.php…
. GitHub-31288
- 此
update
用于角色和规则的方法在中已标记为已弃用app/code/Magento/Authorization/Model/Role.php
. GitHub-30756
- SameSite Cookie参数的连接已得到纠正。 以前,不正确的连接会附加
lex
后缀至value
,domain
和其他参数。 GitHub-26377, GitHub-32440
allure-framework/allure-phpunit
已在整个代码库中升级到v1.3.1。 以前,应用程序显示以下错误:Warning: Use of undefined constant GLOB_BRACE - assumed 'GLOB_BRACE' (this will throw an Error in a future version of PHP) in /var/www/html/src/vendor/allure-framework/allure-phpunit/src/Yandex/Allure/Adapter/AllureAdapter.php:74.
GitHub-24635
- 应用程序现在会在运行错误时显示更多信息性错误
bin/magento
命令的生产模式。 以前,应用程序未显示错误消息或显示的消息缺少信息。 GitHub-32786
- 此
ArrayIterator
PHP对象已更新为可与PHP 7.4正常配合使用。 GitHub-32088
- 当客户尝试完成没有可用的装运承运人时的订单时,应用程序不再引发错误。 而是显示签出页面和以下消息:
Sorry, no quotes are available for this order at this time
. 以前,应用程序显示一个空白的结账页面,并在异常日志中记录此消息:array_keys() expects parameter 1 to be array, null given
. GitHub-30830
- 应用程序不再将每个Cookie记录为单独的上下文。 此
$_COOKIE
数组也已转换为字符串。 以前,由于每个Cookie都记录为单独的上下文,因此,当Cookie数量超过50时,应用程序会记录以下消息:Unable to send the cookie. Maximum number of cookies would be exceeded
. GitHub-31334
发票
- 在Admin中创建新发票时, 电子邮件副本 复选框现在可按预期使用。 以前,如果在中启用了发送发票电子邮件的全局设置,则会忽略该复选框 销售电子邮件. 它现在是一致的,其操作方式与发运和贷项通知单创建页面相同。 GitHub-28511
媒体集
bin/magento media-gallery:sync
现在,处理缺少XMP信息的PNG图像时,会按预期失败。
- 中的条目
catalog_product_entity_media_gallery
表会在删除相关产品时按预期删除。 GitHub-17727
- 启用JavaScript缩小后,现在可以在媒体集中更新图像详细信息。 以前,不保存图像详细信息,应用程序显示此错误:
TypeError: Cannot read property 'call' of undefined in jquery.validate
. GitHub-31633
MFTF
中介绍了新功能和MFTF核心错误修复 功能测试框架更改日志.
- 此
magento indexer:reindex
和cache:flush
命令和AdminReindexAndFlushCache
已从测试中删除操作组,以改善以下模块的执行:Bundle
,Catalog
,CatalogRule
,CatalogRuleConfigurable
,CatalogUrlRewrite
,Downloadable
,Indexer
,Paypal
、和Sales
. GitHub-31031
AdminSubmitCategoriesPopupActionGroup
已添加到测试中,以防止测试失败。 GitHub-31251
- 测试已重构为
StorefrontCheckQuickSearchStringActionGroup
和StorefrontAssertProductNameOnProductMainPageActionGroup
(现有操作组)。 GitHub-31251
重构的测试
为缩短执行时间,以下测试已重构:
AddOutOfStockProductToCompareListTest
AdminApplyTierPriceToProductWithPercentageDiscountTest
AdminCheckingCreditMemoTotalsTest
AdminCheckDashboardWithChartsTest
AdminConfigDefaultProductLayoutFromConfigurationSettingTest
AdminCreateInvoiceTest
AdminCreateOrderAddProductCheckboxTest
AdminMassOrdersCancelCompleteAndClosedTest
AdminMassOrdersCancelProcessingAndClosedTest
AdminMassOrdersHoldOnCompleteTest
AdminMassOrdersHoldOnPendingAndProcessingTest
(已弃用的替换 AdminMassOrdersHoldOnPendingAndProcessingTest
)
AdminMassOrdersUpdateCancelPendingOrderTest
AdminMassProductPriceUpdateTest
AdminMassUpdateProductAttributesMissingRequiredFieldTest
AdminOrdersReleaseInUnholdStatusTest
AdminPanelIsFrozenIfStorefrontIsOpenedViaCustomerViewTest
AdminSortingByWebsitesTest
AdminUpdateSimpleProduct
AdminUpdateSimpleProductWithRegularPriceInStockEnabledFlatTest
AdminValidateShippingTrackingNumberTest
CancelOrdersInOrderSalesReportTest
ProductsQtyReturnAfterOrderCancelTest
StorefrontConfigurableProductBasicInfoTest
操作组
在以下测试中,重复性操作已替换为操作组:
AdminCheckConfigurableProductPriceWithDisabledChildProductTest
AdminConfigurableProductCreateTest
AdminConfigurableProductRemoveAnOptionTest
AdminCreateProductDuplicateUrlkeyTest
AdminCreateSimpleProductNegativePriceTest
AdminCreateSimpleProductZeroPriceTest
AdminCreateVirtualProductFillingRequiredFieldsOnlyTest
AdminUpdateSimpleProductWithRegularPriceInStockDisabledProductTest
AdminUpdateSimpleProductWithRegularPriceInStockNotVisibleIndividuallyTest
AdminUpdateSimpleProductWithRegularPriceInStockVisibleInCatalogOnlyTest
新建操作组
AdminClearFiltersOnGridActionGroup
AdminClickAddNewPageOnPagesGridActionGroup
AdminClickInsertWidgetActionGroup
AdminClickRefundOfflineOnNewMemoPageActionGroup
AdminFillAccountInformationOnCreateOrderPageActionGroup
AdminGoToOrderStatusPageActionGroup
AdminOpenCMSPagesGridActionGroup
AdminSelectAttributeSetOnEditProductPageActionGroup
AssertAdminProductIsAssignedToCategoryActionGroup
(使用SKU过滤产品网格并单击第一行以缩短测试执行时间)
AssertLinkActionGroup
AssertStorefrontCartDiscountActionGroup
ClickPlaceOrderActionGroup
SaveCmsPageActionGroup
StorefrontAssertProductNameIsNotOnProductMainPageActionGroup
StorefrontGuestCheckoutProceedToPaymentStepActionGroup
StorefrontHoverProductOnCategoryPageActionGroup
StorefrontSelectCustomizeAndAddToTheCartButtonActionGroup
已删除操作组
- 已删除
CliIndexerReindexActionGroup
(或更改了值),以缩短Backend
,Bundle
,BundleImportExport
,Catalog
,CatalogRule
,CatalogSearch
,Checkout
,Downloadable
,Elasticsearch
,Elasticsearch6
,Indexer
,LayeredNavigation
,LoginAsCustomer
,Newsletter
,Sales
,SalesRule
,Search
,Store
,Swatches
,UrlRewrite
,Weee
、和Wishlist
模块。
- 已删除
CliCacheFlushActionGroup
从Catalog
,CatalogUrlRewrite
,Checkout
,Config
,ConfigurableProduct
,Contact
,Cookie
,CurrencySymbol
,Customer
,Downloadable
,Elasticsearch
,Elasticsearch6
,Fedex
,Indexer
,LayeredNavigation
,LoginAsCustomer
,Msrp
,Multishipping
,Sales
,Swatches
,Translation
,UrlRewrite
,Vault
,Weee
、和Wishlist
模块。
新闻稿
- 应用程序不再向在新闻稿队列创建和新闻稿发送之间的时间段内取消订阅新闻稿的客户发送新闻稿电子邮件。 GitHub-32116
- 应用程序现在执行新闻稿启用设置(商店 > 设置 > 配置 > 客户 > 新闻稿 > 常规选项)。 以前,这些设置始终从多存储部署的默认范围中检索。 GitHub-31188
- REST调用GET
/V1/customers/search
现在,会为订阅了多个新闻通讯的客户返回正确的信息。 GitHub-31168
- 已从新闻稿插件中删除缓存订阅状态。 GitHub-19345
订购
- 现在,在为部分开票的订单将商店贷项返回客户帐户时,应用产品可以正确计算已开票的客户余额。
- 现在,应用程序在保存已退款的客户余额时,会按预期保存修改后的订单。 GitHub-393
支付方式
- 该应用程序现在呈现以下位置的付款块:
frontend
无论发送电子邮件的区域如何。 (当前区域现在模拟为frontend
在呈现付款块之前。) 以前,在发送电子邮件的区域中呈现付款块。 因此,无论销售电子邮件是从管理员还是由REST API触发,资产的URL都会尝试从错误的区域(webapi_rest
或adminhtml
)。
- 应用程序现在将可下载产品的链接发送到结账时指定的电子邮件地址。 以前,当访客购物者使用PayPal Express结帐并输入不同的电子邮件地址来提交订单和结帐时,应用程序将可下载的产品链接发送到第一个地址。
- 现在,在支持多种货币的部署中,此应用产品将在“付款方法”页上显示可用商店贷项的准确值。
- 当来宾购物者在结帐期间将订单的送货地址更改为其他国家/地区时,付款方法列表现在会按预期更新。 以前,更改账单地址不会触发可能付款方法的更新。
PayPal
- 购物者现在可以成功结帐PayPal Payflow Pro订单,该订单的送货地址包含特殊字符。 以前,应用程序拒绝支付这些订单。
- 现在,使用PayPal成功付款后,购物者将被重定向回订单成功页面。 以前,由于会话数据丢失,购物者被重定向到空白页面。
性能
- 大目录上的管理员SKU搜索性能已得到改进。 查询优化器提示现在强制在查询执行期间使用索引。
- 性能
catalog_product_alert
cron
在大表(数百万行)上运行的进程已得到改进。 以前,catalog_product_alert
已加载所有产品警报,这会导致内存不足异常。
- 当仅需要一个编辑页面呈现管理员表单时,应用程序不再加载所有CMS页面。 这些页面现在加载得更快。 GitHub-30936
-
中的数值
WHERE IN
现在,表达式将转换为数字,而不是字符串,这可以提高某些版本的MariaDB中的查询性能。 GitHub-31135 -
此
use_application_lock
模式允许您通过使用环境变量或通过配置app/etc/env.php
文件。 启用此模式后,在失败后不再需要手动重置索引器。 如果未启用此模式,则在失败后必须手动重置索引器。 请参阅 对重新索引进程使用应用程序锁定模式.
定价
- 现在,当购物者更新店面的产品数量时,应用程序会使用分组价格正确更新产品的价格。 GitHub-32669
- 现在,当为产品分配了层价格并且分配了层价格时,可以保存捆绑产品。
Magento\Framework\Api\ExtensibleDataObjectConverter
用于转换产品数据。 以前,当Magento\Framework\Api\ExtensibleDataObjectConverter
用于在保存产品时将产品数据转换为数组,但应用程序未保存该产品并显示以下错误:Notice: Undefined index: price in app/code/Magento/Catalog/Model/Product/Type/Price.php on line 382.
- 计划价格更新现在应用于购物车中已有的产品。 GitHub-356
- 现在,当启用数量递增并且小数库存小于1时,将按预期对产品应用层价格。 以前,最低层价格数量设置为1。
产品视频
- 您现在可以使用 添加视频 按钮(管理员) 目录 > 产品)以连续添加多个视频。 以前,视频字段保留上一个视频的详细信息。
- 现在,在移动设备上,产品页面上的产品视频进入全屏模式可正常工作。 以前,进入全屏模式会导致视频在退出全屏模式之前暂停。
- 导航箭头按钮(下一个 和 上一页)现在按预期显示在店面产品视频中。
- 商家现在可以使用 插入视频 按钮进行修改。 以前,应用程序显示404错误。 GitHub-31753
引用
- 此
/V1/guest-carts/examplecartid/items
现在,调用会返回所请求的存储视图。 以前,它返回存储中的第一个存储视图,而不是请求的视图。
- 现在可以配置发票发送。 以前,无法配置发票发送,应用程序始终会在发票创建后发送发票。 发票和订单电子邮件均在一个观察者的范围内发送。 现在,由单独的观察者管理订单电子邮件和发票电子邮件的发送。 GitHub-27656
报告
- 现在,所有系统报表都可以在Adobe Commerce on cloud infrastructure项目中查看和下载。 以前,您无法下载日志、数据、设计或商店的系统报表。
- 上次审查日期管理员 报表 > 审核 > 按产品 现在显示正确的审阅日期。 以前,应用程序显示的是产品创建日期,而不是审阅日期。
退货授权(RMA)
- RMA
resolution
当属性字段值为时,属性不再显示为必需required
设置为 否.
- 您现在可以从管理员中选择多个退货订单。 以前,应用程序在您单击时抛出错误 提交 在选择多个返回项并从“操作”下拉菜单中选择“关闭”后。
- 使用REST API更改返回的状态后,应用程序现在会按预期向客户发送电子邮件通知。
- 现在,应用程序会根据管理员客户返回网格中的筛选值来筛选记录。 以前,应用程序会将您定向到“管理所有客户”页面,然后单击 重置筛选器 按钮已重定向至此页面。 GitHub-436
审核
- 现在,可以在“我的帐户”页面的“审核详细信息”部分中正确计算产品审核评等星级。
- 产品审核详细信息页面的平均产品评级和产品评级部分现在可以正确呈现。 以前,当应用程序计算店面评级时,审核ID未设置,并且产品审核模板未正确呈现。
- 此 成为第一个查看此产品的用户 在管理员批准审核后,链接现在会按预期更改为审核计数。
- 管理员现在可以按预期在产品编辑页面的产品审核分区上对产品审核进行排序。 GitHub-30270
- 现在,在管理员批准并保存来自与存储区不同的域的审阅后,使用正确的存储ID保存审阅。 GitHub-17510
奖励
- 现在,商家可以在将下订单的客户从系统中移除后,使用奖励积分取消全部或部分下订单的订单。
- 商家现在可以从购物车价格规则中删除奖励积分。 以前,当商家尝试设置 奖励点数 在创建购物车价格规则时更改为0,则保留奖励点数量的上一个值。
- 当管理员批准多个审阅时,产品审阅的奖励积分现在与相关网站关联 营销 > 待处理审阅 网格。 以前,奖励积分不会显示在店面上,也不会链接到管理员中的相关网站。
- 当购物者使用多个地址结帐时,应用程序现在会更新付款方式列表,或者检查或取消检查 商店积分(奖励积分) 选项。
销售
- 管理员用户现在可以在以下时段为缺货商品下单: 允许延期交货 设置已启用(商店 > 配置 > 目录 > 库存 > 产品股票期权)。 以前,应用程序会引发错误。
- 当姓氏以空格结尾时,购物者现在可以在“订单和退货”页面上找到订单。
- 现在,当分配了100%折扣的购物车价格规则应用于同时需缴纳目录产品和折扣税且符合免运费条件的订单时,系统会使用正确的总计创建发票。 以前,订单价格正确,但发票不正确。 GitHub-30853
- 现在,按日期过滤订单可返回准确的结果。 以前,当您按订单日期过滤订单时,应用程序不会返回在00:00 UTC之后下达的订单。
- 在以下情况下,贷项通知单网格现在显示正确的货币符号: 网站 范围用于 价格 属性进行存储。
- 重新加载“管理员创建新订单”页面后,付款方法单选按钮在结账工作流的“付款和送货信息”部分上不再消失。 GitHub-32106
- 现在,阿拉伯文本在发票中正确显示。
- 现在,应用产品将正确地计算基于将PayPal Payment Pro部署为付款网关的商店中订单或发票的贷项通知单的部分贷项通知单税总额。 以前,对于具有多张发票的订单,应用产品会应用该订单的全部税,以便在贷项通知单中取消部分发票。
- 应用程序在向客户发送新订单电子邮件时不再造成随机数据库死锁。 以前,发生死锁是因为应用程序保存了整个对象及其相关对象,而不是更新的SQL列。 应用程序显示此类型的错误:
SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction
. GitHub-31090
- 店面订单详细信息页面现在显示正确的已发运产品数量。 以前,产品数量不正确,因为已呈现“订单发运”页的模板 装运数量 作为
int
. 此任务已更改为float
.
- 在以下情况下,应用产品不再通过电子邮件发送订单发票的副本: 发票的电子邮件副本 按钮未选中。 以前,应用程序向发送电子邮件 客户 和 将发票电子邮件副本发送至. GitHub-28511
- 从管理员为现有客户创建新订单时,应用产品不再为客户帐户创建重复的地址条目。 此 保存在通讯簿中 复选框已重命名为 添加到通讯簿 在管理员中,和现在默认处于未选中状态。
- 该应用程序现在使用已上传到 HTML打印视图的徽标 购物者从其帐户打印订单时的设置。 以前,应用程序显示LUMA徽标,而不是上传的徽标。
- 现在,当项目数超过20时,店面上的订单项目分页程序将按预期工作。 以前,传呼机会考虑子产品,因此总计数不正确。
- 现在,应用程序在“订单”页和“贷项通知单”页网格上显示小计值、发运值和处理值的正确货币符号。 GitHub-22662
- 使用Safari的管理员现在可以从管理员处成功将产品添加到订单。 以前,当管理员单击 将所选产品添加到订单 按钮时,应用程序显示旋转加载图标,页面挂起。 GitHub-30265
销售规则
- 该应用程序现在通过以下方式应用购物车价格规则 最大数量折扣应用于 或 折扣数量步骤(购买X) 将多个购物车价格规则应用于购物车时条件正确。 以前,如果购物车价格规则包含 最大数量折扣应用于 或 折扣数量步骤(购买X) 在另一个购物车价格规则之后应用,总折扣减少到为配置的值 最大数量折扣应用于 或 折扣数量步骤(购买X) 乘以产品价格。
- 现在,优惠券报表可准确反映实施拆分数据库的部署中的优惠券活动。
- 包含条件“类别”的购物车价格规则 不是 现在,可按预期应用于未分配给类别但分配了父产品的可配置子产品/简单产品。
- GraphQL
cart
现在,当优惠券应用于订单时,查询会返回购物车计费步骤的正确总计。
Search search-heading
- 类别页面不再包含这些重复的HTML元素ID:
modes-label
,mode-list
,toolbar-amount
,sorter
,limiter
.
- 部分单词搜索结果不再包含意外或不相关的匹配项,并且搜索会在店面和管理层产生一致的结果。 现在,该应用程序使用其他分析器(没有词干分析器)进行部分单词搜索。 以前,搜索结果显示的产品不包含搜索关键词。 (默认的分析器以前包含一个词干分析器,并且由于在搜索时使用该分析器进行部分单词搜索,因此搜索结果可能会产生意外或不相关的匹配。)
- 现在,如果搜索查询包含多个词并且产品名称配置为不可搜索,则快速搜索会返回结果。 以前,如果产品名称配置为不可搜索,则应用程序会对包含多个单词的搜索查询引发查询异常。
- 搜索结果现在包括
weight
属性配置为可搜索时,该属性会按预期显示。
- 当您查看启用了Elasticsearch的空类别页时,应用程序不再引发错误。 相反,它按预期呈现页面并显示信息性消息。 以前,空的全文索引会在类别页面上触发异常。
- 如果购物者在开始搜索后单击搜索字段之外的内容,搜索字段自动完成功能现在会按预期工作。 现在,当购物者继续键入时,自动完成建议会重新显示。 以前,应用程序不显示自动完成建议,并且单击搜索框不会使搜索建议再次可见(尽管键入其他字母显示了)。
- 现在,在高级搜索中根据其完整或部分SKU搜索产品会返回预期的产品。
- 分层导航筛选器现在可显示准确的产品计数。 以前,Elasticsearch中的产品计数值不是按目录权限过滤的。
- 当ElasticsearchURL页面参数超出分页范围时,类别不再引发错误。 GitHub-23843
- 您现在可以将自定义Elasticsearch字段映射器添加到
Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\Resolver\CompositeResolver
. GitHub-24350
- 开发人员现在可以更改Elasticsearch映射。 以前,在默认映射中发送到Elasticsearch服务器的动态模板进行硬编码,这会阻止开发人员在Elasticsearch中索引与自定义模块关联的任何额外数据。 GitHub-24363
- 禁用搜索建议后,搜索字段(表单微搜索)现在可按预期工作。 GitHub-30584
配送
- 现在,当购物者在结帐期间删除具有多个地址的产品后导航回购物车页面时,应用程序会按预期更新配送价格。
- 现在,当购物车中的某些项目符合免费配送条件时,应用程序会显示正确的调整后配送价格。 以前,当购物车中的部分项目符合免费配送条件时,应用程序不会调整配送价格并向购物者显示完整配送价格。
- 仅限特定网站的管理员现在可以为同一网站上下达的订单创建装运。 以前,当缺少默认存储视图权限的管理员尝试发送在管理员有权访问的存储视图中的订单时,应用程序会引发此异常:
Notice: Undefined offset: 1 in /app/code/Magento/Catalog/Model/Product/Attribute/Backend/GroupPrice/AbstractGroupPrice.php on line 293
.
- 现在,在确定订单是否满足免费DHL发运条件时,应用产品将考虑相关的购物车价格规则折扣。
- 现在,对于支持多种货币的商店,如果以非基本货币下达订单,则装运标签会按预期使用基本货币,而不是订单货币。 GitHub-31891
- 现在,当购物者在离开多配送页面后在结帐期间返回购物车页面时,应用程序会显示正确的订单小计。 GitHub-31889
- 在管理员订单创建期间编辑帐单信息不再更改具有不同默认发运和帐单地址的客户的发运信息。 GitHub-31786
- 应用程序不再取消选中 附加注释 购物者单击时的复选框 获取配送方式和费率 并在从管理员创建订单时选择配送方式。 GitHub-30256
- 购物者现在可以使用“返回”浏览器按钮返回到“选择配送方式”页面,同时结帐具有多个地址的订单。 以前,应用程序显示损坏的“选择送货方法”页面。 GitHub-30268
- 现在,在购物者更改“收货地址”页上的数量并单击浏览器的“返回”按钮后,产品数量将保持不变。 GitHub-31956
- 在结帐期间应用购物车价格规则时,统一费率配送方式费用不再为零。 GitHub-21832
- 当商家尝试使用DHL发送订单时, 创建配送标签 复选框已启用,并且产品名称包含unicode字符。 以前,应用程序在请求创建标签时显示此错误:
The response is in wrong format
. GitHub-31032
- 您可以在多站点部署中成功向管理员下单,其中
United States
在一个网站上启用,并且Disable all countries
启用为其他网站上的默认范围。 以前,应用程序不会下订单并显示以下错误:Please check the shipping address information. "regionId" is required. Enter and try again
. GitHub-30577
暂存
- 计划块更新功能现在可在实施Fastly的部署中按预期工作。 以前,应用程序不更新块内容,因为Fastly缓存标记未失效,并且Fastly继续提供过时的内容。
- 现在,当购物车价格规则暂存预览分配给多个网站商店视图时,该预览会加载到相应的网站中。 以前,购物车价格规则暂存预览加载到默认商店视图中,与分配的网站无关。
- 在计划的更新结束后,非默认商店视图中的产品特殊价格现在会按预期设置为默认值。
- 商户现在可以在创建包含结束日期的未来暂存更新后,从可下载产品页面成功保存包含链接示例的可下载产品。 以前,应用程序不会保存产品并显示以下消息:
The downloadable sample isn't related to the product. Verify the link and try again
. GitHub-488
- 在预览类别的计划更新期间,应用程序不再执行包括所有产品ID的大型数据库查询。 相反,类别过滤器将应用于产品收藏集,以创建一个临时表用于类别的暂存预览。 以前,应用程序将所有产品插入临时表中以进行暂存预览,这会降低性能。
- 此
Magento_SalesRuleStaging
从2.3.x升级期间,模块不再触发错误。
- 现在,当您查看计划更新时,应用程序会显示包含正确数据的目录规则条件。 以前,如果您查看使用条件创建的计划更新,则应用程序不会显示包含不正确数据的条件或显示的条件。
- 此 使用默认值 在更新之前取消选中计划的更新后,产品的复选框保持选中状态。
- 现在,目录价格规则可按预期应用于具有未定义属性值的产品。 以前,通过目录价格规则创建的折扣不会应用于具有未定义属性的产品。 GitHub-461
- 现在,在具有位于不同时区的商店的多网站部署中,目录规则可按预期工作。 以前,应用程序会一次性在所有网站上应用或停用目录规则。
- 在为特定网站创建计划更新时,不再删除层价格。
- 现在,在创建包含结束日期的将来暂存更新后,您可以从可下载产品页面中保存产品。 以前,应用程序不会保存产品并显示以下消息:
The downloadable link isn't related to the product. Verify the link and try again
. GitHub-474
存储
- 应用程序不再处理
0
作为空值。 以前,应用程序将请求路径开头的整数值视为存储ID,这会对SEO产生意想不到的影响。
- 插件
\Magento\Framework\App\ActionInterface
下lib/internal/Magento/Framework/App/Action/Plugin
已删除,以符合以下准则:应使用插件自定义来自另一个模块的一个模块的行为。 GitHub-28050
- 现在,当您尝试选择时,应用程序会显示此消息
Website
默认为Store View
在网站创建期间被禁用:Please enable your Store View before using this Web Site as Default
. 以前,网站崩溃,应用程序不显示警报。
税金
- 现在,应用产品会在验证最小订单金额时考虑隐藏税额。
- 现在,当购物者导航回其购物车并在将捆绑产品添加到购物车后继续结帐时,应用程序会按预期显示固定产品税(FPT)。 GitHub-30250
- 应用程序现在会预填充 增值税号 管理员为现有客户创建订单时,在管理员新订单页的“地址信息”部分(具有已保存的VAT编号)的计费地址和送货地址的输入字段。 GitHub-31846
- 应用程序现在显示 增值税号 字段,其位于
customer/create_account/vat_frontend_visibility
已启用。 GitHub-31326
测试
- 测试环境已升级到Redis 6.0.12。
- 已删除
CacheCleaner::cleanAll();
来自集成测试。 GitHub-31074
- 添加了针对此方案的测试:当客户订阅排队的新闻稿时,管理员用户可以编辑客户帐户。 GitHub-30645
- 已删除
cache:flush
测试中的命令,以缩短Catalog
,CatalogUrlRewrite
、和LoginAsCustomer
模块。 GitHub-31056
- 删除了冗余参数,并将POST更改为中需要的GET
\Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShipping
.
主题
- 在以下情况下,客户登录页面不再显示此消息: 将JS代码移至页面底部 设置(存储 > 配置 > 前进 > 开发人员 > JavaScript设置)和Cookie均已启用:
The store will not work correctly in the case when cookies are disabled
.
- 标头中的帐户链接现在遵循WCAG标准。 以前,标头中的帐户链接包含重复的ID,这会导致WCAG验证失败。
- 应用程序现在优先处理商店徽标图像的商店配置而不是布局配置。 以前,徽标图像的大小是固定的,不会因商店而异。
- 该应用程序现在在使用标准Adobe Commerce主题的店面页面上显示一致的页面元素。 以前,并非所有样式都应用于空白主题,因此使用此主题的页面中并非显示所有页面元素。 (例如,“我的订单”页面搜索字段中不存在放大镜图标。)
翻译和区域设置
- 配置内联翻译后,添加到字符串的括号将不再转义。 以前,
escapeHtmlAttr
方法将方括号转换为HTML实体代码。 GitHub-32000
- 管理员中无法翻译的短语现在可翻译。 (此拉取请求有助于持续努力将所有管理员字符串本地化。) GitHub-11175
- 模板中用于管理存储的付款方法的文本字符串(我的帐户 > 存储的支付方式 )现在可翻译。 GitHub-31211
- 现在,从管理员处发送排序电子邮件时,使用商店区域设置,而不是与管理员帐户关联的区域设置。 GitHub-26521
UI
- 管理员页脚现在显示正确的产品版本。
- 现在,在管理装运创建期间,源的分页已按预期显示。
- 现在,当您使用自定义日期属性过滤产品时,产品网格过滤器可正常工作;管理员用户区域设置为
en_GB
.
- 现在,在iOS设备上的产品页面图像库放大镜中,捏合以缩放手势可以按预期工作。
- 现在,按预期对每个搜索从第1页开始对管理员产品网格搜索结果进行分页。
- 已解决缩放时购物车显示的异常。 以前,缩放此页面时显示元素重叠。
- 与管理员邀请页面(管理员)上的选项卡存在对齐问题 营销 > 私人销售 > 邀请)已解决。 以前,客户接受的邀请的选项卡显示未对齐。 GitHub-333
- 使用PayPal Express签出时显示的订单审核页面现在已成功加载。 以前,模板包含未使用的 更新投放方法 按钮,在页面渲染期间,该按钮仅被脚本部分隐藏。 GitHub-32006
- 现在,当存在冗长的评级名称时,产品页面的“客户审核”部分中的评级星级和审核文本之间的间距可以适当设置。 GitHub-31890
- 现在,选项会按预期显示在“存档发票”、“发运”和“贷项通知单”页的“活动”下拉列表中。
- 现在,应用程序在以下情况下显示正确的时间值
datetime
组件timeOnly
选项设置为 是. GitHub-23157
- 在Admin上创建新构件后,您现在可以删除布局更新 内容 > 小组件. GitHub-29936
- 此 删除布局更新 按钮现在可以按预期方式用于您从管理员添加的任何布局 内容 > 小组件. 以前,在添加多个布局时,此按钮不适用于除第一个选定布局之外的任何其他布局。 GitHub-30286
- 应用程序现在使用在布局文件中设置的页面标题作为客户帐户编辑文件的浏览器页面标题。 以前,
Magento\Customer\Controller\Account\Edit
控制器操作强制将页面标题值设置为Account Information
. GitHub-30724
-
这些页面中新增了复选框,允许商家在显示和隐藏密码之间进行切换:
- 客户登录
- 客户注册
- 客户编辑(“更改密码”部分)
- 客户设置新密码 GitHub-31557
- 删除了网格单元格中多余的标题,管理员在更改属性集后将产品添加到分组产品集时会显示该标题。 GitHub-30911
- 应用程序现在显示
DateRange
在的登录区域进行筛选 客户 > 登录 页面。 以前,应用程序显示Text
筛选。 GitHub-30328
- 已从模板文件中删除JavaScript,并将其移动到单独的文件中,以减少管理员页面上的渲染问题。 以前,在启用了HTML缩小的部署中,管理员页面无法正确呈现。 应用程序显示此错误:
An error has happened during application run. See exception log for details
. GitHub-32454
- 此
dropdownDialog
构件现在仅加载可拖动和可调整大小的构件jquery-ui
大块。 以前,它加载了大量不必要的代码,这会增加加载时间并降低性能。 GitHub-32810
URL重写
- 在通过批量更新将产品分配给网站后,现在可按预期生成多站点部署中特定网站的产品URL重写。
- 在以下情况下,应用程序现在可以正确生成子类别的URL路径: 使用默认值 已为父类别启用URL键的复选框。 以前,在层次结构中移动类别会导致错误
url_path
在多存储视图部署中使用不同的URL键时的值。 GitHub-16202
- 应用程序现在会更新
url_path
在类别层次结构中移动类别时,分配给所有商店范围的类别。 以前,在层次结构中移动类别会导致错误url_path
.
- 现在,使用自定义URL从管理员创建的URL重定向可成功运行。 以前,GraphQL缓存来自GraphQL的响应
urlResolver
查询并在URL重写更新后返回旧值。
- 现在,从网站中删除产品时,产品URL重写会按预期删除。 GitHub-24184
- 添加了
main_table
参考store_id
在addStoreFilter
的功能app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php
收藏集。 以前,每当出现join
添加到收藏集,该收藏集还包含store_id
列。 GitHub-31853
- 此
PUT /V1/products/:sku
REST端点现在会按预期重新生成产品URL重写。 以前,端点会重新生成产品url_key
值,而不是URL重写。 GitHub-30316
用户
- 您现在可以保存有效的新用户角色(管理员) 系统 > 权限 > 用户角色)和整个
Catalog
已选择树排除Edit Product Design
( 目录 > 库存 > 产品 > 编辑产品设计)。 以前,应用程序不保存此角色中的用户所做的产品更改,而是显示以下错误:Not allowed to edit the product's design attributes
. GitHub-31973
- 现在,在为新管理员生成电子邮件时,应用程序使用正确的自定义电子邮件模板。 以前,应用程序使用旧的默认模板,该模板省略了管理员的名字和姓氏。
- 现在,应用程序在给新用户发送电子邮件时,会使用正确的电子邮件模板。 以前,即使选择了自定义模板,应用程序也会使用默认模板。
VersionCMS
- 现在,在更改版面后,应用程序会将正确的主题应用到CMS页面。 以前,无论为页面分配了哪个主题,应用程序都会在您保存布局更改后将分配的主题更改为Luma。
- 现在,具有受限角色的管理员可以成功添加、更新或复制他有权访问的已分配给层次结构节点的页面。 以前,应用程序在这些情况下抛出致命错误。
视频
- 现在,在启用和使用高级JavaScript捆绑时,产品库中会按预期显示视频。 GitHub-32501
- 现在,属于可配置产品的简单产品的YouTube视频可按预期工作。 以前,图像是按ID而不是位置排序的。 因此,有些视频被视为图像。 GitHub-29690
Visual Merchandiser
- 通过可视化促销器加载“管理员”类别页面的性能已得到改进。 加载管理员类别页面不再生成大型数据库查询。
Web API框架
- 目录API现在可通过添加新值和删除旧值来正确更新产品的自定义选项值。 以前,API不会删除旧值。
- POST
/V1/guest-carts/:cartId/billing-address
现在以整数而不是字符串的形式返回地址ID。
网站限制
- 现在,购物者会被重定向到他们试图访问的页面,然后才会被提示登录。 以前,在启用了网站限制并将限制模式设置为的部署中 私人销售:仅登录,购物者被重定向到商店主页。
构件
- 管理员现在可以删除小部件的所有布局更新。 以前,当小部件多次更新布局时,管理员只能删除第一次更新。
- 单击 添加到购物车 产品小组件上的按钮不再导致页面重新加载。 之前,单击 添加到购物车 产品小组件上的按钮导致当前页面在产品添加到购物车之前重新加载。
- 现在,当TinyMCE中的CMS层次结构节点链接小组件在 锚点自定义文本 字段为空。
愿望清单
- 当您单击 编辑项目 愿望清单中产品的按钮。 GitHub-32119
- 现在,当您使用愿望清单中的可自定义文件选项更新产品时,应用程序会显示正确的产品价格。 以前,应用程序显示错误的产品价格,并且不显示指向上传文件的链接。
- 对于具有多个愿望清单的客户,愿望清单中的产品总数现在与愿望清单中的项目数匹配。 以前,缺货产品包含在产品总数中。
- 现在,应用程序在将产品添加到订单后,会将其从愿望列表中删除。 GitHub-30260
- 现在,购物者可以从愿望清单中将相关产品添加到购物车中。 以前,当购物者单击 全选 相关产品部分的链接。 GitHub-32274
已知问题
问题: 禁用reCAPTCHA时出现JavaScript错误. 如果为签出禁用reCAPTCHA,则签出会继续进行,但应用程序会显示 Uncaught TypeError
控制台日志中出错。 此问题将在以后的版本中修复。
问题: 内容安全策略错误. 店面在控制台日志中显示以下错误: The Content-Security-Policy directive frame-ancestors does not support the source expression unsafe-inline
. 店面性能不受影响。
问题: 礼品卡金额的PayPal信用卡显示异常. 启用PayPal信用并配置多个礼品卡金额时,如果购物者更改礼品卡价值的金额,店面不会更新分期付款的金额。 此问题的修复将包含在Adobe Commerce 2.4.4和Magento Open Source2.4.4中。
问题: 此 添加到订单 按钮不适用于通过SKU添加到购物车的产品. 当您单击 添加到订单 按SKU将产品添加到订单后的按钮: An error has happened during application run
. 产品不会添加到购物车。 解决方法:使用添加产品功能。
问题:GraphQL category
和 categoryList
查询忽略用于确定共享目录中的类别是隐藏还是公开的类别权限。 店面当前显示已分配给共享目录或未分配给共享目录的所有类别。 这会影响实施已启用B2B共享目录的PWA店面的Adobe Commerce 2.4.3部署。
社区贡献
我们感谢更广泛的Magento Open Source界,并感谢他们为这一版本做出的贡献。
社区工程团队 Magento参与者 按月、季度和年维护最佳贡献个人和合作伙伴的列表。 从该参与者页面,您可以单击链接以转到GitHub上其合并的PR。
合作伙伴投稿
下表列出了合作伙伴所做的贡献。 此表列出了提出拉取请求的合作伙伴、外部拉取请求以及与其关联的GitHub问题编号(如果可用)。
个人贡献者
下表列出了来自社区成员的贡献。 此表列出了外部拉取请求、与其关联的GitHub问题编号(如果可用)以及参与拉取请求的社区成员。
系统要求
我们的技术栈栈是基于PHP和MySQL构建的。 有关更多信息,请参阅 系统要求.
安装和升级说明
您可以使用安装Adobe Commerce 2.4.3 Composer.
迁移工具包
Data Migration Tool可帮助将现有Magento1.x存储数据转移到Magento2.x。此命令行界面包括验证、进度跟踪、日志记录和测试功能。 有关安装说明,请参阅 安装数据迁移工具. 考虑探索或参与 数据迁移存储库.
此 代码迁移工具包 帮助将现有Magento1.x存储扩展和自定义项传输到Magento2.x。命令行界面包括用于转换Magento1.x模块和布局的脚本。