Adobe Commerce 2.4.6发行说明

Adobe Commerce 2.4.6引入了对PHP 8.2的支持。PHP 8.1仍得到完全支持,但对PHP 7.4的支持已被删除。 它包含重要的性能和可扩展性增强功能。 已优化用于批量购物车操作和类别树渲染响应的GraphQL操作。 此发行版本引入了Adobe Commerce扩展metapackage。

此版本包括300多项质量修复和增强功能。 核心编辑器依赖项和第三方库已升级到与PHP 8.2兼容的最新版本。

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

其他发行信息

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

Adobe Commerce 2.4.6亮点

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

安全性增强

此版本包括八项安全修复和平台安全改进。

到目前为止,尚未发生与这些问题相关的已确认攻击。 但是,可能会利用某些漏洞访问客户信息或接管管理员会话。 这些问题中的大多数要求攻击者首先获得对管理员的访问权限。 因此,我们提醒您采取一切必要步骤保护您的管理员,包括但不限于以下工作:

  • IP 列入允许列表
  • 双重身份验证
  • 使用VPN
  • 使用唯一位置而不是/admin
  • 良好的密码卫生

有关这些已修复问题的最新讨论,请参阅Adobe安全公告

其他安全增强功能

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

  • 通过更具体地审核网格视图、批量操作和导出中的操作,解决了管理操作日志中的空白。

  • 在支付处理期间发生意外错误时,在结账期间reCAPTCHA验证不再失败。 GitHub-35093

  • 管理员用户更改其电子邮件时需要确认电子邮件的新系统配置。 为了减少站点漏洞,添加了一个新的系统配置设置(默认禁用),当管理员用户更改其电子邮件时,该设置需要确认电子邮件: Stores > Settings:Configuration > Customers > Customer Configuration > Account Information Options > Require email confirmation if an email has been changed。 启用此选项后,每当管理员用户更改其电子邮件地址时,应用程序都会请求电子邮件确认。 以下模块受此更改影响: Magento_Customer

平台增强功能

Adobe Commerce 2.4.6引入了对PHP 8.2的支持。PHP 8.1仍得到完全支持。

已从此版本中删除PHP 7.4支持。 您无法在PHP 7.4上运行Adobe Commerce 2.4.6。

Adobe Commerce 2.4.6现在支持:

  • Composer 2.2.x.已删除编辑器1.x。

  • Redis 7.0.x。虽然与Redis 6.2的兼容性仍然存在,但我们建议将此版本与Redis 7.0.x一起部署,因为Redis 6.2的生命周期预计在2024年结束。

  • 现在,支持将OpenSearch用作Adobe Commerce内部部署和云部署的默认搜索引擎。 它支持作为独立的Magento Open Source搜索引擎。 此版本支持OpenSearch v2.x,并已经过OpenSearch 2.5测试。尽管与OpenSearch 1.x的兼容性仍然存在,但我们建议将此版本与OpenSearch 2.x一起使用。您可以在云和本地Magento Open Source引擎先决条件上安装并运行带有OpenSearch 2.x的Adobe Commerce和Search 2.4.6。

  • Elasticsearch8.x。查看升级Elasticsearch

  • MariaDB 10.6(LTS版本)。 此版本仍与MariaDB 10.4兼容,但我们建议升级到MariaDB 10.6。

其他升级和更换

  • DHL架构已从v6.2迁移到v10.0。

  • 过期的JavaScript库已更新到最新版本,并且已删除过时的依赖项。 这些更改向后兼容。

  • PHP 7.4兼容性已从Commerce代码库中移除。

  • Symfony依赖项已升级到新的LTS版本。 依赖项包括:

    • friendsofphp/php-cs-fixer
    • symfony/console
    • symfony/event-dispatcher
    • symfony/finder
    • symfony/process
    • web-token/jwt-framework
  • jquery-migrate已从Commerce代码库中移除。 GitHub-21406

  • 已将jQuery/fileUpload库升级到v10.32。

  • 已从代码库中移除已到达生命周期结束的Zend框架(ZF1)组件。 查看与向后不兼容的更改高亮显示.

  • 已更新Laminas依赖项以支持PHP 8.2。

  • 已删除laminas/laminas-dependency-plugin编辑器插件。 GitHub-36515

  • 已将Zend_Filter替换为laminas/laminas-filter

  • 已将web-token/jwt-framework升级到v3.0.5。 (最新版本)

  • 已将allure-framework/allure-phpunit升级到v2.x。

  • 已将Chart-js库升级到v3.9.1

性能和可扩展性增强

  • 提高了影响许多客户区段的操作的性能。 商家可以通过启用新的配置设置来提高涉及100多个客户区段的运营性能。 可以根据需要禁用​ Real-time Check if Customer is Matched by Segment ​设置,以通过减少针对客户的每个客户区段的验证来缩短处理时间。 查看客户区段验证

  • 新的系统配置设置,用于限制产品网格中显示的产品数。 商家可以使用新的​ Limit Number of Products in Grid ​配置设置来提高产品网格性能。 此限制配置为默认20000用,仅影响UI组件使用的产品集合。 限制显示的产品数量,可以提高具有200,000多种产品的网格的运行性能。 查看网格限制产品数量

  • 改进的导入性能(每分钟最多100,000条记录)。 商家可以使用新的POST /rest/<store_view_code>/V1/import/csv REST API端点将数据导入Adobe Commerce。 此端点提供与管理员导入功能相同的功能,并支持使用CSV文件创建、更新和删除产品、产品定价和客户实体。 查看导入数据

  • 通过负载平衡提高了高吞吐量订单处理性能。 云基础架构上具有高并发订单量(每分钟1000个订单)的Adobe Commerce 2.4.6现在可以通过平衡不同节点上的数据库负载来提高订单处理性能。 商家可以通过为MySQL数据库和Redis实例启用辅助连接来重新平衡此负载。 查看高吞吐量订单处理

Adobe Commerce扩展中继包

此版本引入了Adobe Commerce扩展metapackage v1.1.0,它自动将所选Adobe Commerce扩展与此核心版本捆绑在一起。 运行composer update时将安装此中继包中包含的这些扩展版本,从而简化升级到最新核心版本时升级这些扩展的过程。 这些扩展仍将保持独立的发布计划。

适用于Adobe Commerce 2.4.6的Adobe Commerce扩展metapackage包含这两个扩展:

此扩展metapackage的未来版本将包含其他扩展。

Adobe Commerce的Adobe I/O事件

Adobe Commerce的Adobe I/O事件可捕获Commerce事件并将数据从Adobe Commerce传输到其他Adobe系统。 开发人员可以在Adobe Developer App Builder中构建云原生应用程序,这些应用程序可订阅Commerce事件,例如库存更新、订单状态更改和价格更新。 开发人员可以使用此功能交换数据,以在其任务关键型系统中编排整个购买者历程。

辅助功能更新

此版本的重点在于在Venia(PWA)上创建更易感知、可操作、可理解和强大的店面体验。 这些增强功能包括:

  • Sign in ​按钮的可视文本标签现在与其可访问名称匹配。 (最佳实践建议UI元素的辅助功能名称以可见的标签文本开头。)
  • 描述性可访问名称已添加到整个店面的按钮中。
  • 口头描述标签已添加到搜索筛选器中的​ Has Video ​复选框。
  • 仅使用键盘的用户现在可以访问店面上的所有页面功能。 以前,购物者无法仅通过按键访问子导航链接。

Adobe Commerce与Adobe IMS集成

以下Adobe IMS模块已与Adobe Commerce 2.4.6核心代码分离,现在打包为单独的metapackage:

  • adobe-ims
  • adobe-ims-api
  • admin-adobe-ims

新的adobe-ims-metapackage v2.2.0与Adobe Commerce 2.4.6捆绑在一起。此版本中未更改任何功能。

B2B

GraphQL API现在完全公开了“公司采购订单”功能。 此发行版本引入了两个GraphQL架构:

  • 采购订单GraphQL架构涵盖B2B公司用户购买Order Management功能,如创建、编辑和删除采购订单。 查看采购订单(B2B)
  • 采购订单规则GraphQL架构提供了创建、编辑和删除审批规则以及手动验证采购订单的功能。 请参阅采购订单审批规则(B2B)

此版本包含多个错误修复。 请参阅B2B发行说明

Braintree

  • 意大利和西班牙的​ Pay Later ​按钮和横幅(消息)已启用Braintree。
  • 已启用使用PayPal保险库的PayLater消息传递。
  • 添加了防欺诈功能和ACH Web挂接。 在Braintree中做出风险决策时会触发欺诈防护Web挂接。 当ACH付款的状态更新为settledsettlement decline时,会触发ACH Web挂接。
  • 添加了LPM(本地支付方法)Web挂接。

GraphQL

GraphQL性能增强包括:

查询启用了类别权限的类别时缩短了响应时间。 在启用了类别权限且包含许多客户组或共享目录的类别中查询产品时,响应时间已缩短。 支持此性能改进的代码更改包括:

  • GraphQL解析程序操作已得到优化。
  • 数据提供程序不再为正在处理的每个新产品重新设置运行时缓存的数据,这提高了性能。
  • 已在GraphQL解析程序中优化产品权限处理。 产品权限现在改为按产品应用到产品收藏集。
  • 已优化addProductsToCart突变中共享目录中的权限读取。
  • 产品权限已通过产品内联片段进行优化。

已优化类别树渲染的性能categoryList查询已优化为支持具有大量类别的客户。 使用此查询搜索最多包含五个级别嵌套子类别的1500多个类别的商家将会注意到性能提升。 通过删除不必要的方法调用、改进类别树的缓存和递归加载类别数据,改进了通过重构代码加载类别子级的过程。 支持此性能改进的代码更改包括:

  • 类别模型的自定义属性元数据提取已得到改进。
  • 类别ID提取已改进,并减少了getChildren调用。
  • 类别子项加载已改进。

减少了批量购物车操作的查询响应时间。 当添加多达500个简单且可配置的产品时,“添加产品突变”已得到优化,以提高查询性能。 捆绑产品不受影响。 优化的变动包括addProductsToCartaddConfigurableProductsToCartaddDownloadableProductsToCartaddSimpleProductsToCartaddVirtualProductsToCartaddWishlistItemsToCartupdateCartItems

客户查询现在支持订单排序customer查询的orders输出对象现在包含排序字段。 您现在可以按订单编号或创建日期以及升序或降序对订单进行排序。

新的突变:

deleteCustomer

页面生成器

Page Builder v.1.7.3与Adobe Commerce 2.4.6兼容。

PWA Studio

PWA Studio v.13.0.x与Adobe Commerce 2.4.6兼容。它包括多项增强功能,可改善辅助功能。 有关错误修复的信息,请参阅PWA Studio版本。 有关PWA Studio版本及其兼容的Adobe Commerce核心版本的列表,请参阅版本兼容性

已知问题

问题: New Relic当前与PHP 8.2不兼容。运行New Relic的部署可以在PHP 8.1上运行Adobe Commerce 2.4.6,但不能在PHP 8.2上运行。解决方法:在PHP 8.1上运行Adobe Commerce 2.4.6,直到发布支持PHP 8.2的新版本的New Relic为止。此版本预计于2023年夏季发布。

修复的问题

我们已在Adobe Commerce 2.4.6核心代码中修复了数百个问题。 Adobe Commerce 2.4.6中包含的已修复问题的子集如下所述。

安装、升级、部署

  • 在具有多个区域设置和网站的标准或紧凑部署期间,静态内容部署不再超时或失败。
  • 运行静态内容部署(bin/magento set:static-content:deploy -f --strategy compact)时,压缩策略不再导致对外部域的无效引用。
  • 现在,执行bin/magento setup:di:compile -vvv(或使用-v-vv选项)会在失败时返回信息性消息。 GitHub-35391
  • 在已运行数据迁移工具的部署中运行bin/magento setup:upgrade命令时,Adobe Commerce不再引发以下异常: PHP Fatal error: Declaration of Migration\Logger\Logger::addRecord(int $level, string $message, array $context = []): bool must be compatible with Monolog\Logger::addRecord(int $level, string $message, array $context = [], ?Monolog\DateTimeImmutable $datetime = null): bool in /var/www/html/vendor/magento/data-migration-tool/src/Migration/Logger/Logger.php on line 34GitHub-35604
  • 在运行MySQL 8.0.29的环境中,bin/magento setup:db:status命令不再失败。以前,命令输出错误地指出声明性模式已过时。 GitHub-35671
  • composer install命令不再覆盖.gitignore文件。 GitHub-32888
  • 在Alpine Linux上升级后运行bin/magento sampledata:remove以删除示例数据不再失败,错误为: Undefined constant "MagentoHackathon\Composer\Magento\Deploystrategy\GLOB_BRACEGitHub-36062
  • 在首次执行composer install --no-dev后,bin/magento setup:upgrade现在已成功执行。 GitHub-36351
  • 异常和异常栈栈跟踪条目现在包含在var/log/exception.log中。 GitHub-36054
  • 现在,当您使用命令行设置不带密码的Redis连接时,Adobe Commerce会引发参数验证错误。

辅助功能

  • 现在,签出工作流中的​ Proceed to CheckoutReview Order ​和​ Place Order ​按钮在键盘输入中可按预期工作。
  • 使用​ TAB ​或​ SHIFT + TAB ​在页面控件中导航时,显示按钮的焦点指示现在可按预期工作。

屏幕阅读器

  • 订单历史记录页面的屏幕阅读器现在可以读取正确的图像描述。

屏幕阅读器现在宣布:

  • 在搜索结果中找到的项目总数,预期为
  • 用户使用键盘控件 成功登录时的登录用户名
  • 产品搜索结果页眉现在可读取<title>元素 的正确值
  • 输入字段是否为必填字段
  • 更正折叠元素的当前状态(折叠和展开)
  • 用户单击​ Create an account ​按钮 后刷新页面内容时

捆绑产品

  • 现在,通过API更新特定商店视图的捆绑产品不会覆盖同一捆绑产品的其他商店视图数据。 以前,捆绑产品选项标题会被其他商店视图的第一个选项标题覆盖。
  • 使用荷兰语言环境时,现在可以从管理员​ Catalog > Products ​成功筛选捆绑产品。 以前,当您尝试筛选Type: Bundle Product时Adobe Commerce显示此错误: Something went wrong with processing the default view and we have restored the filter to its original stateGitHub-35704
  • 当捆绑产品的特殊价格超过1000时,产品网格不再引发异常。 以前,当您按SKU搜索产品或导航到​ Catalog > Products ​时,Adobe Commerce引发此错误: Non Numeric value encounteredGitHub-36284)
  • 对于包含捆绑包和简单产品的订单,其贷项通知单和发票PDF中的列现在可以正确呈现。 以前,列会扭曲或不对齐。
  • 在包含BundleProduct片段的GraphQL查询中,items.options.product对象按预期包含数据。 以前,对象在某些情况下可以为空。
  • 现在,启用​ Quantity uses decimals ​后,包选项的小数数量已正确呈现。 以前,只渲染量的整数部分,而不渲染小数部分。 例如,1.5的数量呈现为1.0。GitHub-35964
  • GraphQL产品查询现在仅返回所查询存储区范围内的捆绑产品选项。
  • 为发送查询的客户启用​ Allow Category Browsing ​配置设置后,响应中现在会返回未分配给类别但属于捆绑或分组产品的产品选项的产品。

缓存

  • 订单履行后不再刷新全页缓存,除非订购的产品没有库存。 以前,每当创建发运时,系统都会清除该类别的高速缓存。
  • 现在,在配置二级缓存且部分逐出远程数据时,可以成功缓存数据。 以前,仅刷新数据缓存而没有这些数据哈希后,当存在数据哈希时,不会保存新缓存。
  • 更正了CatalogUrlResolverIdentityCmsUrlResolverIdentity中阻止缓存的缺陷。 这会影响多个请求上的路由查询缓存。

购物车和结账

  • 现在,当购物车包含最小数量的简单产品时,购物者可以向购物车中添加其他商品。
  • 现在,当商店货币和基本货币相同时,用于检索购物车数据的REST API调用会返回相同的grand_totalbase_grand_total值。 GitHub-34649
  • Maximum Qty Allowed in Shopping Cart ​的导出值现在与管理员配置设置中设置的默认值匹配。
  • Adobe Commerce现在可以正确计算带有运费折扣的订单退款总计。
  • Google reCAPTCHA现在可按预期处理店面订单。 以前,当购物者首次尝试下订单之前未首次选择Google ReCAPTCHA时,Adobe Commerce会显示这些错误: ReCaptcha validation failed, please try againNo such cart with id = ID
  • 现在,验证码图像刷新遵循管理员配置设置,并在设置被禁用时未触发。 以前,无论设置是启用还是禁用,只要付款方式发生更改,就会触发刷新。 GitHub-34855
  • 当购物者更改购物车页面上的产品数量而未更新购物车,然后尝试导航到下一页时,Adobe Commerce现在会在将购物者重定向到下一页之前按预期显示确认弹出窗口。
  • 现在,在管理员减少购物车中的产品数量后,购物者可以从购物车中减少该产品的数量。 以前,当购物者尝试减少产品数量时,Adobe Commerce引发以下错误: The requested qty is not availableGitHub-35780
  • 在多配送结帐期间,当产品数量超过配置的最大值时,Adobe Commerce不再在JavaScript控制台中引发错误。 Adobe Commerce现在改为显示信息性错误消息。 GitHub-36184
  • 当购物者使用键盘上的向下箭头键更改产品数量时,购物车页面上的商品数量不再显示为负数。 GitHub-36299
  • 购物者不能再向购物车中添加在更改购物者所属的客户组后现在不允许使用的类别中的产品。 当权限配置设置发生更改时,Adobe Commerce现在会检查特定类别的客户群组权限访问权限。
  • 在创建管理员订单之前,客户购物车不再清空,如果取消或放弃订单,购物车内容现在可以恢复。 现在,仅在创建订单后才会从购物车中删除项目。 以前,每当管理员用户尝试在管理员管理购物车页面上创建订单时,购物车都会被清空。
  • 运行bin/magento catalog:image:resize后,迷你购物车现在会显示正确的产品图像。 以前,所有图像都替换为默认的产品占位符图像。 GitHub-35535
  • 当送货地址包含扩展属性时,现在可以成功完成签出。 以前,Adobe Commerce引发此错误: Object of class Magento\Quote\Api\Data\AddressExtension could not be converted to stringGitHub-34202
  • 如果所需的产品选项没有值,则addBundleProductsToCart突变不再向报价中添加产品。 GitHub-25676
  • 现在,在将产品添加到购物车时权限不足时,如果addProductsToCart突变失败,Adobe Commerce会返回一条信息性消息。
  • 使用快速订购添加的产品数量超过可用库存时,Adobe Commerce不再在购物车页面上引发错误。
  • setGiftOptionsOnCart突变现在需要客户授权才能进行客户购物车操作。

购物车价格规则

  • 在创建规则期间设置的购物车价格规则免运费选项现在会按预期应用于订单。 以前,在创建规则期间应用的免运费选项在签出期间被忽略,并且应用规则时不允许免运费。 GitHub-35013
  • 当未设置物料折扣数量或物料折扣数量大于或等于订单物料数量时,产品的sales_order_item表的discount_percent列现在按预期使用折扣百分比填充。 以前,在将此产品应用购物车价格规则时不会填充此列。

目录

  • 产品列表小组件不再为登录购物者显示不正确或缓存的价格。 主页小部件中显示的价格现在与购物者的地址匹配,并在购物者更新地址时更新。 以前,浏览器缓存不会根据客户组税则更新主页上的产品价格。
  • 现在,比较产品列表功能可在多网站部署中正常工作,并且具体取决于网站。
  • 重新加载产品详细信息页面时,Adobe Commerce不再显示上一页的数据。 以前,在重新加载产品详细信息页面时,来自第一个选项卡的数据会与新加载的数据合并一秒。
  • 现在,可以按预期在移动设备的主菜单中展开具有子类别的类别。 以前,购物者无法打开或扩展移动部署中具有子类别的类别。 GitHub-35329
  • 现在,当产品被分配给新网站或商店时,类别列表会按预期更新。 以前,产品价格索引器未标记为无效,随后在cron运行中按预期重新触发。 因此,价格指数表中遗漏了产品的价格条目,而且没有显示在新的商店或网站上。
  • 启用​ Display Out of Stock Products ​配置设置后,店面库存计数现在准确。 GitHub-35899
  • 启用​ Allow All Products Per Page ​设置后,类别页面不再为空。 GitHub-35900
  • 现在,Display Out of Stock Products ​配置选项在启用时按预期工作。 以前,在管理员中启用此选项后,所有产品在店面中都显示为缺货。 GitHub-35898
  • 现在,在类别权限允许的情况下,分配给批发组的客户可以将已分组的产品添加到其购物车。 如果没有为客户组定义此权限,则配置设置优先。
  • 现在,按布尔属性对产品排序可按预期运行。 GitHub-36390
  • 目录价格规则折扣不再应用于固定价格的自定义产品选项,而是仅应用于产品的原始价格。
  • 现在,当相关产品规则为字母数字产品属性生成时,相关产品可在店面产品详细信息页面上成功获取。 GitHub-36285
  • 目录价格规则现在将考虑所选范围,并且仅适用于属性具有匹配规则的选项值的网站的产品。 以前,该规则不会考虑多站点部署中的选定范围。 GitHub-36049
  • 现在,当购物者从“我的购物车”页面修改可配置产品时,会在产品详细信息页面中预先选择样本选项“颜色”和“大小”属性。 (jQuery 3.x版本现在支持swatchRenderer构件名称,该名称现在为驼峰式大小写。) 以前,不会预先选择样本选项。
  • 现在,当客户订阅了价格下降警报时,将通知客户产品价格下降。 以前,由于应用程序级别的缓存,无法始终发送价格下降通知。
  • 现在,基于具有​ is not one of ​条件的SKU的目录规则可按预期工作。
  • Adobe Commerce不再基于类别路径错误地假定一个类别是另一个类别的父类别。 以前,当两个类别相邻,并且一个类别ID以另一个类别的类别ID开头时,Adobe Commerce会假定这些类别具有相同的父类别。 GitHub-32464

可配置的产品

  • 当管理员用户手动将产品添加到已分配了许多简单产品的可配置产品时,Adobe Commerce不再引发错误。 以前,Adobe Commerce显示此错误: Something went wrong with processing the default view and we have restored the filter to its original state
  • 在禁用延期交货的部署中,购物者不能再向其购物车添加可销售量为0的可配置产品。 Adobe Commerce现在指示产品缺货。 GitHub-35319
  • 现在,通过从不同的商店视图导入具有多个选项的可配置产品来创建新产品,会按预期生成第一个产品的精确副本。 以前,在具有多个商店视图和区域设置的部署中,新产品可配置选项的排序顺序不正确,并且标题未转换为新商店视图的区域设置。 GitHub-35200
  • 现在,所有缺货子产品的可配置产品在店面显示为缺货。
  • 可配置的产品SKU和产品名称现在可以精确显示。 以前,在​ Stores > Attribute set ​上的产品详细信息组上方移动属性组后,名称和SKU显示为undefined。 GitHub-36309

优惠券

  • 管理优惠券代码工作流中添加了验证逻辑,以便在生成优惠券时强制实施优惠券代码设置。 以前,当​ 优惠券数量 ​值大于2500时,优惠券代码生成会忽略​ Code Length ​设置。
  • 在使用PayPal Express付款方式进行结账期间应用奖励优惠券时,现在会按预期将奖励积分添加到客户帐户。
  • 现在,当购物车价格规则将权重作为条件时,您可以在创建管理员订单期间应用优惠券代码。 以前,如果未为产品选择其他字段,则不会设置优惠券代码。 GitHub-36271
  • 您现在可以按多个购物车价格规则过滤优惠券报表。 GitHub-36272
  • 现在,当管理员用户在配置具有自定义选项的产品时按下​ Enter ​时,将应用并保存自定义选项。 以前,您可以选择选项并将产品添加到订单,但选项未保存,并且提示管理员用户重新选择产品选项。 GitHub-35284
  • 优惠券代码现在可以成功导出到Excel XML。 以前,生成的文件不包含所有选定的优惠券代码,但仅包含每个页面选择器中的项目数。GitHub-36073

cron

  • catalog_index_refresh_price cron作业现在已成功执行。 以前,Adobe Commerce在cron执行期间记录此错误: report.ERROR: Cron Job catalog_index_refresh_price has an error: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

货币

  • 在店面和管理产品价格中增加了自定义货币符号和价格之间缺少的空格。 添加了适当的条件和正则表达式以允许使用货币符号的自定义NBSP。 例如,IDRx 105.00以前显示为IDRx105.00。

客户区段

  • 在创建新购物车价格规则期间,管理员客户区段网格上的“是/否”过滤器现在可按预期工作。

电子邮件

  • 从管理员创建订单后,Adobe Commerce不再向客户发送重复的电子邮件。
  • 禁用​ Email order confirmation ​设置后,不再发送管理员订单电子邮件。 GitHub-36256
  • 对于具有自定义选项的产品,图像选项不再显示为贷项通知单、订单确认和发票客户电子邮件(默认HTML)中的模板标记。

框架

  • 当​ 欧盟国家/地区 ​设置中没有国家/地区(Stores > Configuration > General > Country options > European Union Countries)时,管理员用户现在可以成功打开管理员​ Store > Configuration ​页面。 以前,当管理员用户尝试打开此页面时,Adobe Commerce引发此错误: TypeError: explode(): Argument #2 ($string) must be of type string, null given in /var/www/php/folder/vendor/magento/module-config/ViewModel/CountryFilter.php:46GitHub-35901
  • jquery.cookie依赖项现在可与JavaScript依赖项正常配合使用。 以前,您无法对jquery/jquery.cookie使用别名。 GitHub-35913
  • bin/magento i18n:collect-phrases命令现在在导出的CSV文件中包含<title>文本。 GitHub-35462
  • Magento\Framework\Code\Reader\ArgumentsReader::getParentCall()现在支持命名构造函数参数。 现在,您可以通过按名称设置参数来调用函数。
  • 错误现在按预期记录在exception.log文件中。 以前,虽然system.log文件中记录了错误,但var/log/exception.log中未记录错误。
  • 商家现在可以指定自定义外部SMTP提供商。 GitHub-26104
  • 在运行Adobe Commerce 2.4.3-p2的部署中,现在可以按预期重新授权OAuth集成。 以前,重新授权失败,错误为: The attempt to post data to consumer failed due to an unexpected error. Please try again later。 Adobe Commerce还尝试解密未加密的值。 GitHub-35313
  • 现在,在为具有子类别的类别保存类别urlKey时,传递了正确的rowId参数。 以前,在保存类别URLKey时传递了错误的categoryId
  • 产品属性代码event已添加到保留的产品属性代码列表,这消除了与店面中使用此名称的属性相关的错误。 以前,当使用event时,应用程序在产品详细信息和搜索/产品列表页面上引发此错误: report.CRITICAL: Error: Call to a member function getStatus() on string in /home/mer33515/public_html/ee24develop/magento2ee/app/code/Magento/CatalogEvent/Observer/ApplyIsSalableToProduct.php:23
  • 现在,订购过程中出现的店面验证错误消息会显示得一致。 以前,消息出现、折叠然后重新出现。 GitHub-35651
  • 由于运行PHP 8.1的部署上弃用的trim()函数,AMQP使用者不再失败。以前,当AMQP使用者在安装后启动时,Adobe Commerce引发此错误: Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in .../vendor/magento/framework-amqp/Config.php on line 143GitHub-35380
  • getFilteredTimerIds方法现在按预期工作。 类Magento\Framework\Profiler\Driver\Standard\Stat现在与PHP 8.1兼容。以前,调用此方法时Adobe Commerce会引发异常。 GitHub-35307
  • 删除了imagemin-svgo库上的依赖项。
  • 现在,当第一个注释以//开头时,缩小模板流程可成功处理连续注释。 GitHub-34880
  • 更正了由BundleGraphQl模块发出的数据库查询,该查询返回了以下错误: "debugMessage": "Notice: Undefined offset: 16 in vendor/magento/module-bundle-graph-ql/Model/Resolver/Options/Collection.php on line 130"GitHub-34991

常规修复

  • 当管理员用户从管理员统计数据仪表板选择​ Last 24 Hours ​选项时,Adobe Commerce现在会显示准确的时间范围。 以前,Adobe Commerce显示的时间范围不正确。 发生这种情况是因为数据库的时区保持不变。
  • 现在可以为整数和小数数量生成贷项通知单。 以前,仅支持整数数量。
  • 仅类型​ 数值 ​的客户邮政编码输入验证规则现在可在​ Edit Customer Address ​字段(Store > Attribute > Customer Address)中按预期工作。 以前,保存客户地址信息时不会进行邮政编码验证。
  • 访问仅限一个网站的管理员用户现在可以使用“以客户身份登录”功能成功登录到管理员。
  • 现在,全球共享的客户帐户的地址根据当前网站的允许国家/地区列表进行了验证并成功保存。 以前,这些帐户针对客户注册网站中允许的国家/地区进行错误验证。
  • 禁用​ Enable Hierarchy Functionality ​后,不再显示CMS页面层次结构中的痕迹导航。 以前,会显示痕迹导航,当购物者点击这些痕迹导航时,会显示404页面。 GitHub-35513
  • 通过管理员从所有网站中删除产品不再导致以下错误: SQLSTATE[42000]: Syntax error or access violationGitHub-35133
  • 现在,超过最大登录失败尝试次数的客户可以在密码重置后登录。 GitHub-34981
  • 现在,当管理员用户添加新元素时,动态行组件会按预期运行。 以前,在将新的简单产品添加到分组产品时,行组件的行为不正确。 GitHub-34850
  • 更正了app/code/Magento/Backend/etc/menu.xsd文件中的拼写错误和语法错误。
  • 已更新app/code/Magento/Authorization/README.md文件以准确描述表创建。
  • recordLogin方法已更新,以设置用户模型的登录值,并保留admin_user表的logdatelognum字段中的正确值。 以前,不会记录更新后管理员用户的登录尝试。
  • GitHub问题模板已转换为开发人员体验问题和功能请求的问题表单。
  • 现在,针对管理员客户编辑表单的网站范围,已正确实施Is required客户属性。
  • 禁用​ Use in Filter Options ​设置后,客户和客户地址属性的​ Grid Filter Condition Type ​字段在属性编辑页面上不再可见。
  • 现在,如果商家在创建产品时未能输入可选的SKU属性值,Adobe Commerce会显示信息性错误消息。 以前,当属性为可选属性时,应用程序引发此异常: Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/mg244/project-community-edition/vendor/magento/module-eav/Model/Entity/AbstractEntity.php on line 932GitHub-35810
  • My Quotes ​页面上的​ Show my quotes ​筛选器现在按预期工作。 以前,筛选结果包括其他管理员用户的引号。

礼品卡

  • 礼品卡产品金额现在与导入期间CSV文件中指定的金额相同。 已添加检查现有选项,并且现在基于唯一键更新以前的值。 以前,当礼品卡多次导入时,礼品卡数量会增加一倍。

礼品包装

  • 当在订单层对包含实物和虚拟产品的订单应用礼品包装时,礼品包装价格现在按预期显示在订单摘要块中。 以前,Adobe Commerce不显示礼品包装价格。

GraphQL

  • 在GraphQL代码中实现多个接口的Types现在可以用&符号分隔,也可以按照GraphQL @doc规范使用,分隔。
  • setShippingAddressesOnCart突变现在支持将数字区域代码设置为region。 以前,此突变对数字区域代码值不起作用。
  • products查询现在仅返回与指定范围关联的审核。 以前,查询会返回来自所有商店的审核。
  • 现在,在GraphQL请求期间会遵循类别权限。
  • customer查询现在正确筛选具有指定fromto范围的订单。 GitHub-31537
  • product查询现在在聚合中返回正确的类别数据。 以前,attribute_code.category_uid返回category_id的值,而不是category_uid的值。
  • customerOrders查询不再引发\"model\" value should be specified错误。 GitHub-35852
  • customer查询现在根据范围筛选订单。 现在,您可以指定查询是应按商店、网站还是全局筛选订单。
  • categoryList查询现在返回锚定和未锚定父类别的准确产品计数。 新的is_anchor属性已添加到类别集合选定列列表。 以前,请求返回的产品数量为0。 GitHub-36300
  • 现在,在创建令牌以登录到多存储部署中的非默认存储区时,generateCustomerTokenAsAdmin突变按预期工作。 GitHub-35084
  • 现在,当使用过期的令牌时,createEmptyCart突变会按预期引发异常。 GitHub-26112
  • 购物车查询错误消息已提供更多信息。 GitHub-34546
  • products查询的响应中的聚合数据现在包含价格类型属性attribute_codelabel的正确值。 GitHub-28878
  • 当数据库前缀具有非null值时,products查询按预期返回类别信息。 以前,它返回Internal server errorGitHub-36117
  • 更正了getCustomerIsGuest方法的返回类型。 GitHub-29529
  • Magento\CatalogGraphQl\Plugin\DesignLoader插件已重构。
  • 现在,当购物车由GraphQL突变初始化时,购物车重新加载只会按预期触发一次。 以前,购物车加载会触发对库存库存的不必要的购物车重新验证,这会在每次加载购物车时消耗大量资源。
  • 已将gift_message类型添加到OrderItemInterfaceGitHub-29418
  • GraphQL响应中返回的产品选项现在仅包括用户所属的目录中的产品。 如果用户属于共享目录,则仅返回共享目录中的产品。 如果用户是访客或未包含在自定义共享目录中,则仅返回公共目录中的产品。

Google ReCAPTCHA

  • 已解决Google V3 reCAPTCHA管理员登录的var/log/exception.log文件中的reCAPTCHA错误,并且未记录任何错误消息。 以前,当管理员用户配置其​ Configuration > Security > Google reCAPTCHA Admin Panel ​设置时,每隔几秒会引发一次以下错误: main.ERROR: Can not resolve reCAPTCHA parameter. {"exception":"[object] (Magento\Framework\Exception\InputException(code: 0): Can not resolve reCAPTCHA parameter. at /home/xxxxxxx/public_html/vendor/magento/module-re-captcha-ui/Model/CaptchaResponseResolver.php:25)"} []GitHub-34975

图像

  • 更新了PDF发票单的徽标大小建议。

导入/导出

  • 导入与现有产品具有相同数字URL密钥的产品,但没有其终端字母字符,当管理员中的​ Product URL Suffix ​设置为空时,不再导致验证错误。
  • 现在,bin/magento app:config:import命令在包含某些cron表达式时已成功导入config.php文件的内容。 以前,导入失败,出现此错误: Import failed: Notice: Trying to access array offset on value of type null in [..]/vendor/magento/module-config/Model/Config/Backend/Currency/Cron.php on line 66GitHub-31428
  • 使用AWS S3作为远程存储时,完全导出现在可以正常工作。 以前,由于上传的文件大小,导出失败。
  • 现在,当CSV文件中缺少库存数据列时,可正确导入产品状态。 以前,在产品导入后,默认来源会自动分配给产品,其数量设置为零,并且在CSV文件中缺少库存数据列时,其状态会列为缺货。
  • 现在,如果导入包含100多条记录,则导入高级定价值将为新记录和更新的记录提供正确的计数。 以前,导入成功消息提供的计数错误。
  • 现在,导出的CSV文件包含以多种语言保存的类别名称的正确路径。 已为类别收藏集添加了商店ID。 以前,导出的文件包含不同语言的混合路径,而不是从默认商店视图派生的类别路径。
  • 现在,通过导入在特定商店视图中更新产品的自定义选项可成功完成。 以前,如果将与产品相关的行拆分为多个批次,则会引发内部服务器错误。
  • Fixer.io导入服务现在按预期工作。 汇率现已导入成功。 GitHub-36010

索引

  • catalogpermissions_category索引的索引器batch_size现在已按预期更改为env.php文件中提供的值。 以前,索引器batch_size覆盖的路径中的拼写错误会阻止将批次大小更改为env.php中提供的值。 GitHub-652
  • 现在,当目录包含的捆绑产品未分配给任何网站时,价格重新索引会成功运行。 以前,运行产品价格指数时出现以下错误: Warning: Undefined array key <bundel product id > in vendor/magento/module-bundle/Model/ResourceModel/Indexer/Price/DisabledProductOptionPriceModifier.php on line 117GitHub-35796

基础架构

  • 为支持Adobe Commerce,在数据库转储中添加了DATEDATETIME值的清理。 以前,数据库备份表中客户/报价/订单表的日期时间类型字段不会经过清理。
  • escaper.js escapeHtml函数现在根据InnerHtml规则将&特殊字符转换为"$amp;"。 此通用解决方案解决了标题输入框中的特殊字符和字符引用转换问题,并将插入的确切值保存下来。 以前,在内容层级的节点名称中,&字符编码不正确。
  • 第三方colinmollenhour/php-redis-session-abstract模块和PHP 8.1的问题已得到解决。 GitHub-35634

媒体集

  • 旧版媒体集现在默认处于禁用状态。 以前,Enable old Media gallery ​设置为​ Yes
  • 新媒体集已得到优化,以改进类别页面中目录树的加载。

记录

  • 您现在可以为0字节的日志文件生成系统报告。 以前,当一个或多个文件为空时,Adobe Commerce在为日志文件集合生成报告时抛出错误。

订购

  • “管理员销售订单贷项通知单”页现在显示使用商店贷项和多张发票创建的订单的正确总计。 以前,总计计算不正确,用户无法生成贷项通知单。
  • 现在,安装脚本中传递的订单前缀已正确添加到订单ID中。
  • 现在,当订单包含具有长自定义文本值的产品时,即可成功加载订单详细信息页面。 以前,订单详细信息页面无法加载,并且如果产品包含文本自定义选项的长值,则sales_order_item.product_options列中的值未正确存储。
  • 部分退款的订单的店面订单状态现在准确。 以前,当应用部分退款时,订单在发运后仍处于处理状态。 GitHub-35528
  • 对于来宾用户创建的订单,客户组现在准确地表示为​ 未登录。 以前,访客订单摘要中的客户组为空,这会影响确认电子邮件和订单导出。 GitHub-35440
  • 在发出贷项通知单并退款客户后,现在已按预期将​ Closed ​状态分配给虚拟订单。 以前,当从管理员添加注释时,虚拟产品在“状态”下拉列表中显示为​ Complete,但在订单注释的页脚中显示为​ ClosedGitHub-35283
  • 客户现在可以订购数量少于1的产品,并且产品数量现在严格键入为float。 以前,由于产品数量被严格键入为int,因此产品数量少于一个的订单失败,并显示以下消息: Some of the products are disabledGitHub-36060
  • 当​ Apply discount on prices ​配置选项设置为​ including taxes ​时,现在可正确计算运费退款。
  • 现在,在存档订单后,系统会异步更新发票、发运和贷项通知单网格。
  • 不再因并发的相同GraphQL请求而产生重复订单。 现在,报价最多可锁定10秒,以防止创建重复的订单,第二个请求会失败,并出现以下错误: The cart isn't activeThe order has already been placed and is currently processing。 可以通过Magento\Quote\Model\PlaceOrderMutexlockWaitTimeout参数的di配置此锁定值。 GitHub-36274
  • 将备注添加到已存档的订单时,不会再将其返回到未存档的订单网格,同时会保留其已存档状态。
  • 公司属性值现在按预期显示在结账工作流的帐单和送货地址部分。 以前,公司属性无法在订单详细信息页面上正确显示,因为在订单创建期间未正确设置商店。 仅当在多存储部署中将​ 主网站 ​的​ 显示公司 ​属性设置为​ optional ​时,才能正确存储属性值。
  • 在选中​ My billing and shipping address are the same ​复选框时,customer_address_id值现在为新帐单地址按预期设置。 在设置送货地址的客户地址ID之前,还引入了一个附加条件来标识帐单地址是否与送货地址相同。
  • 订单投放的并发问题已得到解决。 以前,如果从不同浏览器同时或几乎同时下达了两个订单,则会为这两个订单分配相同的订单ID。 GitHub-35833
  • 现在,在启用异步索引的情况下为免费产品下达自动开票的订单可按预期运行。 没有向这些订单的sales_order_grid or sales_invoice_grid表添加任何条目。 以前,Adobe Commerce引发异常,因为应用程序尝试在放置订单期间为网格编制索引,而不是依赖cronGitHub-36334

页面生成器

  • 现在,您可以使用页面生成器拖放功能将图像批量导入图库。
  • 页面生成器滑块CSS规则的问题已得到解决。 GitHub-34527
  • 页面生成器产品属性列表中现在有DropdownText areaText field属性。 以前,只有DropdownText area属性可用。

付款

  • 对于在送货地址和帐单地址中指定的国家/地区免除COD后,店面结账工作流中不再呈现COD付款方法。 以前,不实施此功能的管理员配置设置。
  • 如果购物者未保存令牌,则管理员订单创建工作流的“付款”部分中将不再显示保管库付款信息。 GitHub-33954
  • 在购物车价格规则应用折扣后,自定义价格不再翻倍。 GitHub-35154
  • 现在,当使用“零小计结帐”付款方式下达订单时,新订单挂起状态会按预期处理。
  • 现在,在通过GraphQL使用PayPal Express为访客购物者创建订单时,会遵循访客电子邮件设置。 以前,电子邮件地址集会被在PayPal帐户中设置的电子邮件地址覆盖。

Braintree

  • 现在,订单ID已添加到支付交易的结算请求中。
  • 当商家单击​ Reports > Braintree Settlement ​时,Adobe Commerce不再引发以下错误: Error: Undefined constant Braintree\PaymentInstrumentType::ANDROID_PAY_CARD in /var/www/html/vendor/paypal/module-braintree-core/Ui/Component/Report/Listing/Column/PaymentType.php:49GitHub-35434
  • 在管理员上关闭保险库时,customerPaymentTokens查询不再返回Braintree令牌。
  • 已为意大利和西班牙启用​ Pay Later ​按钮和横幅。
  • 启用Braintree支付方式后,管理员用户现在可以创建订单或重新排序。 以前,Adobe Commerce引发此错误: report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174
  • 启用BraintreePayPal并禁用​ Enable Card Payments ​时,使用Braintree付款方式的签出现在成功完成。 以前,进度条从未解析,Adobe Commerce显示此控制台错误: adapter.js:66 Uncaught TypeError: Cannot read properties of undefined (reading 'clientToken')at Object.getClientToken (adapter.js:66:66)GitHub-35961
  • 已实施欺诈防护、ACH支付和本地支付方法Web挂钩。 欺诈防护Web挂接仅在Braintree中做出风险决策时触发。 只有在ACH付款更新为settledsettlement decline后,才会触发ACH Web挂接。
  • 已从管理员样式部分的所有​ PayPal ​按钮中删除​ Tagline ​和​ Layout ​配置字段。
  • 当购物者更新其帐单地址时,Braintree电子仓库付款方法选项在结账工作流中保持选中状态。 以前,当购物者取消选择​ My billing and shipping address are the same ​按钮时,将取消选择付款方式。
  • 现在当从管理员启用​ Send Line Items ​配置设置时,为PayPal交易传递行项目。
  • ACH付款方式​ Account Number ​字段上的验证逻辑现在支持4到17位文本。
  • 从管理员关闭保管库时,customerPaymentTokens查询不再返回Braintree令牌。
  • 启用Braintree支付方式后,管理员用户现在可以为客户创建订单或重新排序。 以前,Adobe Commerce引发此错误: report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174
  • 购物者现在可以在已禁用​ Enable Card Payments ​的店面中使用Braintree付款方法。 以前,Adobe Commerce引发此JavaScript错误: _adapter.js:66 Uncaught TypeError: Cannot read properties of undefined (reading 'clientToken')at Object.getClientToken (adapter.js:66:66).

性能

  • 在对大型目录进行部分重新索引期间,价格索引器现在会按预期删除已过时的数据。 以前,重新索引过程在替换过期记录之前会删除这些记录,这会导致产品偶尔从店面中暂时消失。 GitHub-35616
  • bin/magento/setup:upgrade命令的性能已得到改进。 以前,此命令会重新创建数据库触发器,这会在命令执行期间导致严重停机。 此外,索引器没有恢复为计划模式,而是保持保存模式。 GitHub-33386
  • 现在,按API更新层价格的执行速度更快。 以前,更新层价格会生成不必要的SELECT查询,当将许多客户组分配给产品时,这会延迟执行。
  • 已优化包含目录小部件产品列表的页面的加载。 以前,直接从数据库加载非全局属性。

报告

  • 更新类别规则时,管理日志报告现在显示准确的​ Value before change ​值。
  • 现在,从日期选取器中选择后,订单总计报表​ ​到​ ​日期可正确显示。
  • Braintree/Ui/Component/Report/Listing/Column/PaymentType.php中的ANDROID_PAY_CARD常量已替换GOOGLE_PAY_CARD。 这可解决Braintree报表中的问题。

退货授权(RMA)

  • RMA注释字段(Orders > Return)不再包含多余的空格。 (<textarea><?php标记现在位于一行中。
  • 现在,在保存产品时,Enable RMA ​字段的​ Use Config Settings ​复选框会按预期保存其值。

审核

  • 对特定范围具有受限访问权限的管理员用户现在可以按预期删除产品评审。

角色

  • 为​ Stores > Configuration > Services > OAuth ​添加了缺失的ACL。 以前,在设置角色权限时,无法定义对此OAuth配置设置的访问权限。

Search search-heading

  • 启用​ Minimum Terms to Match ​配置设置后,在引号中搜索字符串现在可以按预期工作。 以前,Adobe Commerce引发此错误: {"error":{"root_cause":[{"type":"parsing_exception","reason":"[match_phrase] query does not support [minimum_should_match]' ...
  • 销售订单客户网格上客户记录的​ 注册点 ​搜索筛选器现在可在订单创建过程中按预期工作。
  • 多词查询的搜索建议质量已得到改进。
  • 启用GitHub-36055后,搜索结果现在包含所有可用产品的缺货选项输出​ Display Out Of Stock Products

配送

  • 当免运费购物车规则设置为仅匹配购物车中项目的子集时,可以正确计算FedEx、USPS和UPS的运费。
  • 当订单总额小于符合免费发运条件的指定最小订单金额时,“管理发运”页面不再显示免费发运选项。 GitHub-33697
  • 在显示送货地址或客户地址时,Adobe Commerce现在遵循管理员客户​ Show Company ​配置设置。 禁用此设置后,发运公司将不再包含在发运、客户地址或数据库订单记录中。 以前,尽管设置被禁用,仍会显示该信息。 GitHub-33729
  • 在估计装运时,删除了过多的报价保存操作。
  • storeId范围现在直接从$request->getStoreId()应用,以确保在报价由管理员用户创建时不会丢失范围。 以前,当管理员使用第三方模块创建报价时,有时会出现送货方法问题。
  • 现在为其url_key设置已在存储视图级别被覆盖的产品生成SEO友好的URL。 以前,类别产品URL不会重定向到SEO友好的URL。
  • 对运输成本应用折扣后,Adobe Commerce不再引发最小订单金额错误。
  • 现在,在对装运应用折扣后应用税项时,可以正确计算装运退款。
  • 通过GraphQL cart查询请求的购物车的所有适用促销活动都将一起返回。 促销活动包括行项目折扣、购物车规则/折扣、优惠券、礼品卡和商店信用。 GitHub-35545
  • 已将price_excl_taxprice_excl_tax类型添加到setShippingMethodsOnCart突变的输出。 GitHub-31206
  • 现在,GraphQL响应会按预期传递唯一的送货ID,并且订单的送货详细信息会发送到GraphQL的多个地址。

暂存

  • 在更新完成后,重新计划暂存更新的结束日期将不再导致错误。 以前,管理员无法打开产品页面和产品网格,Adobe Commerce引发此错误: report.CRITICAL: Exception: Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "1" already exists
  • 测试仪表板现在显示正确的记录总数,仪表板分页现在按预期工作。 以前。 仪表板最多显示20条记录。
  • 现在,在部署许多商店时,内容暂存预览加载速度更快。 现在,预览重新索引仅重新索引选定的存储。
  • 现在,可以在计划预览模式下将产品添加到购物车。 使用这些参数更新计划预览模式中的痕迹导航链接更正了此问题: versiontimestampsignature

税金

  • Display Zero Tax Subtotal ​配置设置现已按预期应用于提供多种配送方法的部署中的订单。 以前,在选择配送方式之前,甚至在禁用此设置的情况下,结账期间购物车页面上都会显示零税字段。 GitHub-35561
  • Adobe Commerce现在可以在运行PHP 8.1的部署中的storefront category页面上显示已分组的含税产品。以前,Adobe Commerce不显示产品列表,并引发此异常: main.CRITICAL: Exception: Deprecated Functionality: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/m24/vendor/magento/module-tax/Pricing/Render/Adjustment.php on line 188 in /var/www/m24/vendor/magento/framework/App/ErrorHandler.php:61GitHub-35500
  • 商家不能再将计划的更新移动到包含相同规则ID的其他更新。 以前,当更新移动到包含相同规则ID的其他更新时,购物车价格规则的计划更新会创建重复的计划。
  • 现在,当没有与客户地址关联的增值税ID时,自动客户组分配将起作用。 如果地址不含增值税ID,则被视为属于非增值税注册客户,Adobe Commerce会将该客户组更改为非增值税组。 以前,启用​ Enable Automatic Assignment to Customer Group ​后,当从客户帐户中删除VAT ID时,客户帐户不会自动分配给customerGroup
  • 现在,在暂存预览模式下,将为暂存目录规则显示正确的动态块。 以前,会显示不相关的动态块。
  • 在结账过程中应用多批配送时,现在可以在发票和贷项通知单的“税务汇总”部分中正确显示多税额。
  • 当订单小计(包括税额以及固定产品税额)超过购物车页面上的购物车规则条件时,不再应用折扣。 以前,即使总计超过购物车规则条件,也会应用折扣。
  • 使用GraphQL添加或更新访客购物者地址时,您现在可以指定vat_id

测试

  • 修复了ICUlibxml库不同版本的单元测试错误。
  • 开发人员现在可以指示系统在特定的存储视图中执行数据夹具。 新的可选参数scope接受与商店夹具别名相对应的string
  • 添加了使用可选count参数生成数据夹具多个实例的功能。
  • 已从MFTF框架中的开发依赖项中删除非本机array_first函数。

翻译和区域设置

  • 现在,内联翻译可正确处理特殊字符,包括位于SCRIPT标记中的短语中的扩展Unicode字符。 以前,使用内联翻译时,日语字符在编辑的脚本中呈现不正确。
  • 现在,在URL密钥生成过程中,产品名称中的ñ字符已转换为n
  • 运行bin/magento i18n:collect-phrases的输出现在包括预期的depend构造中的邮件模板转换。 GitHub-35449
  • 现在,可以在产品页面属性集(组合框)中直接输入日语字符。 以前,在MacOS上运行Firefox浏览器时,直接在此组合框中输入日语字符会导致字符更改或删除。 在所有浏览器中可以更好地处理日语字符转换的textInputHTML属性已替换ValuevalueUpdate属性。
  • getOptions方法现在可根据存储视图正确获取price属性标签值。 以前,在GraphQL操作期间为不正确的存储视图转换price属性。

UI

  • 现在,网站特定的货币可按预期用于“管理产品”网格中的“特殊价格”、“成本”和“MSRP”列。 以前,当按商店视图进行筛选以获取特殊价格时,管理员目录产品网格中不会显示正确的货币符号。
  • 产品自定义选项的拖放功能现在可按预期使用。 当可自定义选项网格中有多个页面可用时,您现在可以将可自定义选项从一个页面移动到另一个页面。
  • 管理员仪表板图表现在按预期显示从当前日历年的年初到当前日期的YTD时间间隔。 以前,日期范围包括超过12个月。
  • 已添加店面主页中缺少的默认收藏夹。 GitHub-35493
  • 管理员现在可成功显示每个管理员用户的最新登录日期。 以前,当管理员用户首次登录管理员时,管理员用户网格上会显示一个空的登录日期值。
  • 预览电子邮件模板功能(Marketing > Communications > Email Templates)现在可正确显示模板。 以前,预览图像会被截断。 GitHub-35697
  • 添加了new-shipping-address-modal类以支持设置新送货地址模式的样式。
  • 在管理员​ Stores ​上的Search Weight属性的Storefront Properties输入字段下添加了信息性文本 > Attributes > Product
  • 现在,电子邮件预览在单独的选项卡中打开,而不是在弹出窗口中打开,这样可以更全面地查看电子邮件内容。 以前,电子邮件内容会被截断。
  • 用户角色网格(管理员​ System > Permissions > User roles > Administrators)的筛选器函数现在按预期工作。 现在将单独处理数组值。 以前,当您尝试在此网格中输入查询时,Adobe Commerce引发此控制台错误,并且页面未加载: Uncaught TypeError: Cannot read properties of nullGitHub-35993
  • 在通过REST API创建客户时,添加了属性值的验证。 现在,如果提供了无效的属性值,创建过程将失败。 以前,没有验证性别,这不是必填字段。 在客户创建期间,为性别传递的值保存在customer_entity表中。
  • 现在,结账期间添加的地址将保持其预期格式。 以前,会忽略空白行。
  • 更改产品网格的列网格视图并为自定义视图选择新列不再触发“选择所有网格列”操作。 以前,列框消失,并且网格中的产品被选中或取消选中。 GitHub-36302
  • 管理员用户现在可以成功清除管理员已完成任务日志。 以前,管理员显示此错误: Something went wrongGitHub-36255
  • 主题标题设置Welcome Text现在可以包含单引号字符。 以前,Adobe Commerce引发此JavaScript错误: Uncaught SyntaxError: Unable to process binding "ifnot: function(){return customer().fullname }"

URL重写

  • 现在,将全局“所有存储视图”作用域中的产品可见性更改为​ Not Visible Individually,将只删除未覆盖visibility属性的存储视图的URL重写。 以这种方式更改产品可见性也会为所有商店视图(包括已覆盖URL键属性(但不包括可见性设置)生成URL重写。 以前,当可见性设置更改时,不会应用URL重写规则。

Visual Merchandiser

  • 当产品与规则匹配时,您无法再手动更改可视化促销员类别列表中的产品位置。
  • 仅限一个商店访问的管理员用户无法再将Visual Merchandiser中的产品拖放到类别中。 他们现在可以使用​ Position ​列重新排列产品位置。 以前,这些用户只能通过拖放来更改类别中的产品位置。
  • 现在,类别编辑页面的“类别中的产品”部分可显示正确数量的可配置产品。 现在,可使用正确的表列检索可配置产品的数量。

Web API框架

  • 现在,如果图像未从产品中删除,则REST API DELETE /rest/V1/products/:sku/media/:entryId返回错误消息,因为该图像已分配给其他存储视图中的角色。 以前,即使未成功删除图像,API也会返回成功的响应。
  • 商家现在可以使用REST API为总金额为零的订单创建贷项通知单。 以前,Adobe Commerce显示此错误: The order does not allow a credit memo to be created. The credit memo's total must be positive. We can't create a credit memo for the invoice/order
  • 使用REST API更改产品的网站分配后,管理员产品编辑页面现在可准确反映产品分配。 GitHub-36281
  • 在批量REST API请求更新产品期间,无法再为多选属性包含重复的选项ID。 以前,在发送批量API请求以更新产品时,您可以为多选属性设置重复的选项ID。 当该多选属性配置为包含在分层导航中时,EAV索引失败并出现Duplicate entry错误。
  • 购物车中的产品名称现在会按预期使用指定的商店视图的值。 以前,购物车中的产品名称始终在REST API购物车响应中返回默认商店视图值。
  • 现在可以使用REST API更新购物车项目自定义选项值。 GitHub-35768
  • 现在,在启用了清单的部署中,超过20个sourceItems的批量API请求已成功完成。
  • 现在,修复器货币服务与通过ApiLayer生成的密钥一起正常工作,并且正确导出汇率。 以前,当商家尝试通过管理员导入汇率时,Adobe Commerce会引发错误。
  • 您现在可以使用REST API /rest/V1/bulk?searchCriteria[filter_groups]请求按搜索条件查询批量操作。 以前,返回以下错误: report.CRITICAL: Report ID: webapi-624bbb1db96c4; Message: Item (Magento\AsynchronousOperations\Model\Operation) with the same ID "0" already exists.
  • 现在,可以使用管理基本价格API在管理员目录和店面目录搜索页面上正确更新产品价格。 GitHub-33767

愿望清单

  • 登录后,购物者现在可以将产品添加到愿望清单。 以前,由于登录后表单键验证出现问题,随添加到愿望清单请求一起提交的表单键无效。
  • 来宾客户通过确认电子邮件确认其帐户后,产品现在会按预期从产品列表和查看页面添加到愿望清单。 以前,产品在帐户确认后不会添加到希望列表中。
  • 现在,当购物者尝试将具有产品select自定义选项无效值的项添加到愿望列表时,addProductsToWishlist查询会返回信息性错误消息。 以前,下拉自定义选项值的服务器验证缺失,导致数据库中的值无效。 因此,终结点返回此内部服务器错误: GraphQL endpoint returns Internal server error with "Call

已知问题

问题:从2.4.5之前的产品版本升级到Adobe Commerce 2.4.6或更高版本后,暂存销售规则标签可能不匹配。 解决方法:在升级期间在更新元数据步骤之前应用ACSD-50625_2.4.5-P1.patch。 请参阅从版本< 2.4.5🔗升级时的salesRules标签问题。

解决此问题的常规步骤:

  1. 下载所需的修补程序。 请参阅从版本< 2.4.5🔗升级时的salesRules标签问题。
  2. 按照升级过程管理包阶段中所述的升级步骤执行升级
  3. 在升级期间在管理包阶段之后和更新元数据阶段之前应用此修补程序。请参阅如何应用Adobe提供的编辑器修补程序
  4. 完成升级过程。

问题:如果启用免运费(Stores > Configuration > Sales > Delivery Methods),并且显示的运费含税,则无法创建贷项通知单。 当您尝试创建贷项通知单时,Adobe Commerce会引发此异常: "Division by zero".vendor/magento/module-sales/Model/Order/Creditmemo/Total/Tax.phpLine 139GitHub-36800

解决方法:此问题的修补程序现已可用。 转到Quality Patches Tool:搜索修补程序并搜索修补程序ACSD-50814。

合作伙伴投稿

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

合作伙伴
拉取请求
相关的GitHub问题
与号
magento/magento2#36529 magento/magento2#36224 magento/magento2#34117
magento/magento2#36726 magento/magento2#35546 magento/magento2#36334 magento/magento2#36628
埃尔根托斯
magento/magento2#36414
magento/magento2#36831
菲舍耶
magento/magento2#36329 magento/magento2#36304 magento/magento2#36239 magento/magento2#36187 magento/magento2#35738 magento/magento2#35631 magento/magento2#35540 magento/magento2#35436 magento/magento2#35033 magento/magento2#34186
magento/magento2#36641 magento/magento2#36338 magento/magento2#36554 magento/magento2#36646 magento/magento2#36648 magento/magento2#35325 magento/magento2#35711 magento/magento2#35488 magento/magento2#34321
透视工作室
magento/magento2#36036 magento/magento2#36031 magento/magento2#36027
magento/magento2#36337
MRM COMMERCE
magento/magento2#35807 magento/magento2#32979
magento/magento2#35994
Interactiv4
magento/magento2#35564
magento/magento2#35568
阿特维克斯
magento/magento2#33411 magento/magento2#33148 magento/magento2#33093 magento/magento2#32889 magento/magento2#32481 magento/magento2#31794 magento/magento2#29417 magento/magento2#25677
magento/magento2#35858 magento/magento2#29418
Aligent咨询
magento/magento2#31606
magento/magento2#31643 magento/magento2#31866
蓝橡果iCi
magento/magento2#31360 magento/magento2#31355
magento/magento2#31443 magento/magento2#31373 magento/magento2#32625
creativestyle
magento/magento2#30647
magento/magento2#30672 magento/magento2#32985 magento/magento2#30613

个人贡献者

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

参与社区成员
拉取请求
相关的GitHub问题
阿门克
magento/magento2#36663
magento/magento2#14495
方便
magento/magento2#36529
magento/magento2#36726 magento/magento2#35546
hostep
magento/magento2#36495
magento/magento2#36515
辛哈帕鲁
magento/magento2#36458
magento/magento2#36639
barryvdh
magento/magento2#36452
magento/magento2#32004 magento/magento2#36891
彼得雅普
magento/magento2#36414
magento/magento2#36831
engcom-Delta
magento/magento2#36411
magento/magento2#35971 magento/magento2#36841
freezy-sk
magento/magento2#36379
magento/magento2#36640
伊利尼茨基
magento/magento2#36370
magento/magento2#36482 magento/magento2#36471
pykettk
magento/magento2#36329
magento/magento2#36641
弗雷登
magento/magento2#36304
magento/magento2#36338
asim-blueprintprep
magento/magento2#36253
magento/magento2#36252
文本男孩
magento/magento2#36241
magento/magento2#36349 magento/magento2#29448
方便
magento/magento2#36224
magento/magento2#36334
弗雷登
magento/magento2#36187
magento/magento2#36554
谢尔宾斯基
magento/magento2#36036
magento/magento2#36337
德舍夫佐夫
magento/magento2#35990
magento/magento2#36230 magento/magento2#36651
巴舍夫
magento/magento2#35986
magento/magento2#35899 magento/magento2#36055 magento/magento2#36312 Smile-SA/elasticsuite#2772 plumrocket/module-layered-navigation-fix-magento-2.4.5#1
拉瓦萨罗维茨
magento/magento2#35948
magento/magento2#36539
特科托什
magento/magento2#35940
magento/magento2#36642
MeCapron
magento/magento2#35885
magento/magento2#36042
阿门克
magento/magento2#35848
magento/magento2#35939
毒蛇9x
magento/magento2#35846
magento/magento2#36643
拉利特莫汉
magento/magento2#35818
magento/magento2#36644
vo1
magento/magento2#35817
magento/magento2#36645
谢普菲
magento/magento2#35816
magento/magento2#36593
bgorski
magento/magento2#35807
magento/magento2#35994
pykettk
magento/magento2#35738
magento/magento2#36646
mrtuvn
magento/magento2#35656
magento/magento2#36647
pykettk
magento/magento2#35631
magento/magento2#36648
pmzandbergen
magento/magento2#35572
magento/magento2#35579 Smile-SA/magento2-module-store-locator#134
奥雷西奥
magento/magento2#35564
magento/magento2#35568
弗雷登
magento/magento2#35540
magento/magento2#35325 magento/magento2#35711
nicka101
magento/magento2#35524
magento/magento2#35719
nazarklovanych
magento/magento2#35441
magento/magento2#35558
pykettk
magento/magento2#35436
magento/magento2#35488
弗拉季斯拉夫西凯洛
magento/magento2#35216
magento/magento2#35417
Sental
magento/magento2#35060
magento/magento2#32177
诺瓦科夫斯基
magento/magento2#34992
magento/magento2#34991
埃尔法尼马尼
magento/magento2#34232
magento/magento2#34246 magento/magento2#34247
弗雷登
magento/magento2#34186
magento/magento2#34321
方便
magento/magento2#34117
magento/magento2#36628
khoimm92
magento/magento2#34061
magento/magento2#35481
dudzio12
magento/magento2#33892
magento/magento2#33820
kassner
magento/magento2#33859
magento/magento2#34439
杜沙比利
magento/magento2#33841
magento/magento2#35187
sergeynezbritskiy
magento/magento2#33803
magento/magento2#33802
肖恩 — 布里登
magento/magento2#33742
magento/magento2#34524
SilinMykola
magento/magento2#32889
magento/magento2#35858
阿利金特尔纳
magento/magento2#31606
magento/magento2#31643 magento/magento2#31866
拉瓦萨罗维茨
magento/magento2#31360
magento/magento2#31443
拉瓦萨罗维茨
magento/magento2#31355
magento/magento2#31373 magento/magento2#32625
krzksz
magento/magento2#30647
magento/magento2#30672 magento/magento2#32985 magento/magento2#30613
Usik2203
magento/magento2#29417
magento/magento2#29418

系统要求

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

安装和升级说明

您可以使用编辑器安装Adobe Commerce 2.4.6。

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