Ich bin ein bisschen verwirrt mit der Bestell-ID und der Bestell-Inkrement-ID . Kann mir jemand helfen, den Unterschied zwischen diesen beiden zu verstehen?
Ich habe einen Beobachter für sales_order_place_after, in dem ich Verkaufsdetails in einer benutzerdefinierten Tabelle speichere.
Aber mit
$orderId = $observer->getEvent()->getOrder()->getId();
Ich erhalte die Bestell-IDs als normale IDs wie 112 oder 113 oder 110 usw. nicht wie 20001201
Also, was ist die reale Bestellnummer, 20001201 oder 112?
Ich muss Bestelldaten basierend auf dieser Bestell-ID weiter verarbeiten, ich verwende 112, 113 usw. und es funktioniert, aber ich muss dies klären.
quelle
id
= dersales_flat_order
Tabellenprimärschlüsselwert. Dies wird für jede Bestellung, die Sie in Ihrem Shop erhalten, automatisch inkrementiert. Sie beginnt normalerweise bei 1 und steigt an.increment id
= eine "benutzerfreundliche" Nummer, die vor der Bestellung generiert wurde. Es muss eindeutig sein und wird von Online-Zahlungsmethoden als Referenz verwendet (aber nicht nur).Die Inkrement-ID sieht standardmäßig so aus.
Die Anzahl der Nullen ist variabel. Es wird mit hinzugefügt,
str_pad
damit die Länge der Inkrement-ID ohne die Geschäfts-ID ist8
.quelle
eav_entity_store
. Bei der ersten Bestellung ist in dieser Tabelle jedoch kein Datensatz enthalten. So entsteht einer. Bei der Erstellung wird die Geschäfts-ID als gespeichertincrement_prefix
. Sehen Sie, wie es in der Methode funktioniertMage_Eav_Model_Entity_Type::fetchNewIncrementId
. Beginnend mit Zeile:if (!$entityStoreConfig->getId()) {
.Ein Kundenauftrag enthält zwei Werte, entity_id (Order Id) und increment_id (Order Increment Id). Die entity_id ist der Primärschlüssel in der Auftragstabelle. Dies bedeutet, dass Sie dies verwenden, um die tatsächliche Auftragsentität zu laden. Siehe unten
Und komm zurecht
$order->getId();
oder$order->getEntityId();
Die increment_id ist normalerweise eine freundlichere Nummer, die häufig website- / store-spezifisch ist, dh 20001201 Die 2 vor bedeutet häufig, dass es sich um eine Bestellung aus Ihrem zweiten Geschäft / Ihrer zweiten Website handelt (kann mich nicht erinnern, welche). Dies wird oft als die reale Bestellnummer bezeichnet. Mit dieser increment_id können Sie eine Auftragsentität laden
Und komm zurecht
quelle
Das
order_id
, von dem ich glaube, dass es dasselbe istentity_id
, ist der Primärschlüssel in der Tabelle sales_order, mit dem alle EAV-Tabellen zusammengefügt werden. Es wird intern in Magento verwendet.order_increment_id
wird zum Anzeigen an den Kunden verwendetquelle