Magento 2 - Wie kann ich die Standard-Bestellnummer korrekt ändern?


29

Magento 2. Nach der Neuinstallation lautet die neue Bestellnummer 100000001, 100000002 usw.

Was ist der richtige Weg, um diese Inkrement-ID so zu ändern, dass sie eine höhere Zahl ist? Zum Beispiel 155555552, 155555553 und so weiter. Wenn es geändert wird, sieht es viel besser aus.

In Magento 1.9 Um die Standard-ID für Bestellungen, Rechnungen oder Lieferungen zu bearbeiten, mussten wir einfach die Werte in der Datenbank in "eav_entity_store" ändern.

Magento 2 sieht so anders aus ...

Ich weiß, dass es einige Plugins gibt, die dies anbieten, aber ich möchte wissen, wie man es manuell macht.


Bitte sehen Sie meine Frage hier: magento.stackexchange.com/questions/279454/… ShipWorks (und andere) werden möglicherweise nicht so verwendet, increment_idwie sie sollen.
Chris K

Antworten:


31
  1. Öffnen Sie Ihre PHP-Admin-Datenbank (ich habe auf PHP 7 getestet)
  2. Suchen und klicken Sie auf die Tabelle mit dem Namen: sequence_order_1 (sie befindet sich in der Datenbank selbst und nicht im Informationsschema)
  3. Klicken Sie auf die Registerkarte "Operations" und bearbeiten Sie unter "AUTO_INCREMENT" die gewünschte Auftragsnummer.

Ich trage die Nummer 100500400 in das Feld AUTO_INCREMENT ein und klicke auf "Weiter". Dann habe ich einen Testkauf getätigt, aber die Bestellnummern sind immer noch 000000013, 00000014 ...
Luis Garcia

1
Ich habe sequence_order_1 gefunden und in der Registerkarte operation gibt es Auto_increment. Der Wert ist 5. Was ist also der richtige Wert?
Ahmad Darwish

1) Sichern Sie Ihre Datenbank, bevor Sie Änderungen vornehmen. 2) Anstelle von 5 geben Sie den gewünschten Wert für Ihre Bestellnummer ein, zum Beispiel 1035327500. Ihre nächste Bestellung sollte 1035327501
Mark

Über welche Magento-Version sprechen wir?
Felix

@Felix Es ist für Magento 2
Kishan Patadia

25

Gehen Sie zu Ihrer Datenbank von phpmyadmin,

Hier wird _1 für die Geschäfts-ID nach dem Tabellennamen verwendet.

Default Frontend store id is 1.Wenn Sie mehrere Filialen haben, müssen Sie die Abfrage für jede Filiale mit dem Tabellennamen sequence_order_2 bis festlegen sequence_order _ . *

Geben Sie die folgende Abfrage für die Tabelle sequence_order_1 ein wird für den Standardspeicher verwendet. Wenn Sie mehrere Geschäfte haben, müssen Sie den Tabellennamen gemäß der Geschäfts-ID in der folgenden Abfrage festlegen.

Dies wird nur für Bestellungen über das Frontend verwendet.

sequence_order_1 wird für die Verwaltung von Bestellnummern in Magento 2 verwendet.

ALTER TABLE sequence_order_1 AUTO_INCREMENT=155555551;

Die nächste Bestellnummer beginnt bei 155555551.

Die folgende Abfrage ist für INVOICE definiert , wenn Sie die Rechnungs-ID ändern möchten

ALTER TABLE sequence_invoice_1 AUTO_INCREMENT=155555551;

Zum Versand ALTER TABLE sequence_shipment_1 AUTO_INCREMENT=155555551;


Das geht bei mir nicht. Nach einigen Testkäufen lauten die Bestellnummern immer noch 000000013, 00000014 ...
Luis Garcia

ausgezeichnete Antwort!
Huzefam


Können Sie die Magento-Version angeben, für die dies korrekt ist?
Felix

Wie man die erste Ziffer der neuen Bestellnummer
ändert

16

Was vorher in war, eav_entity_storewird jetzt in sales_sequence_profileund behandelt sales_sequence_meta. Die Tabelle sequence_order_1wird gefüllt, wenn Bestellungen aufgegeben werden.


Können Sie grob die Magento-Versionsnummern angeben, für die dies zutrifft und funktioniert?
Felix

Ich bin nicht auf Verhaltensänderungen
gestoßen, da

Immer noch dasselbe auf 2.2.4, habe es gerade getestet.
Frank Groot

7

Das Format für die neue Auftrags-ID ist standardmäßig durch die Konstante in definiert

Magento \ SalesSequence \ Model \ Sequence:

const DEFAULT_PATTERN = "% s% '. 09d% s";

Es ist ein Muster für die sprintf () - Funktion, das eine neue ID erzeugt. Um führende Nullen zu entfernen, müssen Sie Ihr Muster wie folgt an den Konstruktor übergeben:

<type name="Magento\SalesSequence\Model\Sequence">
    <arguments>
        <argument name="pattern" xsi:type="string">%s%s%s</argument>
    </arguments>
</type>

oder erweitern Sie die Sequenzklasse und ändern Sie sie nach Bedarf


6

Obwohl alle obigen Antworten vollständig / teilweise korrekt sind, habe ich mir überlegt, die Antwort aufzuschreiben, da dies für zukünftige Leser hilfreich wäre. Diese Antwort wird zwei Fragen beantworten:

1) Wie ändere ich die Bestellnummer?

2) Wie füge ich einer Bestellnummer ein Präfix oder Suffix hinzu?

Bevor Sie blind Änderungen in der Datenbank vornehmen, sollten Sie wissen, welche Sequenztabelle mit welcher verknüpft ist. Sie können dies aus der Tabelle überprüfensales_sequence_meta

Führen Sie die Abfrage aus select * from sales_sequence_meta; jedem Geschäft eine Sequenztabelle zugeordnet ist. Notieren Sie sich den Tabellennamen: Bestellung, Rechnung, Gutschrift oder Versand.

Wenn dies erledigt ist, gehen Sie in die Tabelle, um beispielsweise die Bestellnummer in der Tabelle zu bearbeiten sequence_order_1und den AUTO_INCREMENTWert zu ändern

alter table sequence_order_1 AUTO_INCREMENT=617;

Dies ist alles, was benötigt wird, um die Reihenfolge zu überspringen.

Gehen Sie nun weiter, wenn Sie mehr graben und eine Anforderung haben, in der Sie Präfix / Suffix hinzufügen möchten, um die Reihenfolge zu bestimmen. Führen Sie die folgenden Schritte aus:

Gehe zur Tabelle sales_sequence_profileund überprüfe die Daten

select * from sales_sequence_profile;

Sie werden Spalte prefixund 'Suffix' beobachten. Am Anfang wäre es NULL. Sie können den Wert von Präfix und Suffix für relevant hinzufügen, den meta_idSie aus der Tabelle zuordnen könnensales_sequence_meta

Dadurch wird das Bestellpräfix / -suffix für alle Bestellungen geändert.

Hoffe das hilft allen !! Prost !!


4


Neuinstallation : Wenn Sie unter Magento 2.2.0+ eine Neuinstallation mit aktiviertem Multi-Store ausführen (dies ist standardmäßig aktiviert), können Sie einfach die folgenden Abfragen ausführen, bevor Sie Bestellungen über die Site aufgeben :

ALTER TABLE `sequence_creditmemo_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_creditmemo_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_invoice_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_order_1` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_0` AUTO_INCREMENT=303;
ALTER TABLE `sequence_shipment_1` AUTO_INCREMENT=303;

Bitte beachten Sie, dass dies 303nur die Nummer ist, die ich für unsere Site wähle, da unsere alte Plattform bei der Bestellnummer 300 aufgehört hat und ich eine Art von Konsistenz wollte. Beachten Sie auch, dass Sie keine der Abfragen benötigen, die mit enden, _1wenn Sie den Einzelspeichermodus aktiviert haben.

Bestehende Installation:
Wenn Sie bereits Magento 2.2.0+ verwenden (oder ein Upgrade auf Magento 2.2.0+ durchführen) und einfach die Zahlen erhöhen möchten, ohne die Auffüllung zu ändern oder Zeichen hinzuzufügen, überprüfen Sie einfach den aktuellen AUTO_INCREMENT-Wert in den folgenden Tabellen (unter der Annahme, dass mehrere Sites vorhanden sind) ):

  • sequence_creditmemo_0
  • sequence_creditmemo_1
  • sequence_invoice_0
  • sequence_invoice_1
  • sequence_order_0
  • sequence_order_1
  • sequence_shipment_0
  • sequence_shipment_1

Ändern Sie sie mit den oben gezeigten Änderungsabfragen, stellen Sie jedoch sicher, dass der neue Wert, den Sie verwenden, größer ist als der Wert, den Sie durch Überprüfen des aktuellen AUTO_INCREMENT-Werts erhalten.

Wenn Sie mit dem Auffüllen herumspielen oder ein benutzerdefiniertes Muster hinzufügen möchten, müssen Sie die anderen Antworten hier anzeigen und die folgenden Tabellen überprüfen:

  • sales_sequence_meta
  • sales_sequence_profile

Update: Multishop?
Für diejenigen, die nicht mit Multi-Stores vertraut sind, ist dies eine Funktion, mit der Sie vollständig getrennte Stores von derselben Magento-Installation ausführen können. Ein häufiger Grund dafür ist die Unterstützung anderer Sprachen. Aus diesem Grund können Sie im Back-End die Geschäftsansicht auswählen, die Sie beim Aktualisieren der Konfiguration und bei anderen Aktionen, z.

Aus diesem Grund fügt Magento am Ende bestimmter Tabellen einen Unterstrich und eine Zahl hinzu, um die verschiedenen Geschäftsansichten im Auge zu behalten. Sie werden feststellen, dass die von mir bereitgestellten Abfragen doppelte Tabellen zu sein scheinen, aber mit unterschiedlichen Zahlen enden, in diesem Fall 0 oder 1. Wenn Sie mehrere Geschäfte / Ansichten hätten, würden diese Nummern einfach weiter inkrementieren, z. B. _2 oder _3. Auf diese Weise können Sie die IDs jedes Geschäfts unterschiedlich verwalten. Ihre Änderung am ID-System in einer Ansicht (Geschäft) muss in einer anderen nicht identisch sein.

Es ist für diesen Beitrag nicht zulässig, aber dasselbe Nummerierungssystem gilt für andere Tabellen in der Datenbank, sodass Sie jede Geschäftsansicht wirklich unterschiedlich behandeln und beeinflussen können. Sie könnten zum Beispiel ein völlig anderes Thema pro Geschäft haben.


Warum erwähnen Sie immer wieder Multi-Stores? Was wäre anders, wenn Sie den Einzelhandelsmodus aktiviert hätten?
Condor

1
Ich antwortete auf diesen Beitrag: "... beachten Sie, dass Sie keine der Abfragen benötigen, die mit _1 enden, wenn Sie den Einzelgeschäftsmodus aktiviert haben." Beachten Sie, dass die von mir bereitgestellten Abfragen so etwas wie doppelte Tabellen aufrufen, außer dass das Ende eine Zahl hat, in diesem Fall 0 oder 1. Wenn Sie Multi-Store deaktiviert haben, sehen Sie nur _0 nothing mit _1 oder _2 oder _3 und so weiter. Ich habe ein Update hinzugefügt, um dies zu klären.
Blizzardengle

2

Ändern Sie die Reihenfolge Zum Ändern der Bestellnummernauffüllung bearbeiten Sie Sequence.php (ich glaube, es gibt einen besseren Weg über eine di.xml)

vendor/magento/module-sales-sequence/Model/Sequence.php

Bearbeiten Sie diese Zeile

const DEFAULT_PATTERN  = "%s%'.09d%s";

Ändern Sie die "9" auf die gewünschte Polsterung

Beispiel

const DEFAULT_PATTERN  = "%s%'.05d%s";

Ändern Sie das Präfix

In admin > Stores > Sales > Order Number > 
Enter Desired prefix

Um alles zu vereinfachen, geben Sie bei Fooman die gleiche Rechnungsnummer ein


1
Es ist eine schlechte Idee, das Füllmuster in den Kerndateien zu bearbeiten. Verwenden Sie die Methode meines Anzeigenamens, um das Füllmuster zu ändern.
Timon de Groot

1
Was ist das für ein Magento? (admin> Stores> Sales> Order Number) Ich verwende MAG 2.2.2, aber die Menüreihenfolge scheint sich zu ändern.
Mohammed Joraid

1

Ändern Sie die Bestellinkrementierungs-ID

  1. Öffnen Sie Ihren PHP Admin
  2. Suchen und klicken Sie auf die folgende Tabelle: sequence_order_1
  3. Klicken Sie auf die Registerkarte "Operations" und bearbeiten Sie unter "AUTO_INCREMENT" die gewünschte Auftragsnummer.

Für einen anderen Store folgen Sie demselben Schritt

  1. Suchen und klicken Sie auf die Tabelle sequence_order_2
  2. Klicken Sie auf die Registerkarte "Operations" und bearbeiten Sie unter "AUTO_INCREMENT" die gewünschte Auftragsnummer.

Dadurch wird die Bestellnummer für die mehreren Filialen geändert


0

Rechnungsnummern über PHPMYADMIN anpassen

INSERT INTO sequence_order_1( sequence_value) VALUES ('2000');

2000 wird die neue Startnummer sein


0

Mit diesem Tipp können Sie die Bestellnummer direkt in Database Magento 2 ändern

Zunächst müssen Sie Ihre PHP-Admin-Datenbank öffnen. Dann suchen und öffnen Sie die Tabelle "sales_sequence_profile".

Danach können Sie die Standardbestellnummer auf Ihrer Magento 2-Website ändern:

ein. Auftragsinkrement-ID ändern

b. Bestellnummer-Präfix ändern

c. Bestellnummernsuffix ändern

d. Bestellnummer ändern Startwert

e. Pad-Länge ändern

Das vollständige Tutorial finden Sie in diesem Artikel: Komplettes Tutorial zum Ändern der Bestellnummer in Magento 2


Der Name der Tabelle ist falsch. es sollte "sales_sequence_profile" sein
Dennis van Schaik

0

Um die zusätzlichen Nullen dauerhaft zu beseitigen (oder zu ändern), dürfen Sie Kerndateien nicht überschreiben. Fügen app/etc/di.xmlSie Folgendes hinzu und ändern Sie den "%s%'.09d%s"Wert entsprechend (in diesem Beispiel werden zwei 00 aufgefüllt):

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Framework\DB\Sequence\SequenceInterface">
        <arguments>
            <argument name="pattern" xsi:type="string">%s%'.02d%s</argument>
        </arguments>
    </type>
</config>

Die Datenbankänderungen für Bestell- und Rechnungsnummern sind in der Antwort von Rakesh Jesadiya perfekt beschrieben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.