Einheitliche Nummernkreisläufe für Bestellungen, Rechnungen, Lieferscheine und Gutschriften im Magento-Multi-Store Setup

Veröffentlicht von itabs 7. April 2013 1 Kommentar 3308 Mal angesehen

Der äußerst lange Titel bringt das Problem recht gut auf den Punkt. Angenommen man betreibt einen Magento-Shop mit mehreren Stores bzw. StoreViews, dann hat man von Haus aus einen separaten Nummernkreislauf für jeden Store. Bestellt ein Kunde beispielsweise etwas über Store A, so wird die Bestellnummer 10000001 erzeugt. Tätigt ein anderer Kunde innerhalb von Store B eine Bestellung, erhält dieser die Bestellnummer 20000001. Das selbe Spielchen gilt natürlich auch für Rechnungen, Lieferscheine und Gutschriften.

Grundsätzlich ist dieses Verhalten in vielen Fällen gewünscht, speziell um die jeweiliges Stores leichter zu unterscheiden. Wenn man aber einheitliche Nummernkreisläufe haben möchte, kann dies Magento auch leisten. Beim oberen Beispiel würde dies also bedeuten, dass Magento nicht die Bestellnummer 20000001 erzeugt, sondern die Bestellnummer 10000002.

Möchte man diesen Effekt haben, muss man direkt Einträge in der Datenbank ändern, innerhalb des Backends wird man hierfür keine entsprechende Konfigurationsoption finden. Die Änderung über die Datenbank ist aber relativ einfach. Im ersten Schritt muss man sich mit einem beliebigen Programm auf die Datenbank von Magento verbinden z.B. phpMyAdmin oder für die Mac User unter uns Sequel Pro.

Anschließend öffnet man die Tabelle eav_entity_type deren Inhalt wie folgt aussehen sollte

Bildschirmfoto 2013-04-07 um 18.12.42

Innerhalb dieser Tabelle gibt es nun insgesamt 4 Datensätze die in der Spalte increment_per_store eine 1 stehen haben, sprich bei diesen Datentypen wird die Nummer für jeden Store einzeln betrachtet. Es handelt sich dabei um die order (Bestellung), invoice (Rechnung), shipment (Lieferschein) sowie creditmemo (Gutschrift)

Bildschirmfoto 2013-04-07 um 18.14.44Wir können das Verhalten, dass jeder Store seinen eigenen Nummernkreislauf besitzt, unterbinden in dem man bei dem jeweiligen Datensatz den increment_per_store Wert auf 0 setzt (Standardmäßig ist hier eine 1 hinterlegt). Sprich möchte man fortlaufende Bestellnummern haben, aber unterschiedliche Rechnungs-, Lieferschein- und Gutschriftnummernkreise, setzt man nur bei dem Datensatz order den Wert incerement_per_store auf 0.

Hat man diese Einstellung entsprechend vorgenommen, sollte man noch einen Blick in die Tabelle eav_entity_store werfen. Innerhalb dieser Tabelle ist für jeden Store der jeweils Rechnungsnummer, Bestellnummer, Lieferscheinnummer sowie Gutschriftnummer hinterlegt. Magento wird nun, wenn Sie die Änderungen in der Tabelle eav_entity_type durchgeführt haben, neue Einträge in der Tabelle eav_entity_store anlegen, wodurch man zuerst wieder bei einer Nummer wie 1000001 startet, da Magento von einem neuen Nummernkreislauf ausgeht.

Bildschirmfoto 2013-04-07 um 18.21.35

Im oberen Screenshot sieht man die letzten Nummern für Rechnungen, Lieferscheine, Gutschriften und Bestellungen. Jede Nummer ist einem Typ zugewiesen (Rechnung, Bestellung etc.) und einem Store. entity_type_id = 11 bedeutet beispielsweise, dass es sich um eine Bestellung handelt, Store = 2 bezieht sich auf den Store mit der Nummer 2 und die letzte ID = 200007160 bedeutet, dass die nächste Bestellung die Nummer 200007161 bekommen würde. Durch die Vereinheitlichung der Nummernkreisläufe muss man daher an dieser Stelle gegebenenfalls nochmals nachbessern, damit man einen fortlaufenden Nummernkreislauf hat, was gerade bei Rechnungen zu empfehlen wäre.

Hier ist 1 Kommentar

  1. - 23. September 2014
      -   Antworten

    Danke genau das was ich gesucht habe – vielen Dank für Ihre Mühe. Hatte auch 2 Storeviews bei denen ich gerne die selbe Rechnungsnummer hätte.

Schreibe einen Kommentar zu Rüdiger Antwort verwerfen

  • Onlineshop Erstellung

    Das kann so auf keinen Fall pauschal beantworten. …

  • Dominik Karch

    Ich finde die Frage was ein Onlineshop kostet wirk …

  • Alexander Steireif

    Die Kosten hängen letztendlich von der gewählten …

  • Pierre

    Cool mal wieder was neues, wie sind da die Kosten? …

  • Bernd

    Hallo ich würde wissen was ich bei Uses per Coupo …