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
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:
-
Abilita il numero massimo di coupon per ordine = 10 nella barra laterale Amministratore in Stores > Settings > Configuration > Sales > Multicoupon Settings.
-
Crea una regola prezzo carrello in Marketing > Promotions > Cart Price Rules > Add New Rule:
- Rule Name: TESTCOUPON2026
- Active: Yes; Websites: Main Website; Customer Groups; Seleziona tutti i gruppi applicabili.
- Coupon: Specific Coupon; Coupon Code: TESTCOUPON2026.
- Uses per Customer: lasciare vuoto.
- Conditions: nessuna condizione aggiunta.
- Actions > Percent of product price discount; Discount Amount = 10.
-
Aggiungi un prodotto con una quantità di almeno 7 a un carrello degli ospiti utilizzando GraphQL, quindi applica il coupon.
-
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:
- Adobe Commerce o Magento Open Source on-premise: Quality Patches Tool > Utilizzo nella guida di Quality Patches Tool.
- Adobe Commerce su infrastruttura cloud: Aggiornamenti e patch > Applica patch nella guida Commerce su infrastruttura cloud.
Lettura correlata
Per ulteriori informazioni su Quality Patches Tool, vedere:
- Quality Patches Tool: strumento self-service per patch di qualità nella guida degli strumenti.