Ändern der Inkrement-ID für eine DB-Entität (Bestellung, Rechnung, Gutschrift usw.) in einem bestimmten Geschäft

In diesem Artikel wird beschrieben, wie Sie die Inkrement-ID für eine Adobe Commerce-Datenbankentität (DB) (Bestellung, Rechnung, Gutschrift usw.) in einem bestimmten Adobe Commerce Store mithilfe der ALTER TABLE SQL-Anweisung ändern.

Betroffene Versionen

  • Adobe Commerce On-Premise: 2.x.x
  • Adobe Commerce auf Cloud-Infrastruktur: 2.x.x
  • MySQL: Beliebige unterstützte Version

Wann müssten Sie die Inkrement-ID (Fälle) ändern?

Möglicherweise müssen Sie in folgenden Fällen die Inkrement-ID für neue DB-Entitäten ändern:

  • Nach einer Hard Backup-Wiederherstellung auf einer Live Site
  • Einige Auftragsdatensätze sind verloren gegangen, aber ihre IDs werden bereits von Zahlungs-Gateways (wie PayPal) für Ihr aktuelles Händlerkonto verwendet. In diesem Fall verarbeiten die Zahlungs-Gateways keine neuen Bestellungen mehr, die dieselben IDs haben, sondern geben den Fehler „Rechnungsduplikat-ID“ zurück
NOTE
Sie können das Problem mit dem Zahlungs-Gateway für PayPal auch beheben, indem Sie in den Zahlungseingangsvoreinstellungen von PayPal mehrere Zahlungen pro Rechnungs-ID zulassen. Siehe PayPal Gateway Rejected Request - Duplicate Invoice Issue in unserer Support-Wissensdatenbank.

Vorausgesetzte Schritte

  1. Suchen Sie nach Stores und Entitäten, für die die neue Inkrement-ID geändert werden soll.
  2. Verbinden mit Ihrer MySQL-DB. Für Adobe Commerce in der Cloud-Infrastruktur müssen Sie zunächst SSH in Ihre Umgebung.
  3. Überprüfen Sie den aktuellen auto_increment-Wert für die Entitätssequenztabelle mithilfe der folgenden Abfrage:
SHOW TABLE STATUS FROM `{database_name}` WHERE `name` LIKE 'sequence_{entity_type}_{store_id}';

Beispiel

Wenn Sie eine automatische Inkrementierung für eine Bestellung im Store mit ID=1 überprüfen, würde der Tabellenname wie folgt lauten:

'sequence_order_1'

Wenn der Wert der auto_increment Spalte 1234 ist, hat die nächste Bestellung im Speicher mit ID=1 die ID #100001234.

Verwandte Dokumentation

Entität aktualisieren, um Inkrement-ID zu ändern

Aktualisieren Sie die Entität mithilfe der folgenden Abfrage:

ALTER TABLE sequence_{entity_type}_{store_id} AUTO_INCREMENT = {new_increment_value};
WARNING
Wichtig: Der neue Inkrementwert muss größer als der aktuelle Wert sein, nicht kleiner!

Beispiel

Nach dem Ausführen der folgenden Abfrage:

ALTER TABLE sequence_order_1 AUTO_INCREMENT = 2000;

Die nächste Bestellung im Store mit ID=1 hat die ID #100002000.

Weitere empfohlene Schritte für die Produktionsumgebung (Cloud)

Bevor Sie die ALTER TABLE Abfrage in der Produktionsumgebung von Adobe Commerce in der Cloud-Infrastruktur ausführen, empfehlen wir dringend die folgenden Schritte:

  • Testen des gesamten Verfahrens zur Änderung der Inkrement-ID in der Staging-Umgebung
  • Erstellen Sie ein DB-Backup, um die Produktions-DB bei einem Fehler wiederherzustellen.

Verwandte Dokumentation

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a