Magento Open Source2.4.6发行说明

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

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

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

其他发行信息

虽然这些功能的代码与Magento Open Source核心代码的发行版本捆绑在一起,但其中几个项目也单独发布。 每个项目的文档中都提供了特定于项目的单独发行信息,其中记录了这些项目的错误修复。

Magento Open Source2.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

平台增强功能

Magento Open Source2.4.6引入了对PHP 8.2的支持。PHP 8.1仍得到完全支持。

已从此版本中删除PHP 7.4支持。 无法在PHP 7.4上运行Magento Open Source2.4.6。

Magento Open Source现在支持:

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

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

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

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

    • friendsofphp/php-cs-fixer
    • symfony/console
    • symfony/event-dispatcher
    • symfony/finder
    • symfony/process
    • web-token/jwt-framework
  • jquery-migrate已从Commerce和Magento Open Source代码库中移除。 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

辅助功能更新

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

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

Adobe Commerce与Adobe IMS集成

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

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

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

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与Magento Open Source2.4.6兼容。

PWA Studio

PWA Studiov.13.0.x与Magento Open Source2.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年夏季发布。

修复的问题

我们已在Magento Open Source2.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命令时,Magento Open Source不再引发以下异常: 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
  • bin/magento setup:upgrade现在在首次执行composer install --no-dev后成功执行。 GitHub-36351
  • 异常和异常栈栈跟踪条目现在包含在var/log/exception.log中。 GitHub-36054

现在,当您使用命令行设置不带密码的Redis连接时,Magento Open Source会引发参数验证错误。

辅助功能

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

屏幕阅读器

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

屏幕阅读器现在宣布:

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

捆绑产品

  • 现在,通过API更新特定商店视图的捆绑产品不会覆盖同一捆绑产品的其他商店视图数据。 以前,捆绑产品选项标题会被其他商店视图的第一个选项标题覆盖。
  • 使用荷兰语言环境时,现在可以从管理员​ Catalog > Products ​成功筛选捆绑产品。 以前,当您尝试筛选Type: Bundle Product时,Magento Open Source显示此错误: Something went wrong with processing the default view and we have restored the filter to its original stateGitHub-35704
  • 当捆绑产品的特殊价格超过1000时,产品网格不再引发异常。 以前,当您按SKU搜索产品或导航到​ Catalog > Products ​时,Magento Open Source引发此错误: 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 ​的导出值现在与管理员配置设置中设置的默认值匹配。
  • Magento Open Source现在可以正确计算带有发运折扣的订单退款总计。
  • Google reCAPTCHA现在可按预期处理店面订单。 以前,当购物者首次尝试下订单之前未首次选择Google ReCAPTCHA时,Magento Open Source会显示这些错误: ReCaptcha validation failed, please try againNo such cart with id = ID
  • 现在,验证码图像刷新遵循管理员配置设置,并在设置被禁用时未触发。 以前,无论设置是启用还是禁用,只要付款方式发生更改,就会触发刷新。 GitHub-34855
  • 当购物者更改购物车页面上的产品数量而未更新购物车,然后尝试导航到下一页时,Magento Open Source现在会按预期显示确认弹出窗口,以便将购物者重定向到下一页。
  • 现在,在管理员减少购物车中的产品数量后,购物者可以从购物车中减少该产品的数量。 以前,当购物者尝试减少产品数量时,Magento Open Source引发以下错误: The requested qty is not availableGitHub-35780
  • 在多配送结帐期间,当产品数量超过配置的最大值时,Magento Open Source不再在JavaScript控制台中引发错误。 Magento Open Source现在改为显示信息性错误消息。 GitHub-36184
  • 当购物者使用键盘上的向下箭头键更改产品数量时,购物车页面上的商品数量不再显示为负数。 GitHub-36299
  • 在更改购物者所属的客户组后,购物者不能再将现在不允许的类别中的产品添加到购物车中。 当权限配置设置发生更改时,Magento Open Source现在会检查特定类别的客户群组权限访问权限。
  • 在创建管理员订单之前,客户购物车不再清空,如果取消或放弃订单,购物车内容现在可以恢复。 现在,仅在创建订单后才会从购物车中删除项目。 以前,每当管理员用户尝试在管理员管理购物车页面上创建订单时,购物车都会被清空。
  • 运行bin/magento catalog:image:resize后,迷你购物车现在会显示正确的产品图像。 以前,所有图像都替换为默认的产品占位符图像。 GitHub-35535
  • 当送货地址包含扩展属性时,现在可以成功完成签出。 以前,Magento Open Source引发此错误: Object of class Magento\Quote\Api\Data\AddressExtension could not be converted to stringGitHub-34202
  • 如果所需的产品选项没有值,addBundleProductsToCart突变将不再向报价中添加产品。 GitHub-25676
  • 当将产品添加到购物车中的权限不足时,addProductsToCart突变失败时,Magento Open Source现在会返回信息性消息。
  • 当使用“快速订购”添加的产品数量超过可用库存时,Magento Open Source不会再在“购物车”页面上引发错误。

购物车价格规则

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

目录

  • 产品列表小组件不再为登录购物者显示不正确或缓存的价格。 主页小部件中显示的价格现在与购物者的地址匹配,并在购物者更新地址时更新。 以前,浏览器缓存不会根据客户组税则更新主页上的产品价格。
  • 现在,比较产品列表功能可在多网站部署中正常工作,并且具体取决于网站。
  • 重新加载产品详细信息页面时,Magento Open Source不再显示上一页的数据。 以前,在重新加载产品详细信息页面时,来自第一个选项卡的数据会与新加载的数据合并一秒。
  • 现在,可以按预期在移动设备的主菜单中展开具有子类别的类别。 以前,购物者无法打开或扩展移动部署中具有子类别的类别。 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-36049
  • 现在,当购物者从“我的购物车”页面修改可配置产品时,会在产品详细信息页面中预先选择样本选项“颜色”和“大小”属性。 (jQuery 3.x版本现在支持swatchRenderer构件名称,该名称现在为驼峰式大小写。) 以前,不会预先选择样本选项。
  • 现在,当客户订阅了价格下降警报时,将通知客户产品价格下降。 以前,由于应用程序级别的缓存,无法始终发送价格下降通知。
  • 现在,基于具有​ is not one of ​条件的SKU的目录规则可按预期工作。
  • Magento Open Source不再基于类别路径错误地假定一个类别是另一个类别的父类别。 以前,当两个类别相邻,并且一个类别ID以另一个类别的类别ID开头时,Adobe Commerce会假定这些类别具有相同的父类别。 GitHub-32464

可配置的产品

  • 当管理员用户手动将产品添加到已分配了许多简单产品的可配置产品时,Magento Open Source不再引发错误。 以前,Magento Open Source显示此错误: Something went wrong with processing the default view and we have restored the filter to its original state
  • 在禁用延期交货的部署中,购物者不能再向其购物车添加可销售量为0的可配置产品。 现在Magento Open Source表示产品缺货。 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作业现在已成功执行。 以前,Magento Open Source在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。

电子邮件

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

框架

  • 当​ 欧盟国家/地区 ​设置中没有国家/地区(Stores > Configuration > General > Country options > European Union Countries)时,管理员用户现在可以成功打开管理员​ Store > Configuration ​页面。 以前,当管理员用户尝试打开此页时,Magento Open Source引发此错误: 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
  • 现在,可以在运行Magento Open Source2.4.3-p2的部署中按预期重新授权OAuth集成。 以前,重新授权失败,错误为: The attempt to post data to consumer failed due to an unexpected error. Please try again later。 Magento Open Source还尝试解密未加密的值。 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使用者在安装后启动时,Magento Open Source引发此错误: 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兼容。以前,在调用此方法时,Magento Open Source会引发异常。 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 ​选项时,Magento Open Source会显示准确的时间范围。 以前,Magento Open Source显示的时间范围不正确。 发生这种情况是因为数据库的时区保持不变。
  • 现在可以为整数和小数数量生成贷项通知单。 以前,仅支持整数数量。
  • 仅类型​ 数值 ​的客户邮政编码输入验证规则现在可在​ 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属性值,则Magento Open Source会显示信息性错误消息。 以前,当属性为可选属性时,应用程序引发此异常: 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 ​筛选器现在可按预期工作。 以前,筛选结果包括其他管理员用户的报价。

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

索引

  • 现在,当目录包含的捆绑产品未分配给任何网站时,价格重新索引会成功运行。 以前,运行产品价格指数时出现以下错误: Warning: Undefined array key <bundel product id > in vendor/magento/module-bundle/Model/ResourceModel/Indexer/Price/DisabledProductOptionPriceModifier.php on line 117GitHub-35796

基础架构

  • 第三方colinmollenhour/php-redis-session-abstract模块和PHP 8.1的问题已得到解决。 GitHub-35634

订购

  • 现在,安装脚本中传递的订单前缀已正确添加到订单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表添加任何条目。 以前,Magento Open Source引发异常,因为应用程序尝试在放置订单期间为网格编制索引,而不是依赖cronGitHub-36334

支付方式

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

Braintree

  • 现在,订单ID已添加到支付交易的结算请求中。
  • 当商家单击​ Reports > Braintree Settlement ​时,Magento Open Source不再引发以下错误: 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支付方式后,管理员用户现在可以创建订单或重新排序。 以前,Magento Open Source引发此错误: 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付款方式的签出现在成功完成。 以前,进度条从未解析,Magento Open Source显示此控制台错误: 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支付方式后,管理员用户现在可以为客户创建订单或重新排序。 以前,Magento Open Source引发此错误: 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付款方法。 以前,Magento Open Source引发此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查询,当将许多客户组分配给产品时,这会延迟执行。
  • 已优化包含目录小部件产品列表的页面的加载。 以前,直接从数据库加载非全局属性。

报告

  • 现在,从日期选取器中选择后,订单总计报表​ ​到​ ​日期可正确显示。
  • Braintree/Ui/Component/Report/Listing/Column/PaymentType.php中的ANDROID_PAY_CARD常量已替换GOOGLE_PAY_CARD。 这可解决Braintree报表中的问题。

审核

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

角色

  • 为​ Stores > Configuration > Services > OAuth ​添加了缺失的ACL。 以前,在设置角色权限时,无法定义对此OAuth配置设置的访问权限。
  • 启用​ Minimum Terms to Match ​配置设置后,在引号中搜索字符串现在可以按预期工作。 以前,Magento Open Source引发此错误: {"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
  • 在显示送货地址或客户地址时,Magento Open Source现在遵循管理员客户​ Show Company ​配置设置。 禁用此设置后,发运公司将不再包含在发运、客户地址或数据库订单记录中。 以前,尽管设置被禁用,仍会显示该信息。 GitHub-33729
  • 在估计装运时,删除了过多的报价保存操作。
  • storeId范围现在直接从$request->getStoreId()应用,以确保在报价由管理员用户创建时不会丢失范围。 以前,当管理员使用第三方模块创建报价时,有时会出现送货方法问题。
  • 现在为其url_key设置已在存储视图级别被覆盖的产品生成SEO友好的URL。 以前,类别产品URL不会重定向到SEO友好的URL。
  • 对运输成本应用折扣时,Magento Open Source不再引发最小订单金额错误。
  • 现在,如果在对装运应用折扣后应用税,则装运退款会正确计算。
  • 将同时返回通过GraphQL cart查询请求的购物车的所有适用促销。 促销活动包括行项目折扣、购物车规则/折扣、优惠券、礼品卡和商店积分。 GitHub-35545
  • 已将price_excl_taxprice_excl_tax类型添加到setShippingMethodsOnCart突变的输出。 GitHub-31206
  • 现在,GraphQL响应会按预期传递唯一的送货ID,并且订单的送货详细信息会发送到GraphQL的多个地址。

税金

  • Display Zero Tax Subtotal ​配置设置现已按预期应用于提供多种配送方法的部署中的订单。 以前,在选择配送方式之前,甚至在禁用此设置的情况下,结账期间购物车页面上都会显示零税字段。 GitHub-35561
  • 现在,在运行PHP 8.1的部署中,Magento Open Source可以在店面类别页上显示含税的分组产品。以前,Magento Open Source不显示产品列表,并引发此异常: 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,则被视为属于非VAT注册客户,而Magento Open Source会将客户组更改为非VAT组。 以前,启用​ Enable Automatic Assignment to Customer Group ​后,从客户帐户中删除增值税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)的筛选器函数现在按预期工作。 现在将单独处理数组值。 以前,当您尝试在此网格中输入查询时,Magento Open Source引发此控制台错误,并且页面未加载: Uncaught TypeError: Cannot read properties of nullGitHub-35993
  • 在通过REST API创建客户时,添加了属性值的验证。 现在,如果提供了无效的属性值,创建过程将失败。 以前,没有验证性别,这不是必填字段。 在客户创建期间,为性别传递的值保存在customer_entity表中。
  • 现在,结账期间添加的地址将保持其预期格式。 以前,会忽略空白行。
  • 更改产品网格的列网格视图并为自定义视图选择新列不再触发“选择所有网格列”操作。 以前,列框消失,并且网格中的产品被选中或取消选中。 GitHub-36302
  • 管理员用户现在可以成功清除管理员已完成任务日志。 以前,管理员显示此错误: Something went wrongGitHub-36255
  • 主题标题设置Welcome Text现在可以包含单引号字符。 以前,Magento Open Source引发此JavaScript错误: Uncaught SyntaxError: Unable to process binding "ifnot: function(){return customer().fullname }"

URL重写

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

Web API框架

  • 现在,如果映像由于分配给其他存储视图中的某个角色而未从产品中删除,REST API DELETE /rest/V1/products/:sku/media/:entryId会返回错误消息。 以前,即使未成功删除图像,API也会返回成功的响应。
  • 商家现在可以使用REST API为总金额为零的订单创建贷项通知单。 以前,Magento Open Source显示此错误: 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生成的密钥一起正常工作,并且正确导出汇率。 以前,当商家尝试通过管理员导入汇率时,Magento Open Source会引发错误。
  • 您现在可以使用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

愿望清单

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

已知问题

问题:如果启用了免运费(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。

社区贡献

我们感谢更广泛的Magento Open Source界,并感谢他们为这一版本做出的贡献。

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

合作伙伴投稿

下表列出了合作伙伴所做的贡献。 此表列出了提出拉取请求的合作伙伴、外部拉取请求编号以及与其关联的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构建的。 有关详细信息,请参阅系统要求

安装和升级说明

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

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