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

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

受影响的产品和版本

带有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中,由于“在PHP 8.1中,不要将null传递给internal函数的不可为空的参数“。

解决方案

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

AC-2655_2.4.4.patch.zip

如何应用修补程序

请参阅 如何应用Adobe Commerce提供的编辑器修补程序 在我们的支持知识库中获取说明。

有用的链接

在云基础架构上将自定义修补程序应用到Adobe Commerce 在我们的开发人员文档中。

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a