[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

ACP2E-4522 : des erreurs de clé en double intermittentes se produisent sur la table quote_coupons lorsque plusieurs demandes d’enregistrement de fusion de panier ou de devis s’exécutent en même temps

Le correctif ACP2E-4522 corrige le problème en raison duquel une erreur intermittente de clé dupliquée se produit sur la table quote_coupons lorsque plusieurs demandes d’enregistrement de fusion de panier ou de devis s’exécutent en même temps. Ce correctif est disponible lorsque la version 1.1.78 de Quality Patches Tool (QPT) est installée. L’ID du correctif est ACP2E-4522. Notez que ce problème doit être résolu dans Adobe Commerce 2.4.9.

Produits et versions concernés

Le correctif est créé pour la version Adobe Commerce :

  • Adobe Commerce (toutes les méthodes de déploiement) 2.4.7-p7

Compatible avec les versions d’Adobe Commerce :

  • Adobe Commerce (toutes les méthodes de déploiement) 2.4.7 - 2.4.8-p4
NOTE
Le correctif peut s’appliquer à d’autres versions avec de nouvelles versions de Quality Patches Tool. Pour vérifier si le correctif est compatible avec votre version d’Adobe Commerce, mettez à jour le package magento/quality-patches vers la dernière version et vérifiez la compatibilité sur la page Quality Patches Tool : Rechercher des correctifs. Utilisez l’ID du correctif comme mot-clé de recherche pour localiser le correctif.

Problème

Une erreur intermittente de clé en double se produit sur la table quote_coupons lorsque plusieurs demandes d’enregistrement de fusion de panier ou de devis s’exécutent simultanément.

Procédure à suivre :

  1. Activez le nombre maximal de coupons par commande = 10 sous la barre latérale d’administration dans Stores > Settings > Configuration > Sales > Multicoupon Settings.

  2. Créez une règle de prix de panier sous Marketing > Promotions > Cart Price Rules > ​ Add New Rule :

    1. Rule Name : TESTCOUPON2026
    2. Active : Yes ; Websites : Main Website ; Customer Groups ; Sélectionnez tous les groupes applicables.
    3. Coupon : Specific Coupon ; Coupon Code : TESTCOUPON2026.
    4. Uses per Customer : laisser vide.
    5. Conditions : aucune condition ajoutée.
    6. Actions > Percent of product price discount; Discount Amount = 10.
  3. Ajoutez un produit d’une quantité d’au moins 7 dans un panier invité à l’aide de GraphQL, puis appliquez le coupon.

  4. Exécutez six appels GraphQL mergeCarts parallèles simultanés :

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

Résultats attendus :

Aucune erreur n’est renvoyée par la fusion GraphQL.

Résultats réels :

La mutation GraphQL mergeCarts renvoie une erreur.
Les journaux indiquent que l'échec de GraphQL est dû à une violation de contrainte de clé dupliquée sur la table quote_coupons (QUOTE_COUPONS_QUOTE_ID_COUPON_CODE) lorsque plusieurs demandes d'enregistrement de fusion ou de devis s'exécutent simultanément.

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

Application du correctif

Pour appliquer des correctifs individuels, utilisez les liens suivants en fonction de votre méthode de déploiement :

Lecture connexe

Pour en savoir plus sur Quality Patches Tool, consultez :

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