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一起使用。您可以在Cloud和内部部署上安装并运行Magento Open Source和Magento Open Source2.4.6以及OpenSearch 2.x 搜索引擎先决条件.

  • 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挂接。 当自动清算行的支付状态更新为 settledsettlement decline.
  • 添加了LPM(本地支付方法)Web挂接。

GraphQL

GraphQL性能增强包括:

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

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

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

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

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

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

新的突变:

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 options)现在会返回有关失败的信息性消息。 GitHub-35391
  • 运行时,Magento Open Source不再引发以下异常 bin/magento setup:upgrade 已在运行数据迁移工具的部署中的命令: 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 34. GitHub-35604
  • bin/magento setup:db:status 在运行MySQL 8.0.29的环境中,命令不再失败。以前,命令输出错误地指出声明性模式已过时。 GitHub-35671
  • composer install 命令不再覆盖 .gitignore 文件。 GitHub-32888
  • 正在运行 bin/magento sampledata:remove 在Alpine Linux上升级后删除示例数据的操作不再失败,并出现以下错误: Undefined constant "MagentoHackathon\Composer\Magento\Deploystrategy\GLOB_BRACE. GitHub-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 现在,对于键盘输入,签出工作流中的按钮可按预期工作。
  • 使用时按钮上焦点的视觉指示 TABSHIFT + TAB 在页面控件中导航现在可按预期工作。

屏幕阅读器

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

屏幕阅读器现在宣布:

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

捆绑产品

  • 现在,通过API更新特定商店视图的捆绑产品不会覆盖同一捆绑产品的其他商店视图数据。 以前,捆绑产品选项标题会被其他商店视图的第一个选项标题覆盖。
  • 现在,可以从管理员中成功筛选捆绑产品 Catalog > Products 使用荷兰语言环境时。 以前,当您尝试过滤时,Magento Open Source显示此错误 Type: Bundle ProductSomething went wrong with processing the default view and we have restored the filter to its original state. GitHub-35704
  • 当捆绑产品的特殊价格超过1000时,产品网格不再引发异常。 以前,当您按SKU搜索产品或导航到 Catalog > Products,Magento Open Source引发此错误: Non Numeric value encountered. GitHub-36284)
  • 对于包含捆绑包和简单产品的订单,其贷项通知单和发票PDF中的列现在可以正确呈现。 以前,列会扭曲或不对齐。
  • GraphQL在包含 BundleProduct 片段, 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 available. GitHub-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 string. GitHub-34202
  • addBundleProductsToCart 如果所需的产品选项没有值,则突变不会再向报价中添加产品。 GitHub-25676
  • Magento Open Source现在在以下情况下返回信息性消息 addProductsToCart 将产品添加到购物车时权限不足,无法进行突变。
  • 使用快速订购添加的产品数量超过可用库存时,Magento Open Source不再在购物车页面上引发错误。

购物车价格规则

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

目录

  • 产品列表小组件不再为登录购物者显示不正确或缓存的价格。 主页小部件中显示的价格现在与购物者的地址匹配,并在购物者更新地址时更新。 以前,浏览器缓存不会根据客户组税则更新主页上的产品价格。
  • 现在,比较产品列表功能可在多网站部署中正常工作,并且具体取决于网站。
  • 重新加载产品详细信息页面时,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 构件名称,现在是驼峰式大小写。) 以前,不会预先选择样本选项。
  • 现在,当客户订阅了价格下降警报时,将通知客户产品价格下降。 以前,由于应用程序级别的缓存,无法始终发送价格下降通知。
  • 基于具有以下功能的SKU的目录规则 is not one of 完成情况现在按预期显示。
  • 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和产品名称现在可以精确显示。 以前,将属性组移动到上的产品详细信息组上方后,名称和SKU显示为未定义 Stores > Attribute set. GitHub-36309

优惠券

  • 管理优惠券代码工作流中添加了验证逻辑,以便在生成优惠券时强制实施优惠券代码设置。 以前,优惠券代码生成会忽略 Code Length 设置 优惠券数量 值大于2500。
  • 在使用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)中的模板标记。

框架

  • 管理员用户现在可以成功打开管理员 Store > Configuration 页面中无国家/地区 欧洲联盟国家 设置(Stores > Configuration > General > Country options > European Union Countries)。 以前,当管理员用户尝试打开此页时,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:46. GitHub-35901
  • jquery.cookie 现在,依赖项可与JavaScript依赖项正常配合使用。 以前,不能将别名用于 jquery/jquery.cookie. GitHub-35913
  • bin/magento i18n:collect-phrases 命令现在包含 <title> 导出的CSV文件中的文本。 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
  • 正确的 rowId 现在,当类别为 urlKey 会为具有子类别的类别保存。 先前,错误 categoryId 在保存类别时传递 URLKey.
  • 产品属性代码 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
  • AMQP使用者不再因弃用而失败 trim() 在运行PHP 8.1的部署中起作用。以前,当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 143. GitHub-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

常规修复

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

GraphQL

  • Types 在GraphQL代码中实施多个接口的客户现在可以用 & 签名和 , 根据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
  • products 当数据库前缀具有非null值时,查询会按预期返回类别信息。 以前,它返回 Internal server error. GitHub-36117
  • Magento\CatalogGraphQl\Plugin\DesignLoader 插件已重构。
  • 现在,当购物车由GraphQL突变初始化时,购物车重新加载只会按预期触发一次。 以前,购物车加载会触发对库存库存的不必要的购物车重新验证,这会在每次加载购物车时消耗大量资源。
  • 添加了 gift_message 键入到 OrderItemInterface. GitHub-29418
  • GraphQL响应中返回的产品选项现在仅包括用户所属的目录中的产品。 如果用户属于共享目录,则仅返回共享目录中的产品。 如果用户是访客或未包含在自定义共享目录中,则仅返回公共目录中的产品。

Google ReCAPTCHA

  • 中出现了reCAPTCHA错误 var/log/exception.log 用于Google V3 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命令现在已成功导入 config.php 文件(当它包含特定时) cron 表达式。 以前,导入失败并出现以下错误: 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 66. GitHub-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 117. GitHub-35796

基础架构

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

订购

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

支付方式

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

Braintree

  • 现在,订单ID已添加到支付交易的结算请求中。
  • 当商家单击时,Magento Open Source不再引发以下错误 Reports > Braintree SettlementError: Undefined constant Braintree\PaymentInstrumentType::ANDROID_PAY_CARD in /var/www/html/vendor/paypal/module-braintree-core/Ui/Component/Report/Listing/Column/PaymentType.php:49. GitHub-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并且以下情况下,使用Braintree支付方法进行结账可成功完成 Enable Card Payments 已禁用。 以前,进度条从未解析,并且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.
  • TaglineLayout 配置字段已从所有 PayPal 按钮。
  • 当购物者更新其帐单地址时,Braintree电子仓库付款方法选项在结账工作流中保持选中状态。 以前,当购物者取消选择 My billing and shipping address are the same 按钮。
  • 现在,在以下情况下,PayPal交易会传递行项目: Send Line Items 配置设置是从Admin启用的。
  • 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
  • 购物者现在可以在店面使用Braintree支付方式,店面有 Enable Card Payments 已被禁用。 以前,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 查询,当将许多客户组分配给产品时,这会延迟执行。
  • 已优化包含目录小部件产品列表的页面的加载。 以前,直接从数据库加载非全局属性。

报告

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

审核

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

角色

  • 已添加缺少的ACL Stores > Configuration > Services > OAuth. 以前,在设置角色权限时,无法定义对此OAuth配置设置的访问权限。
  • 现在,在引号中搜索字符串时,如果 Minimum Terms to Match 已启用配置设置。 以前,Magento Open Source引发此错误: {"error":{"root_cause":[{"type":"parsing_exception","reason":"[match_phrase] query does not support [minimum_should_match]' ....
  • 注册点 现在,在销售订单客户网格上搜索客户记录的筛选器可在订单创建过程中按预期工作。
  • 多词查询的搜索建议质量已得到改进。
  • 搜索结果现在包含所有可用产品的缺货选项输出,当 Display Out Of Stock Products 已启用 GitHub-36055

配送

  • 当免运费购物车规则设置为仅匹配购物车中项目的子集时,可以正确计算FedEx、USPS和UPS的运费。
  • 当订单总额小于符合免费发运条件的指定最小订单金额时,“管理发运”页面不再显示免费发运选项。 GitHub-33697
  • Magento Open Source现在向管理员客户致敬 Show Company 显示送货或客户地址时的配置设置。 禁用此设置后,发运公司将不再包含在发运、客户地址或数据库订单记录中。 以前,尽管设置被禁用,仍会显示该信息。 GitHub-33729
  • 在估计装运时,删除了过多的报价保存操作。
  • storeId 范围现在直接从应用 $request->getStoreId() 以确保在管理员用户创建报价时不会丢失范围。 以前,当管理员使用第三方模块创建报价时,有时会出现送货方法问题。
  • 现在,会为满足以下条件的产品生成SEO友好的URL: url_key 设置将在存储视图级别被覆盖。 以前,类别产品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现在可以在storefront category页面上显示已分组的含税产品。以前,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:61. GitHub-35500
  • 商家不能再将计划的更新移动到包含相同规则ID的其他更新。 以前,当更新移动到包含相同规则ID的其他更新时,购物车价格规则的计划更新会创建重复的计划。
  • 现在,当没有与客户地址关联的增值税ID时,自动客户组分配将起作用。 如果地址不含增值税ID,则被视为属于非增值税注册客户,而Magento Open Source会将该客户组更改为非增值税组。 以前,当 Enable Automatic Assignment to Customer Group 已启用,客户帐户未自动分配给 customerGroup 从客户帐户中删除VAT ID的时间。
  • 现在,在暂存预览模式下,将为暂存目录规则显示正确的动态块。 以前,会显示不相关的动态块。
  • 在结账过程中应用多批配送时,现在可以在发票和贷项通知单的“税务汇总”部分中正确显示多税额。
  • 当订单小计(包括税额以及固定产品税额)超过购物车页面上的购物车规则条件时,不再应用折扣。 以前,即使总计超过购物车规则条件,也会应用折扣。
  • 您现在可以指定 vat_id 使用GraphQL添加或更新访客购物者的地址时。

测试

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

翻译和区域设置

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

UI

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

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