Ich versuche, die Gesamtsumme der Bestellung auf der Erfolgsseite von Magento 2 zu ermitteln. Ich habe diesen Code hinzugefügt
<?php
$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$totall = $order->getGrandTotal();
?>
Aber ich erhalte eine Fehlermeldung, wenn ich nach der Bestellung die Erfolgsseite erreiche. Ich denke, der Code funktioniert für Magento 1, aber nicht für 2. Wie kann ich das auch für Magento 2 zum Laufen bringen?
Antworten:
Magento 2.1
Der unten erwähnte Block ist jetzt
Magento\Checkout\Block\Onepage\Success
Magento 2.0
Das einzige, was Sie auf dieser Seite nativ abrufen können, ist die Bestell-ID mit der in
getRealOrderId()
definierten MethodeMagento\Checkout\Block\Success
Um die Bestellnummer zu erhalten, können Sie in Ihrer Vorlage Folgendes aufrufen:
Ich verstehe jedoch, dass das nicht genau das ist, was Sie brauchen.
In diesem Fall allerdings wird davon abgeraten, den Objektmanager direkt zu verwenden. Sie sollten ein benutzerdefiniertes Modul verwenden, um Einstellungen für diesen Block zu definieren .
Im
app/code/Vendor/Module/etc/frontend/di.xml
benötigen Sie den folgenden Code:Dann in
app/code/Vendor/Module/Block/Checkout/Success.php
:Vergiss das Übliche nicht
app/code/Vendor/Module/etc/module.xml
Ebenso wie
app/code/Vendor/Module/registration.php
Sobald Sie fertig sind und die folgenden Befehle ausgeführt haben:
In Ihrer Vorlage sollten Sie Folgendes aufrufen können:
Weitere Methoden hinzufügen
Sie können Folgendes hinzufügen, das beim Verfolgen der Blockklasse hilfreich sein kann:
Dann können Sie aus Ihrer Vorlage Folgendes aufrufen:
quelle
echo get_class($block);
überprüfen, ob die Überschreibung funktioniert, aber wenn der Block überhaupt nicht gerendert wird, wird das wahrscheinlich nicht funktionierenEinfach offen
Magento_Checkout/frontend/templates/success.phtml
Und fügen Sie den folgenden Code in die Datei ein
Im obigen Code erhalten Sie alle Bestelldaten auf der Erfolgsseite.
Vielen Dank
quelle
Soweit ich weiß, gibt es ein Ereignis -
checkout_onepage_controller_success_action
das nach dem Checkout ausgelöst wird, ist eine Seite erfolgreich.Anbieter / Magento / Modul-Checkout / Controller / Onepage / Success.php
Wie wir sehen können, können wir die Bestellnummer mit Observer ermitteln. Beispielsweise:
Weitere Informationen finden Sie in den Google-Modulen:
Anbieter / Magento / Modul-Google-AdWords
Anbieter / Magento / Modul-Google-Analytics
quelle