FOL9000

Magento Order-ID-Counter (zurück-)setzen

von | Keine Kommentare

Wie man alle Bestellungen unter Magento löschen kann, hab ich in einem anderen Beitrag bereits beschrieben. Die dort vorgestellten Anweisungen setzen jedoch nicht die Order-ID zurück. Mit zwei einfachen SQL-Anweisungen lässt sich das leicht nachholen, denn es ist möglich, den Zähler auf beliebige Werte zu setzen.

Zunächst gilt es, den Entity-Type-ID für Bestellungen zu ermitteln. Diese findet sich in der Tabelle eav_entity_type:

SELECT entity_type_id FROM eav_entity_type 
    WHERE entity_type_code = 'order';

Mit der so ermittelten ID geht es nun in die Tabelle eav_entity_store. Dort findet sich die Spalte increment_last_id für jeden Store und jede Type-ID, in der man den Order-ID-Wert nun leicht auf den gewünschten Wert setzen kann.

UPDATE eav_entity_store SET increment_last_id = 100000000
   WHERE entity_type_id=123

Oder gleich in einem Schritt:

UPDATE eav_entity_store SET increment_last_id = 100000000 
    WHERE entity_type_id =
        (SELECT entity_type_id FROM eav_entity_type 
         WHERE entity_type_code='order')

Allerdings sollte dabei einiges beachtet werden:

  • Nicht nur der Entity-Type ist wichtig: Der Zähler wird für jeden Store einzeln geführt, sodass man bei mehreren Stores unbedingt darauf achten muss, den Wert für den richtigen Store zu setzen. In einem solchen
    Falle sind die Statements also unbedingt zu ergänzen!
  • Vor allem aber: Wenn es bereits Bestellungen in der Datenbank gibt, kann man mit dem Setzen des Zählers auch einiges durcheinander bringen. In einem solchen Fall sollte man sehr genau wissen, was man tut.

Ich setze den Zähler eigentlich nur beim Bereinigen der Datenbank nach Tests zurück, als um Test-Bestellungen loszuwerden und wirklich wieder bei Null zu beginnen.

Hat man mehrere Stores im Einsatz, lassen sich durch das Setzen des Increments aber auch unterschiedliche Nummernkreise für die Stores realisieren, indem man jeden Store mit einem anderen Startwert versieht. Aber auch hier ist Vorsicht angesagt, denn wenn die Unterschiede zu klein gewählt werden und der eine Nummernkreis in den anderen läuft, ist wieder Chaos angesagt.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.