[Solo PaaS]{class="badge informative" title="Applicabile solo ai progetti Adobe Commerce on Cloud (infrastruttura PaaS gestita da Adobe) e ai progetti on-premise."}

ACP2E-4522: si verificano errori di chiave duplicata intermittenti nella tabella quote_coupons quando più richieste di unione carrello o di salvataggio preventivo vengono eseguite contemporaneamente

La patch ACP2E-4522 risolve il problema relativo a un errore di chiave duplicata intermittente nella tabella quote_coupons quando vengono eseguite contemporaneamente più richieste di unione carrello o di salvataggio preventivo. Questa patch è disponibile quando è installato Quality Patches Tool (QPT) 1.1.78. L’ID della patch è ACP2E-4522. Questo problema è pianificato per la risoluzione in Adobe Commerce 2.4.9.

Prodotti e versioni interessati

La patch è stata creata per la versione di Adobe Commerce:

  • Adobe Commerce (tutti i metodi di implementazione) 2.4.7-p7

Compatibile con le versioni di Adobe Commerce:

  • Adobe Commerce (tutti i metodi di implementazione) 2.4.7 - 2.4.8-p4
NOTE
La patch potrebbe diventare applicabile ad altre versioni con le nuove versioni di Quality Patches Tool. Per verificare se la patch è compatibile con la versione di Adobe Commerce in uso, aggiornare il pacchetto magento/quality-patches alla versione più recente e verificare la compatibilità nella pagina Quality Patches Tool: Cerca patch. Utilizza l’ID patch come parola chiave di ricerca per individuare la patch.

Problema

Errore intermittente della chiave duplicata nella tabella quote_coupons quando più richieste di unione carrello o di salvataggio preventivo vengono eseguite contemporaneamente.

Passaggi da riprodurre:

  1. Abilita il numero massimo di coupon per ordine = 10 nella barra laterale Amministratore in Stores > Settings > Configuration > Sales > Multicoupon Settings.

  2. Crea una regola prezzo carrello in Marketing > Promotions > Cart Price Rules > ​ Add New Rule:

    1. Rule Name: TESTCOUPON2026
    2. Active: Yes; Websites: Main Website; Customer Groups; Seleziona tutti i gruppi applicabili.
    3. Coupon: Specific Coupon; Coupon Code: TESTCOUPON2026.
    4. Uses per Customer: lasciare vuoto.
    5. Conditions: nessuna condizione aggiunta.
    6. Actions > Percent of product price discount; Discount Amount = 10.
  3. Aggiungi un prodotto con una quantità di almeno 7 a un carrello degli ospiti utilizzando GraphQL, quindi applica il coupon.

  4. Esegui sei chiamate GraphQL mergeCarts parallele simultanee:

    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 }
      }
    }
    

Risultati previsti:

L'unione GraphQL non restituisce alcun errore.

Risultati effettivi:

La mutazione GraphQL mergeCarts restituisce un errore.
I registri mostrano che l'errore di GraphQL è causato da una violazione di vincolo di chiave duplicata nella tabella quote_coupons (QUOTE_COUPONS_QUOTE_ID_COUPON_CODE) quando più richieste di unione o di salvataggio delle virgolette vengono eseguite contemporaneamente.

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

Applicare la patch

Per applicare singole patch, utilizzare i collegamenti seguenti, a seconda del metodo di distribuzione utilizzato:

Lettura correlata

Per ulteriori informazioni su Quality Patches Tool, vedere:

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