[仅限PaaS]{class="badge informative" title="仅适用于云项目(Adobe管理的PaaS基础架构)和内部部署项目上的Adobe Commerce 。"}

ACSD-57086:来自启用了条款和条件的非默认网站的订单处理不正确

ACSD-57086修补程序修复了从启用了条款和条件的非默认网站下单的订单无法正确处理的问题。 安装Quality Patches Tool (QPT) 1.1.49时,此修补程序可用。 修补程序ID为ACSD-57086。 请注意,此问题已在Adobe Commerce 2.4.7中修复。

受影响的产品和版本

为Adobe Commerce版本创建了修补程序:

  • Adobe Commerce(所有部署方法) 2.4.5-p5

与Adobe Commerce版本兼容:

  • Adobe Commerce(所有部署方法) 2.4.3 - 2.4.6-p7
NOTE
该修补程序可能适用于具有新Quality Patches Tool发行版本的其他版本。 要检查修补程序是否与您的Adobe Commerce版本兼容,请将magento/quality-patches包更新到最新版本,并在Quality Patches Tool:搜索修补程序页面上检查兼容性。 使用修补程序ID作为搜索关键字来查找修补程序。

问题

在使用具有AsyncOrder处理的多商店设置时,由于队列使用者代码中的范围处理问题,对主网站以外的任何网站/商店下达的订单会被拒绝。

重现步骤

  1. 安装RabbitMQ并执行bin/magento setup:upgrade以创建RabbitMQ的队列。

  2. 使用以下方式配置AsyncOrder处理:

    code language-bash
    bin/magento setup:config:set --checkout-async 1
    
  3. 创建辅助网站、商店和商店视图。

  4. 创建在两个网站之间共享的产品。

  5. 启用条款和条件:

    1. 转到​ Stores > Configuration > Sales > Checkout > Checkout Options
    2. 将​ Enable Terms And Conditions ​设置为​
  6. 为两个网站配置条款和条件:

    1. 转到​ Stores > Terms And Conditions > Add New Condition

    2. 使用以下设置:

      • Condition Name任何内容
      • StatusEnabled
      • AppliedManually
      • Store ViewDefault Store View
    3. 为第二个网站/商店视图创建另一个条件。

  7. 转到​ Stores > All Stores ​更改默认网站。 单击第二个网站,选中​ Set as Default ​并保存。

  8. 使用以下方式清除缓存:

    code language-bash
    bin/magento cache:clear
    
  9. 转到店面并将产品添加到购物车。 继续结帐并下单(您应会在付款方式步骤中看到一个复选框来接受条款和条件)。

  10. 下订单后返回到“管理员”,并将默认网站更改回原始主网站并保存。

  11. 清除缓存:

    code language-bash
    bin/magento cache:clear
    
  12. 运行以下命令以启动队列使用者:

    code language-bash
    bin/magento queue:cons:start placeOrderProcessor
    

预期的结果

订单已履行;不会自动拒绝。

实际结果

订单状态为​ 已拒绝,注释如下:

未下订单。 首先,同意条款和条件,然后再次尝试下订单。

应用修补程序

要应用单独的修补程序,请根据您的部署方法使用以下链接:

相关阅读

要了解有关Quality Patches Tool的更多信息,请参阅:

有关QPT中其他可用修补程序的信息,请参阅Quality Patches Tool指南中的:搜索修补程序Quality Patches Tool。

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3