如果未在允许国家/地区中选择任何内容,则用户无法将产品添加到购物车

本文为带有PHP 8.1的已知Adobe Commerce 2.4.4问题提供了一个修补程序,该问题导致如果未选择 允许国家/地区,则用户无法将产品添加到购物车。

描述 description

环境

带有PHP 8.1的Adobe Commerce 2.4.4

问题/症状

如果未选择 允许国家/地区,则用户无法将产品添加到购物车。

重现步骤

  1. 登录到Commerce管理员。
  2. 转到 商店 > 配置 > 常规 > 国家选项
  3. 取消选择 允许国家/地区 字段中的所有选项。
  4. 单击 保存配置 以保存配置。
  5. 转到店面,尝试将产品添加到购物车。

预期结果:

您可以将产品添加到购物车。

实际结果:

您无法将产品添加到购物车。 您收到以下控制台错误:

Failed to load resource: the server responded with a status of 400 (Bad Request)
customer-data.js:87 Uncaught Error: [ object Object]
    at Object.<anonymous> (customer-data.js:87:23)
    at fire (jquery.js:3500:50)
    at Object.fireWith [ as rejectWith]  (jquery.js:3630:29)
    at done (jquery.js:9798:30)
    at XMLHttpRequest.<anonymous> (jquery.js:10057:37)

原因

当多选配置没有任何选定项时,Adobe Commerce配置将检索null。 在8.1之前的PHP版本中进一步成功处理此配置。但是,在PHP 8.1中,由于Deprecate将null传递给PHP 8.1中内部函数的不可为空的参数,因此该函数无法正常工作。

解决方法 resolution

解决方案

要解决此问题,请应用以下修补程序:

AC-2655-2-4-4-patch.zip

如何应用修补程序

有关说明,请参阅Commerce on Cloud指南中的应用修补程序

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f