[僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}

ACP2E-4522:當同時執行多個購物車合併或報價儲存請求時,quote_coupons表格中會發生間歇性的重複關鍵錯誤

ACP2E-4522修補程式修正了當多個購物車合併或報價儲存請求同時執行時,quote_coupons表格會發生間歇性重複金鑰錯誤的問題。 安裝Quality Patches Tool (QPT) 1.1.78時,即可使用此修補程式。 修補程式ID為ACP2E-4522。 請注意,此問題已排程在Adobe Commerce 2.4.9中修正。

受影響的產品和版本

已為Adobe Commerce版本建立修補程式:

  • Adobe Commerce (所有部署方法) 2.4.7-p7

與Adobe Commerce版本相容:

  • Adobe Commerce (所有部署方法) 2.4.7 - 2.4.8-p4
NOTE
此修補程式可能適用於發行版本為Quality Patches Tool的其他版本。 若要檢查修補程式是否與您的Adobe Commerce版本相容,請將magento/quality-patches套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。

問題

當同時執行多個購物車合併或報價儲存請求時,quote_coupons表格上會發生間歇性的重複索引鍵錯誤。

要再現的步驟

  1. 啟用在​Stores > Settings > Configuration > Sales > Multicoupon Settings​的管理員側邊欄下每個訂單的最大優惠券數量= 10。

  2. 在​Marketing > Promotions > Cart Price Rules > ​ Add New Rule​下建立購物車價格規則:

    1. Rule Name: TESTCOUPON2026
    2. ActiveYesWebsitesMain WebsiteCustomer Groups;選取所有適用群組。
    3. CouponSpecific CouponCoupon Code: TESTCOUPON2026。
    4. Uses per Customer:留空。
    5. Conditions:未新增任何條件。
    6. Actions > Percent of product price discount; Discount Amount = 10.
  3. 使用GraphQL將數量至少為7的產品新增至訪客購物車,然後套用優惠券。

  4. 執行六個同時執行的GraphQL mergeCarts呼叫:

    code language-none
    mutation {
      mergeCarts(
        source_cart_id: "<GUEST_CART_ID>"
        destination_cart_id: "<DESTINATION_CART_ID>"
      ) {
        id
        items { id product { sku } }
        applied_coupons { code }
      }
    }
    

預期結果

GraphQL合併未傳回任何錯誤。

實際結果

mergeCarts GraphQL變異傳回錯誤。
記錄顯示,當多個合併或報價儲存請求同時執行時,GraphQL失敗是由於quote_coupons資料表(QUOTE_COUPONS_QUOTE_ID_COUPON_CODE)上出現重複的索引鍵限制違反所導致。

tail -n 200 var/log/exception.log var/log/debug.log | grep -E "Duplicate entry|QUOTE_COUPONS_QUOTE_ID_COUPON_CODE"

套用修補程式

若要套用個別修補程式,請根據您的部署方法使用下列連結:

相關閱讀

若要進一步瞭解Quality Patches Tool,請參閱:

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