ACP2E-4522: Zeitweise treten doppelte Schlüsselfehler in der Tabelle quote_coupons auf, wenn mehrere Anfragen zum Zusammenführen des Warenkorbs oder zum Speichern von Angeboten gleichzeitig ausgeführt werden
Mit dem Patch ACP2E-4522 wird das Problem behoben, dass ein zeitweiliger Fehler mit doppelten Schlüsseln in der Tabelle quote_coupons auftritt, wenn mehrere Anfragen zum Zusammenführen des Warenkorbs oder zum Speichern von Angeboten gleichzeitig ausgeführt werden. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.78 installiert ist. Die Patch-ID lautet ACP2E-4522. Dieses Problem wird voraussichtlich in Adobe Commerce 2.4.9 behoben.
Betroffene Produkte und Versionen
Der Patch wird für die Adobe Commerce-Version erstellt:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.7-p7
Kompatibel mit Adobe Commerce-Versionen:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.7 - 2.4.8-p4
magento/quality-patches auf die neueste Version und überprüfen Sie die Kompatibilität auf der Seite Quality Patches Tool: Nach Patches suchen. Verwenden Sie die Patch-ID als Suchbegriff, um den Patch zu finden.Problem
Ein zeitweiliger Fehler mit doppelten Schlüsseln tritt in der quote_coupons auf, wenn mehrere Anfragen zum Zusammenführen des Warenkorbs oder zum Speichern von Angeboten gleichzeitig ausgeführt werden.
Schritte zur Reproduktion:
-
Aktivieren Sie die maximale Anzahl von Coupons pro Bestellung = 10 in der Admin-Seitenleiste unter Stores > Settings > Configuration > Sales > Multicoupon Settings.
-
Erstellen Sie eine Warenkorb-Preisregel unter Marketing > Promotions > Cart Price Rules > Add New Rule:
- Rule Name: TESTCOUPON2026
- Active: Yes; Websites: Main Website; Customer Groups; Alle anwendbaren Gruppen auswählen.
- Coupon: Specific Coupon; Coupon Code: TESTCOUPON2026.
- Uses per Customer: Leer lassen.
- Conditions: Keine Bedingungen hinzugefügt.
- Actions > Percent of product price discount; Discount Amount = 10.
-
Fügen Sie mit GraphQL ein Produkt mit einer Mindestmenge von 7 in einen Gastwarenkorb hinzu und verwenden Sie dann den Coupon.
-
Führen Sie sechs gleichzeitige GraphQL-MergeCarts-Aufrufe aus:
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 } } }
Erwartete Ergebnisse:
Bei der GraphQL-Zusammenführung wird kein Fehler zurückgegeben.
Tatsächliche Ergebnisse:
Die GraphQL-Mutation „mergeCarts“ gibt einen Fehler zurück.
Protokolle zeigen, dass der GraphQL-Fehler durch eine Verletzung der Schlüsseleinschränkung in der quote_coupons-Tabelle (QUOTE_COUPONS_QUOTE_ID_COUPON_CODE) verursacht wird, wenn mehrere Zusammenführungs- oder Zitatspeicheranfragen gleichzeitig ausgeführt werden.
tail -n 200 var/log/exception.log var/log/debug.log | grep -E "Duplicate entry|QUOTE_COUPONS_QUOTE_ID_COUPON_CODE"
Patch anwenden
Verwenden Sie je nach Bereitstellungsmethode die folgenden Links, um einzelne Patches anzuwenden:
- Adobe Commerce oder Magento Open Source On-Premise: Quality Patches Tool > Nutzung im Quality Patches Tool.
- Adobe Commerce in Cloud-Infrastruktur: Upgrades und Patches > Patches anwenden im Handbuch zu Commerce in Cloud-Infrastruktur.
Verwandtes Lesen
Weitere Informationen zu Quality Patches Tool finden Sie unter:
- Quality Patches Tool: Ein Self-Service-Tool für hochwertige Patches im Tools-Handbuch.