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安全公告。
其他安全增强功能
此版本的安全改进改进了与最新安全最佳实践的符合性,包括:
-
新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的部署现在支持 PayPal Pay Later。 此功能允许购物者以每两周一次分期付款的方式支付订单,而不是在购买时支付全额。
新use_application_lock
索引模式。 use_application_lock
模式允许您通过使用环境变量或通过配置app/etc/env.php
文件来启用重新索引。 启用此模式后,在失败后不再需要手动重置索引器。 请参阅对重新索引进程使用应用程序锁定模式。
平台增强功能
版本2.4.3尚未与PHP 8.x兼容,但下面的平台升级使我们更接近将来与PHP 8.x兼容的程度。
-
核心编辑器依赖项和第三方库已升级到与PHP 8.x兼容的最新版本。
-
KnokoutJS库已升级到v3.5.1(最新版本)。
-
已弃用的TinyMCE v3库已删除。 已从Adobe Commerce中删除与TinyMCE v3.x相关的
Magento_Tinymce3Banner
模块和MFTF测试。 -
版本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提供支持的实时搜索通过使用人工智能和机器学习算法来对汇总的访客数据进行深入分析,提供了直观的搜索体验。 请参阅实时搜索发行说明。
GraphQL
此版本添加了GraphQL对以下功能的支持:
-
共享目录
-
愿望清单。 addWishlistItemsToCart突变将项目从指定的愿望清单移至客户的购物车。
-
礼品登记簿。 涵盖的任务包括:
-
可协商的引号。 查看
negotiableQuote
和negotiableQuotes
查询。新的突变包括:
-
共享路由。 路由查询和RoutableInterface支持产品、类别和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-toolSlack渠道,获得Adobe产品团队和社区的支持,并帮助指导该工具的未来方向。
Cloud managed services更新
此版本包括我们对Amazon简单存储服务(AWS S3)和Amazon Aurora云托管服务的支持的增强功能。 它为AWS ElastiCache、AWSElasticsearch和AWS Managed Queues (Rabbit MQ)提供认证支持。 (我们已测试这些服务与Adobe Commerce的功能、性能和集成。)
Adobe Stock集成
此版本包括Adobe Stock集成v2.1.1。
供应商开发的扩展
有关此版本的功能和更改的更新,请参阅以下主题:
已修复的问题
我们已经修复了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 Cluster上运行的部署现在支持更多客户。 GitHub-31038
- 当应用程序安装有
—use-rewrites=0
选项或在core_config_data_table
中将web/seo/use_rewrites
设置为0时,管理员现在可以成功登录到部署。 GitHub-32100
- 已更新
AsyncCssPlugin
的sortOrder
加载。 应用程序现在在JsFooterPlugin
之前加载AsyncCssPlugin
。 GitHub-30882
Magento\Config\Model\Config\PathValidator
现在检查显示路径以确定元素是否存在,如果它有配置路径,则使用config.xml
路径进行验证。 GitHub-27678
- 使用 Grunt 或服务器端编译编译更少的文件现在会产生相同的结果。 以前。
.abs- styles
,其中扩展了其他.abs- styles
_extends.less
,在使用 Grunt 编译时未正确输出。 这导致了生产和开发部署之间的差异。 GitHub-7231
AdminGWS
- 管理员GWS现在为具有自定义权限的管理员在管理员集合中使用
website_id
SQL条件的int
值。
Adobe Stock集成
- 当 API密钥(客户端ID) 和 客户端密钥 未设置时,应用程序现在在“搜索Adobe Stock”页面上显示信息性消息以及指向管理员 商店 > 配置 > 高级 > 系统 的链接。 以前,应用程序显示此错误:
We couldn't find any records
且没有链接。
后端
- 具有受限访问权限(例如,仅为一个网站分配了访问权限)的管理员无法再编辑设置为全局范围的类别。
- 生成的系统报告(系统 > 支持 > 系统报告)现在已正确呈现。 以前,报表内容未对齐。
- 在创建捆绑产品期间启用 动态价格 设置时,应用程序现在会按预期关闭 价格 字段的验证。 以前,启用 动态价格 设置后,当您从 价格 字段中移除值时,应用程序会引发验证错误。 GitHub-26214
- 当管理员URL与部署中的默认网站URL不同时(在该部署中,应用程序配置为可从两个URL访问),不再发生无限重定向。
捆绑产品
- 您现在可以使用
addProductsToCart
突变将具有多个复选框选项的捆绑产品添加到购物车。
- 现在,使用临时表执行捆绑产品的价格索引,从而避免锁定数据库表。 以前,应用程序使用物理表,这会导致表被锁定。
- 捆绑项目的价格现在可以设置为0.00。以前,在将价格设置为0.00之后返回到编辑页面时,价格会返回到其默认值。 GitHub-32383
- 现在,如果价格在订单下达之前发生了更改,则包含捆绑产品的订单的订单详细信息会显示捆绑产品的正确价格。
- 捆绑产品库存状态现在会根据其子产品的库存状态进行更新。 以前,当从产品中删除一个选件时,捆绑产品显示为缺货,并且捆绑产品具有两个SKU相同的选件。
- 将捆绑产品的
Shipment Type
属性移动到其他属性组后,管理员现在可以更改该属性的值。 以前,如果此属性被移动到属性集中默认组以外的属性组,则始终使用Together
值保存该属性。
- GraphQL
setGuestEmailOnCart
突变现在可以正确更新来宾电子邮件。 以前,不更新报价和报价地址表。
- 通过REST API调用向捆绑产品添加、删除或更新子产品现在会按预期触发重新索引。 以前,这些操作不会触发重新索引,因此,在执行手动重新索引之前,捆绑产品不会更改其库存状态。
- 该应用程序现在为具有分层价格的捆绑产品显示正确的价格范围。 GitHub-30284
- 现在,在捆绑包选项的价格发生更改后,应用程序会在购物车页面上以及结帐工作流的配送步骤中显示与预期相同的总价。
- 现在,您可以通过从客户购物车访问捆绑产品来成功配置捆绑产品。 以前,配置产品页面从未完全加载,并且您无法保存设置。
- 商家现在可以在多商店部署的每个商店视图上为捆绑产品指定唯一价格。 网站特定价格保存在
catalog_product_bundle_selection_price
表中。 以前,即使将 商店 > 配置 > 目录 > 目录 > 价格 > 目录价格范围 设置为Website
,应用程序也不会将捆绑产品的价格基于网站范围。catalog_product_bundle_selection_price
中未保存网站特定的价格。 GitHub-12584
- 禁用 动态定价 后,捆绑产品的发票现在会显示相关简单产品的正确数量。 以前,与捆绑产品关联的简单产品的数量是父产品的数量,而不是捆绑产品的数量)。 GitHub-30802
updateProductsInWishlist
突变现在已成功更新属于希望列表中的捆绑产品的项。 以前,此变异不会更新愿望清单项,而是删除该项并创建一个新项,从而更改了项ID。
- 在使用
POST /V1/product/:sku
端点创建或更新捆绑产品时,您现在可以按预期设置required_options
和has_options
捆绑属性。 以前,这些自定义属性设置为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请求中未指定属性,则属性值将保持不变。 以前,如果未指定属性,应用程序会将该属性值重置为其默认范围值。
- 当产品按SKU进行过滤时,管理产品网格(管理员 目录 > 产品)现在显示正确的产品计数。
- 现在,在启用了类别权限的情况下将产品添加到CMS页面时,应用程序可显示准确的库存状态,并且阻止显示指定客户组的价格。 以前,所有产品都显示为缺货,而不管实际库存状态如何。
- 现在,“高级定价客户组价格”批价格输入字段的最小宽度为5位数。 以前,在低分辨率显示屏上,此字段中只显示两个符号。
- 现在,应用程序在删除产品后成功删除产品媒体映像。 以前,成功删除产品后,产品媒体图像会保留在文件夹中。
- 当您在“管理员”中创建或编辑产品,然后创建“计划设计更新”时,页面布局现在会按预期更新。 GitHub-32007
- 值为零的自定义产品属性现在可以成功保存为空白。 以前,应用程序不会将此值更新为空白。
- 自定义类别布局更新文件现在会按预期应用到产品。 以前,更新文件句柄(
catalog_category_view_*
)与产品句柄不匹配。 GitHub-27285
- 管理员产品列表的固定产品税(FPT)列已禁用排序。 以前,在对FPT列进行排序之后,无法重新加载“产品”页面。
- 现在,当匹配的产品在每个网站上的价格不同时,页面生成器产品小组件预览可按预期在多网站部署中工作。
- 使用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
- 管理员现在可以按SKU将具有两个或多个可自定义选项
(File)
的产品添加到订单。
- 当具有受限权限的管理员将产品小组件添加到管理员中的CMS页面时,应用程序不再引发错误。 以前,当管理员单击 保存 按钮时,应用程序引发此错误:
We are sorry, an error has occurred while generating the content
。
- 启用 使用JavaScript日历 后,产品详细信息页面现在会打开并显示填充了前一订单日期的可自定义日期选项。 现在,如果自定义日期选项值解析程序中的值未根据当前配置设置格式,则该值将回退到替代格式。 以前,自定义日期选项值为空。
- 现在,当产品缺货时,应用程序在购物车中仅显示一个错误。 以前,应用程序显示冗余消息。 GitHub-27469
- 管理员现在可以按SKU将带有可自定义选项
(File)
的产品添加到订单。 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页面保存控制器的错误处理。 以前,当在
cms_page_prepare_save
事件中抛出Error
对象时,应用程序将此对象传递给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)
- 内容安全策略现在支持通过
data: scheme
加载base64编码的图像和字体。
cron
- Cron清理查询已重构,以减少或消除以下性能问题:
cron
作业仍然卡在挂起状态,MySQL查询速度越来越慢,以及CPU使用率增加。 GitHub-26507
- 状态为
running
且已超过24小时的cronjobs
现在会自动更改为状态error
。 因此,该作业的新实例可以再次运行,并且当作业错误地仍设置为状态running
时,您无需手动更改作业状态。 以前,如果cronjob
停滞在状态running
中,应用程序会阻止启动同一作业的新实例,您必须手动更改作业状态。 GitHub-8933
cron
作业现在按预期完成,不会再引发此序列化错误:[Magento\Framework\DB\Adapter\DeadlockException]SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction, query was: DELETE FROM cron_schedule WHERE (status = 'missed') AND (job_code in ('indexer_reindex_all_invalid', 'indexer_update_all_views', 'indexer_clean_all_changelogs')) AND (created_at < '2018-09-28 18:32:28')
。 GitHub-18409
indexer_update_all_views
个cron作业在以前失败后现在按预期运行。 失败的运行在cron_schedule schedule
中标记为失败,后续运行不会自动失败。 以前,cron_schedule
表填入了挂起作业,并且indexer_update_all_views
cron作业未运行。 GitHub-23054
cron
不再发生死锁,因为cron
尝试在组重叠的大型部署中设置锁定。 GitHub-8933
- 只有几个
cron
作业运行后,cron_schedule
表上不再出现cron
死锁。 GitHub-22438
自定义客户属性
- 店面客户帐户通讯簿中的 状态 字段现在已作为加载,并且仍然是下拉页面元素。 现在,在完全加载所有页面元素之前,提交 按钮处于禁用状态。 以前,应用程序在将此字段作为下拉元素呈现之前将其加载为文本框,购物者可以在文本字段中输入并保存值,这稍后会导致结账期间出现错误。
- 现在,应用程序可在店面页面和管理员订单页面上正确显示自定义客户地址属性。 以前,地址信息部分中缺少下拉属性的选定选项,并且输入属性的值包含属性代码。 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
的路径格式不正确,带有double //。
- 该应用程序现在会按预期翻译“管理购物车”页面的所有可翻译字符串。 以前,翻译加载发生得太晚,并跳过所有订阅控制器操作预派单的观察者。 GitHub-31849
- 禁用 以客户身份登录 启用扩展设置后,“新建客户帐户”页面上的表单验证现在可以成功运行。 以前,应用程序引发JavaScript错误。
- 使用
bin/magento setup:db-schema:split-sales
移动数据库表现在按预期工作。 现在可以正确创建表并填充数据。 以前,由于检查表存在性不正确,应用程序在您运行bin/magento setup:db-schema:split-sales
时抛出SQLSTATE
错误。
ProcessManager
分支的子进程的异常处理已得到改进。 现在发生异常时,主进程将退出,并且只显示一次错误消息。 以前,会记录多个索引器故障并显示多条消息。 GitHub-30622
- 如果此区域文件的
di.xml
不包含已注册的插件,则不再为新自定义区域类型触发全局Adobe Commerce插件(例如webapi_rest
和graphql
)。
- 初始化期间发生的异常不再缓存,现在会触发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重写 设置设置为 No 时,应用程序现在返回404错误,购物者尝试访问不存在的类别路径。 以前,应用程序返回一个500错误,说明:
Trying to access array offset on value of type bool
。 GitHub-31984
- 您现在可以成功编辑使用属性集创建的产品,该属性集中的 设计组和计划设计更新 组已被删除。 以前,当您尝试编辑根据该属性集创建的产品时,应用程序会引发致命错误。 GitHub-44
nowdoc
已替换Magento_Backend
存储切换器中的heredoc
。 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
- 当由
user_id
筛选Magento\Users\Model\ResourceModel\Users\Collection
时,应用程序不再抛出SQL异常。 GitHub-31216
礼品卡
- 取消礼品卡后,未决付款费用现在会按预期从礼品卡中删除。 以前,删除礼品卡后运行
cron
时,应用程序会引发错误。
- 现在,购物者在结帐时可使用多个地址从“查看订单”页面上的订单中删除礼品卡。 以前,当购物者选择礼品卡,然后单击 删除 时,应用程序不会从订单中删除礼品卡。
- 现在,当您在将礼品卡添加到购物车中后更改其价值时,应用产品会在购物车中显示礼品卡的新价格。
- 价格范围验证逻辑已添加到礼品卡创建页面。 以前,管理员可以创建其最小值超过最大值的卡片。 GitHub-493
- 现在,当请求不包含
allow_open_amount
的值时,addRequisitionListItemsToCart
查询会按预期返回自定义礼品卡的金额。
礼品消息
setGiftOptionsOnCart
突变现在可以正确创建礼品邮件。 GitHub-388
礼品注册表
- 在创建或编辑礼品注册期间,店面和管理员中的 活动日期 值现在相同。 以前,每次编辑并保存礼品注册时,应用程序都会在店面和管理员上向后调整一天 活动日期。 GitHub-466
- 该应用程序不再在礼品注册中显示禁用产品。 以前,如果产品在添加到礼品注册表中后被禁用,则当购物者访问注册表
Error: Call to a member function getId() …
时,应用程序会显示此消息。 GitHub-510
礼品包装
- 商店视图的礼品包装标签的翻译现在可以按预期工作。
- 礼品包装现在按预期应用于发送到多个地址的订单。
- 现在,当所有产品都移除时,应用程序会从购物车中删除礼品包装费用。
- 现在,当贷项通知单包含礼品包装和可配置产品费用时,贷项通知单合计是正确的。 以前,赠品包装税金额并不总是包含在贷项通知单合计中。 GitHub-34
Google Analytics
- 启用Google Analytics后,当管理员尝试在店面加载页面时,应用程序不再引发错误。 已添加
connect-src
的CSP条目,以允许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
,该字段返回应用于Cart项的固定产品税的数组。 以前,应用于购物车项目的固定产品税不包括在购物车查询中。
- 对GraphQL的空请求现在会引发响应代码200而不是500。 以前,GraphQL解析器在生成查询结果之前引发异常。
applyRewardPointsToCart
突变现在更新了购物车的总计,以准确反映扣除的奖励积分的值。 GitHub-486
- 当使用GraphQL链接追加销售产品时,GraphQL响应中不再包含禁用的产品。
- 在禁用来宾结帐功能后,商家现在可以使用GraphQL
setShippingAddressesOnCart
方法设置购物车的账单地址和运送地址。
- 当
categoryList
查询在CategoryTree
对象上包含多个片段时,它不再引发异常。 GitHub-31086
- GraphQL
product
查询现在返回正确的客户组价格。
- GraphQL
products
查询响应现在会根据产品属性位置对聚合进行排序。
- 当product和category URL后缀包含null值时,应用程序不再在GraphQL查询期间引发类型错误。 GitHub-30909
CustomizableDateValue
对象现在包含type
属性。 其值是一个可以设置为DATE、DATE_TIME或TIME的枚举。
dynamicBlocks
查询返回与指定筛选器匹配的动态块的内容。
- POST
V1/products/special-price-delete
请求现在只按预期删除具有指定store_id
的价格。 之前,该调用已从所有商店中移除指定SKU的所有特殊价格。 GitHub-25907
- 修复了
createGiftRegistry
变异中的country_code
属性的错误。
- 修复了
updateGiftRegistryItems
变异的giftRegistryUid
特性问题。
- 添加了其他检查,以防止使用
updateGiftRegistryRegistrants
突变将随机人添加为礼品注册表。
addConfigurableProductsToCart
突变现在返回指定产品的正确缩略图。 以前,它会返回父产品的缩略图。
- 在为将来日期设置特殊价格时段时,
products
查询不再公开产品的特殊价格。 GitHub-30210,GitHub-29631
customer
查询响应现在包含total_giftcard
属性作为OrderTotal
对象的一部分。
- 更正了导致
products
查询返回有关没有层定价集的项目的价格层的错误信息的问题。 GitHub-32279
图像
- 在使用POST
/V1/product/:sku
端点创建或更新捆绑产品时,您现在可以按预期设置required_options和has_options捆绑属性。 以前,这些自定义属性设置为0(零),尽管已尝试将其设置为1(一)。
导入/导出
- 现在,导出页面实体属性网格中产品实体的类别ID过滤器可按预期工作。
- 现在,当所有子产品缺货时,分组的产品库存状态会按预期更新,显示为缺货。 GitHub-32647
- 现在,当导入更新子产品库存状态时,可配置产品库存状态会按预期自动更新。 以前,当子产品库存状态通过导入更新时,产品库存状态不会自动更新。
- 现在,您可以在计划的导出中保存空值。 以前,应用程序会在创建或保存导出后更新空筛选器值。
no
和not specified
值在数据库中都以零表示,并且值not selected
被替换为no
。
- 现在,在导出产品、库存来源和客户实体时,导出过程会考虑用户角色范围。 以前,导出过程忽略用户角色范围,允许导出专用用户角色导出实体。
- 现在,如果导入的产品具有
tax_class_name
值None
或0
,则应用程序会将产品税类设置为None
。 以前,如果product tax_class_name
在CSV文件中为None
,则应用程序会创建一个新的税类None
,该税类与现有的税类重复。 如果CSV文件中的product tax_class_name
为0
,则应用程序忽略该值,并且产品税分类在导入后未发生更改。
- 管理员现在可以从管理员成功更改捆绑产品的
bundle_values
的name
。 以前,在您从管理员更改名称后,应用程序会在店面上将产品显示为缺货。 产品还与同一SKU合并到单个捆绑选项部分中。
- 现在,在导出客户数据时,应用程序会考虑用户范围。 以前,当您尝试导出客户时,应用程序会从所有网站导出客户数据。
- 现在,当在CSV文件中指定
__EMPTY__VALUE__
时,应用程序将按预期在CSV文件导入过程中删除向上销售、交叉销售和相关产品之间的产品关系。
- 导出许多客户的自定义地址数据(管理员 系统 > 导出)不再会定期导致内存错误。 以前,在导出自定义地址数据时,应用程序尝试加载所有客户数据,这会导致内存耗尽,并且应用程序会引发内存分配失败错误。
- 在默认CSV导入过程中,不再导入重复层价格。 以前,缺少验证以防止输入重复的分层价格,当出现重复的分层价格时,商家无法保存产品。 商家在尝试计划产品更改时也看到此错误:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry…
。
- 现在,所有产品映像都将在导入期间进行验证。 以前,当产品具有多个映像时,应用程序仅验证第一个映像。 GitHub-28236
- 现在,您可以在导入期间按预期从客户地址中删除区域。 以前,当客户地址导入为空区域时,分配的区域不会更改。
- 现在,将具有JSON或HTML内容的产品作为其他产品属性正确导出到CSV文件。 以前,CSV文件在不正确的字段中包含重叠的数据字符串。
索引
- 当子进程失败时,进程管理器现在退出,并返回错误。 以前,如果传递给进程管理器的函数数(例如,索引器维度)低于
MAGE_INDEXER_THREADS_COUNT
环境变量的值,则进程管理器始终会成功退出。 GitHub-30964
- 当索引器模式设置为 保存时更新 时,使用RESTPUT
/V1/products/:sku/links
请求链接产品时,产品现在可在店面搜索结果中按预期提供。
- 当索引器模式设置为 保存时更新 时,目录价格规则索引器现在可按预期工作。 GitHub-370
- 现在,删除不包含产品的已禁用类别对目录搜索和类别平面索引表没有影响。 以前,删除非活动类别会触发完全重新索引。 GitHub-23297
- 现在,自定义索引器可以为订阅使用不同的实体列名称。 以前,数据库触发器使用索引器上次设置为 Update by Schedule 的列名称,而不是指定的索引器。 GitHub-21853
- 应用程序不再发送AJAX请求以重新加载不受该请求影响的客户数据部分(
Magento_Customer/js/section-config
)。 GitHub-31948
- 在类别中添加、删除或重新排序产品后,以下索引器不再失效:
catalog_category_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库已删除。 已从Adobe Commerce中删除与TinyMCE v3.x相关的
Magento_Tinymce3Banner
模块和MFTF测试。
- 当购物者输入的电子邮件地址包含法语变音标记(如“é”、“e”)时,应用程序不再在“联系我们”表单中抛出
Invalid header value detected
错误。 该应用程序现在将用户名中的UTF-8字母转换为ASCII编码。 以前,UTF-8字母不会在电子邮件地址的唯一部分中转换为ASCII编码。
- 将插件添加到父类时,应用程序不再引发PHP致命错误。 GitHub-31291
- 更新了以下模块的README.md文件:
Magento_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
- 向
magento/module-jwt-framework-adapter
添加了web-token/jwt-framework
程序包上缺少的依赖项。 GitHub-32578
- 被动侦听器已添加到
fotorama.js
库以提高Lighthouse量度分数。 GitHub-31140
- Google Analytics模块的README.md文件已更新。 GitHub-32616
- Process Manager现在可以正确处理分支流程中的异常。 主进程现在退出,应用程序现在只显示一次错误消息。 此外,当分支进程中的异常被抛出到主进程时,现在可以处理这些异常。 以前,应用程序记录多个索引器故障并显示多个错误消息。 GitHub-30622
- 将插件添加到父类时,应用程序不再引发错误。 (
optionsProvider
参数现在在Assest.php
中的getContentIdentities
之后声明。) 以前,应用程序引发此错误:Error: Cannot instantiate interface Magento\Framework\Data\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 参数的串联问题。 以前,不正确的串联将后缀
value
附加到lex
、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
媒体集
- 在处理缺少XMP信息的PNG图像时,
bin/magento media-gallery:sync
现在会按预期失败。
- 删除相关产品时,
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
模块的执行时间。
- 已从
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
模块中移除CliCacheFlushActionGroup
。
新闻稿
- 应用程序不再向在新闻稿队列创建和新闻稿发送之间的时间段内取消订阅新闻稿的客户发送新闻稿电子邮件。 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。
产品视频
- 您现在可以使用 添加视频 按钮(管理员 目录 > 产品)连续添加多个视频。 以前,视频字段保留上一个视频的详细信息。
- 现在,在移动设备上,产品页面上的产品视频进入全屏模式可正常工作。 以前,进入全屏模式会导致视频在退出全屏模式之前暂停。
- 现在,导航箭头按钮(下一步 和 上一个)在店面产品视频中按预期显示。
- 商家现在可以按预期使用产品页面上的 插入视频 按钮添加Vimeo视频。 以前,应用程序显示404错误。 GitHub-31753
引用
/V1/guest-carts/examplecartid/items
调用现在返回所请求的存储视图。 以前,它返回存储中的第一个存储视图,而不是请求的视图。
- 现在可以配置发票发送。 以前,无法配置发票发送,应用程序始终会在发票创建后发送发票。 发票和订单电子邮件均在一个观察者的范围内发送。 现在,由单独的观察者管理订单电子邮件和发票电子邮件的发送。 GitHub-27656
报告
- 现在,可以从Adobe Commerce on cloud infrastructure项目查看和下载所有系统报告。 以前,您无法下载日志、数据、设计或商店的系统报表。
- 管理员 报告 > 审阅 > 按产品 的上次审阅日期现在显示正确的审阅日期。 以前,应用程序显示产品创建日期,而不是审阅日期。
退货授权(RMA)
- 当属性字段值
required
设置为 no 时,RMAresolution
属性不再显示为必需。
- 您现在可以从管理员中选择多个退货订单。 以前,在选择多个返回值并从“操作”下拉菜单中选择“关闭”后单击 提交 时,应用程序会引发错误。
- 使用REST API更改返回的状态后,应用程序现在会按预期向客户发送电子邮件通知。
- 现在,应用程序会根据管理员客户返回网格中的筛选值来筛选记录。 以前,应用程序将您定向到“管理所有客户”页面,单击“重置筛选器”按钮 也会重定向到此页面。 GitHub-436
审核
- 现在,可以在“我的帐户”页面的“审核详细信息”部分中正确计算产品审核评等星级。
- 产品审核详细信息页面的平均产品评级和产品评级部分现在可以正确呈现。 以前,当应用程序计算店面评级时,审核ID未设置,并且产品审核模板未正确呈现。
- 在管理员批准审阅后,成为第一个审阅此产品 链接现在会按预期更改为审阅计数。
- 管理员现在可以按预期在产品编辑页面的产品审阅部分对产品审阅进行排序。 GitHub-30270
- 现在,在管理员批准并保存来自与存储区不同的域的审阅后,使用正确的存储ID保存审阅。 GitHub-17510
奖励
- 现在,商家可以在将下订单的客户从系统中移除后,使用奖励积分取消全部或部分下订单的订单。
- 商家现在可以从购物车价格规则中删除奖励积分。 以前,当商家在创建购物车价格规则时尝试将 奖励点数 设置为0时,保留奖励点数量的上一个值。
- 当管理员 营销 > 待处理审核 网格批准多个审核时,产品审核的奖励点现在与相关网站关联。 以前,奖励积分不会显示在店面上,也不会链接到管理员中的相关网站。
- 当购物者使用多个地址结帐时,应用程序现在会更新付款方法列表,方法是选中或取消选中 商店积分(奖励积分) 选项。
销售
- 现在,在启用 允许延期交货 设置时,管理员用户可以为库存不足的项目下订单(商店 > 配置 > 目录 > 库存 > 产品库存选项)。 以前,应用程序引发错误。
- 当姓氏以空格结尾时,购物者现在可以在“订单和退货”页面上找到订单。
- 现在,当分配了100%折扣的购物车价格规则应用于同时需缴纳目录产品和折扣税且符合免运费条件的订单时,系统会使用正确的总计创建发票。 以前,订单价格正确,但发票不正确。 GitHub-30853
- 现在,按日期过滤订单可返回准确的结果。 以前,当您按订单日期筛选订单时,应用程序不会返回在 00:00 UTC 之后下达的订单。
- 现在,当网站 范围用于 多商店部署中的 Price 属性时,贷项通知单网格现在显示正确的货币符号。
- 重新加载“管理员创建新订单”页面后,结帐工作流程的“付款和运输信息”部分的付款方式单选按钮不再消失。 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
- 从管理员为现有客户创建新订单时,应用产品不再为客户帐户创建重复的地址条目。 “保存在通讯簿”复选框已重命名为“添加到通讯簿”,并且默认情况下在Admin中处于取消选中状态。
- 现在,当购物者从其帐户打印订单时,应用程序将使用 徽标中上传的徽标进行HTML打印视图 设置。 以前,应用程序显示LUMA徽标,而不是上传的徽标。
- 现在,当项目数超过20时,店面上的订单项目分页程序将按预期工作。 以前,传呼机会考虑子产品,因此总计数不正确。
- 现在,应用程序在“订单”页和“贷项通知单”页网格上显示小计值、发运值和处理值的正确货币符号。 GitHub-22662
- 使用Safari的管理员现在可以从管理员处成功将产品添加到订单。 以前,当管理员单击 将所选产品添加到订单 按钮时,应用程序显示旋转加载图标,页面挂起。 GitHub-30265
销售规则
- 当多个购物车价格规则应用于购物车时,应用程序现在正确应用购物车价格规则,其中 最大数量折扣应用于 或 折扣数量步骤(购买X) 条件。 以前,如果将具有最大数量折扣的购物车价格规则应用于 ,或者在应用另一个购物车价格规则之后应用折扣数量步骤(购买X),则总折扣将减少到为 最大数量折扣应用于 或 折扣数量步骤(购买X) 倍的产品价格。
- 现在,优惠券报表可准确反映实施拆分数据库的部署中的优惠券活动。
- 包含条件“类别 IS NOT”的购物车价格规则现在按预期应用于未分配给类别但分配了父产品的可配置子产品/简单产品。
- 将优惠券应用于订单后,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
- 启用 创建装运标签 复选框且产品名称包含Unicode字符时,当商家尝试使用DHL装运订单时,应用程序不再引发错误。 以前,应用程序在请求创建标签时显示此错误:
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的大型数据库查询。 相反,类别过滤器将应用于产品收藏集,以创建一个临时表用于类别的暂存预览。 以前,应用程序将所有产品插入临时表中以进行暂存预览,这会降低性能。
- 从2.3.x升级期间,
Magento_SalesRuleStaging
模块不再触发错误。
- 现在,当您查看计划更新时,应用程序会显示包含正确数据的目录规则条件。 以前,如果您查看使用条件创建的计划更新,则应用程序不会显示包含不正确数据的条件或显示的条件。
- 在更新前取消选中计划更新后,产品的 使用默认值 复选框保持选中状态。
- 现在,目录价格规则可按预期应用于具有未定义属性值的产品。 以前,通过目录价格规则创建的折扣不会应用于具有未定义属性的产品。 GitHub-461
- 现在,在具有位于不同时区的商店的多网站部署中,目录规则可按预期工作。 以前,应用程序会一次性在所有网站上应用或停用目录规则。
- 在为特定网站创建计划更新时,不再删除层价格。
- 现在,在创建包含结束日期的将来暂存更新后,您可以从可下载产品页面中保存产品。 以前,应用程序未保存产品并显示以下消息:
The downloadable link isn't related to the product. Verify the link and try again
。 GitHub-474
存储
- 在显示商店主页时,应用程序不再将
0
字符串视为空值。 以前,应用程序将请求路径开头的整数值视为存储ID,这会对SEO产生意想不到的影响。
- 已删除
lib/internal/Magento/Framework/App/Action/Plugin
下\Magento\Framework\App\ActionInterface
的插件,以遵循以下准则:应使用插件来自定义另一个模块的一个模块的行为。 GitHub-28050
- 现在,当您在网站创建期间禁用
Store View
时,尝试选择Website
作为默认设置时,应用程序会显示此消息:Please enable your Store View before using this Web Site as Default
。 以前,网站崩溃,应用程序不显示警报。
税金
- 现在,应用产品会在验证最小订单金额时考虑隐藏税额。
- 现在,当购物者导航回其购物车并在将捆绑产品添加到购物车后继续结帐时,应用程序会按预期显示固定产品税(FPT)。 GitHub-30250
- 现在,当管理员为现有客户创建订单时,该应用程序会使用已保存的增值税编号预填充“管理员新订单”页面的“地址信息”部分的 增值税编号 帐单和配送地址输入字段。 GitHub-31846
- 启用
customer/create_account/vat_frontend_visibility
后,应用程序现在会在客户注册页面上显示 增值税号 字段。 GitHub-31326
测试
- 测试环境已升级到Redis 6.0.12。
- 已从集成测试中移除
CacheCleaner::cleanAll();
。 GitHub-31074
- 添加了针对此方案的测试:当客户订阅排队的新闻稿时,管理员用户可以编辑客户帐户。 GitHub-30645
- 已从测试中删除
cache:flush
命令以缩短Catalog
、CatalogUrlRewrite
和LoginAsCustomer
模块的执行时间。 GitHub-31056
- 已删除冗余参数,并将POST更改为
\Magento\Logging\Model\ProcessorTest::testLoggingProcessorLogsActionShipping
中所需的GET。
主题
- 当 将JS代码移动到页面底部 设置(存储 > 配置 > 高级 > 开发人员 > JavaScript设置)和Cookie均启用时,客户登录页面不再显示此消息:
The store will not work correctly in the case when cookies are disabled
。
- 标头中的帐户链接现在遵循WCAG标准。 以前,标头中的帐户链接包含重复的ID,这会导致WCAG验证失败。
- 应用程序现在优先处理商店徽标图像的商店配置而不是布局配置。 以前,徽标图像的大小是固定的,不会因商店而异。
- 该应用程序现在在使用标准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
- 在管理员 内容 > 小组件 上创建新小组件后,您现在可以删除布局更新。 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键时,在层次结构中移动类别会导致
url_path
值不正确。 GitHub-16202
- 现在,当您在类别层次结构中移动类别时,应用程序会更新分配给所有存储范围的类别的
url_path
。 以前,在层次结构中移动类别会导致url_path
不正确。
- 现在,使用自定义URL从管理员创建的URL重定向可成功运行。 以前,GraphQL缓存来自GraphQL
urlResolver
查询的响应,并在URL重写更新后返回旧值。
- 现在,从网站中删除产品时,产品URL重写会按预期删除。 GitHub-24184
- 在
app/code/Magento/UrlRewrite/Model/ResourceModel/UrlRewriteCollection.php
集合的addStoreFilter
函数中添加了对store_id
的main_table
引用。 以前,将join
添加到还包含store_id
列的表中的集合时出现问题。 GitHub-31853
PUT /V1/products/:sku
REST终结点现在按预期重新生成产品URL重写。 以前,端点重新生成产品url_key
值,但不会重写URL。 GitHub-30316
用户
- 现在,您可以保存有效的新用户角色(管理员 系统 > 权限 > 用户角色),并选中整个
Catalog
树,不包括Edit Product Design
( 目录 > 库存 > 产品 > 编辑产品设计)。 以前,应用程序不保存此角色中的用户所做的产品更改并显示以下错误:Not allowed to edit the product's design 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。
迁移工具包
Data Migration Tool可帮助将现有Magento1.x存储数据转移到Magento2.x。此命令行界面包括验证、进度跟踪、日志记录和测试功能。 有关安装说明,请参阅安装数据迁移工具。 考虑浏览或参与数据迁移存储库。
代码迁移工具包可帮助将现有Magento1.x存储扩展和自定义项传输到Magento2.x。命令行界面包括用于转换Magento1.x模块和布局的脚本。