ACSD-69261: Preisregelcoupon für einmaligen Warenkorb wird aufgrund falscher times_used in Teilrechnungs- und Stornierungsflüssen wiederverwendet
Mit dem Patch ACSD-69261 wird das Problem behoben, dass ein Warenkorbpreisregelcoupon, der für den einmaligen Gebrauch pro Kunde konfiguriert ist, mehrmals wiederverwendet wurde, da das Attribut times_used in Szenarien mit Teilrechnung und Restmengenstornierung falsch verarbeitet wurde. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.76 installiert ist. Die Patch-ID ist ACSD-69261. 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.6-p13
Kompatibel mit Adobe Commerce-Versionen:
- Adobe Commerce (alle Bereitstellungsmethoden) 2.4.4 - 2.4.8-p3
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 Warenkorb-Preisregelcoupon, der für den einmaligen Gebrauch pro Kunde konfiguriert wurde, kann aufgrund einer fehlerhaften Handhabung des times_used-Attributs während der teilweisen Rechnungserstellung und Stornierung der verbleibenden nicht fakturierten Menge fälschlicherweise mehrmals wiederverwendet werden.
Schritte zur Reproduktion:
-
Erstellen Sie eine Warenkorb-Preisregel mit einem Coupon, der auf eine Verwendung pro Kunde beschränkt ist.
-
Bestellung mit zwei Artikeln aufgeben.
-
Erhöhen Sie die Menge eines Artikels auf zwei oder mehr Einheiten und wenden Sie den Coupon an.
-
Vergewissern Sie sich, dass die folgenden Datenbanktabellen Einträge aufweisen:
- Die Bestellung speichert den Coupon korrekt in der
sales_order. - Die
salesrule_coupon_usageTabelle zeigttimes_used= 1. - Die
salesrule_customerTabelle zeigttimes_used= 1.
- Die Bestellung speichert den Coupon korrekt in der
-
Erstellen Sie eine Teilrechnung, indem Sie nur eine Einheit des Artikels fakturieren.
-
Stornieren Sie die verbleibende nicht fakturierte Menge.
-
Überprüfen Sie die
times_usedFeldwerte in den Tabellensalesrule_coupon_usageundsalesrule_customer.
Erwartete Ergebnisse:
Das System senkt den times_used erst, nachdem nicht fakturierte Mengen nach einer Teilrechnung storniert wurden, sodass der Coupon erneut verwendet werden kann, wenn er für eine einmalige Verwendung pro Kunde konfiguriert ist.
Tatsächliche Ergebnisse:
Nach dem Abbruch werden die times_used auf "" zurückgesetzt anstatt die korrekte Nutzungsanzahl beizubehalten.
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 > 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