Ich versuche, die letzte Bestell-ID für eine Bestellung abzurufen, damit ich automatisch eine Rechnung und einen Versand erstellen kann, aber ich kann anscheinend nicht die richtige Bestell-ID laden, um die Aktion auszuführen ...
Hier ist, wie ich versuche, die orderId Observer.php zu laden
$order = Mage::getModel('sales/order')->load($orderid);
$orderIncrementId = $order->getIncrementId();
Wenn die orderId nicht vorhanden ist, wird eine Ausnahme ausgelöst
$order = Mage::getModel('sales/order')
->loadByIncrementId($orderIncrementId);
if (!$order->getId()) {
Mage::throwException("Order does not exist, for the Shipment process to complete");
}
Das Problem ist, wenn ich eine statische Reihenfolge übergebe, wird keine Ausnahme ausgelöst
$orderIncrementId = '1100000023-4';
Aber wenn ich versuche, es über das Modell zu laden, kann ich es nicht
Kann mir jemand zeigen, wie man die Bestell-ID für eine Bestellung erhält?
magento-1.8
orders
event-observer
invoice
user1704524
quelle
quelle
sales_order_invoice_register
für den ObserverAntworten:
Die akzeptierte Antwort hat bei mir nicht funktioniert. Es stellte sich heraus, dass folgende Lösung für mich funktioniert:
quelle
Holen Sie sich die neueste order_id aus der Sitzung wie folgt:
Hier ist auch eine andere Möglichkeit, dies zu tun.
quelle
So erhalten Sie die letzte Bestellnummer in Magento:
quelle
getFirstItem
lädt die gesamte Sammlung. Dies kann ein Problem sein, wenn Sie viele Bestellungen haben. Sie sollten der Sammlung ein Limit von 1 hinzufügen, um sicherzustellen, dass nur ein Element geladen wird.Mage::getSingleton('checkout/session')->getLastRealOrderId();
aber ich bin mir sicher, dass es einen Unterschied für Bestellungen gibt, die in Admin erstellt wurdenVarien_Data_Collection::getFirstItem
funktioniert. Wenn Sie 100.000 Bestellungen haben, dauert es ewig, bis Sie die letzte Bestellnummer auf diese Weise abgerufen haben.