Wenn ich die checkout/onepage/success
Seite neu lade , werde ich zum Warenkorb weitergeleitet.
Deshalb muss ich beim Debuggen oder Gestalten der Bestellerfolgsseite immer eine neue Bestellung aufgeben.
Wie kann ich das effizienter machen?
checkout
development
Alex
quelle
quelle
Antworten:
Sie können den Core vorübergehend hacken, während Sie sich entwickeln:
In
/app/code/core/Mage/Checkout/controllers/OnepageController.php
BearbeitungsuccessAction()
.Kommentiere die Zeile aus
$session->clear();
. Jetzt können Sie eine Bestellung aufgeben und die Seite so oft aktualisieren, wie Sie möchten.Wenn Sie nicht einmal für jeden Browser eine Bestellung aufgeben möchten, z. B. beim Cross-Browser-Testen, können Sie die Sitzung auch einfach jedes Mal initialisieren.
Wählen Sie eine Bestellnummer und eine Angebotsnummer aus der Tabelle
sales_flat_order
(Felder:entity_id
undquote_id
). Zum Beispiel über:Ändern Sie dann den Beginn der Funktion wie folgt:
und durch
INSERT_....
die IDs ersetzen .Jetzt können Sie immer anrufen
checkout/onepage/success
Während Sie gerade dabei sind, möchten Sie vielleicht das testen ,
failureAction()
als auch, inDie geänderte Aktion würde so aussehen
Jetzt können Sie immer anrufen
checkout/onepage/failure
quelle
\vendor\magento\module-checkout\Controller\Onepage\Success.php
Sie müssen die successAction () in ändern
Geänderte Aktion würde dies gefallen
quelle
$lastOrderId
ist nicht definiert, was zu einer Kündigung führen würde und zu Nebenwirkungen in der Vorlage führen könnte.Ich hoffe, ich bin nicht zu selbstbewusst, aber ich habe eine kostenlose Erweiterung erstellt, die schnell in Magento installiert werden kann und die es Ihnen ermöglicht, eine Vorschau der Bestellerfolgsseite für jede Bestellung anzuzeigen - einfach durch Zugriff auf eine URL: http: // www. yireo.com/software/magento-extensions/checkout-tester
quelle
Ich denke, es ist besser, nur $ session-> clear () zu kommentieren; und füge Produkte manuell hinzu, was bei mir funktionierte, aber das Kommentieren der gesamten Aktion gab mir Syntaxfehler.
quelle
Für Magento 2:
Wenn Sie die Erfolgsseite nach der Bestellung stylen oder anpassen möchten, wird die Erfolgsseite auf die Warenkorbseite umgeleitet.
Jetzt ist die Lösung da:
Gehe zu Datei
vendor/magento/module-checkout/Controller/Onepage
öffnenSuccess.php
.In dieser Datei sehen Sie Below Code
Kommentieren Sie einfach diesen Code und Ihr Problem ist gelöst. Nach dem Kommentar werden Sie nicht auf die Warenkorb-Seite weitergeleitet.
quelle
Anstatt E-Mails von einer lokalen / Entwicklungskopie zu versenden, können Sie den Inhalt der E-Mail in eine Datei kopieren und dann nur lokal anzeigen, was meiner Meinung nach sehr praktisch ist. So kann das erreicht werden. Zunächst werden alle E-Mails von gesendet
Finden Sie das und fügen Sie die folgenden Zeilen hinzu.
Nachdem Sie einen Auftrag erstellt haben, wird im Magento-Dokumentenstamm eine email.html erstellt, die Sie im Browser öffnen können, um die Ausgabe zu sehen.
Als nächstes können Sie zum Senden / erneuten Senden von Bestell-E-Mails einfach den Administrator anmelden. Für jede Bestellung gibt es die Schaltfläche E-Mail senden, die dieses Skript auslöst, und Sie können die neu geänderte Vorlage in derselben Datei sehen. Ich denke, dies ist eine der besten Möglichkeiten, um Bestellungen oder andere E-Mails zu sehen.
Bitte beachten Sie, dass Sie den hinzugefügten Code entfernen müssen, wenn Sie fertig sind.
quelle
Sie müssen den Code aktualisieren:
Update-Funktion:
Einfach kommentieren:
quelle
Magento 2
Als weitere Antwortnotizen können Sie die Weiterleitung auskommentieren
Magento\Checkout\Controller\Onepage\Success::execute
und das Laden der Checkout-Erfolgsseite erzwingen. Wenn der Block jedochMagento\Checkout\Block\Onepage\Success
lädt, sind keine Bestelldaten vorhanden, daMagento\Checkout\Model\Session::getLastRealOrder
keine Bestellung zurückgegeben wird. Eine bessere Option wäre ein After Interceptor für die Execute-Methode der Controller-Klasse, für die SielastRealOrderId
in der Checkout-Sitzung einen Wert festlegen können .Dieser Ansatz bietet auch die Möglichkeit, die
checkout_onepage_controller_success_action
Veranstaltung mit Ihrer gewünschten Bestellung zu versenden . Das Ereignis wird die BeobachterMagento\GoogleAdwords\Observer\SetConversionValueObserver
undMagento\GoogleAnalytics\Observer\SetGoogleAnalyticsOnOrderSuccessPageViewObserver
mit Ihren Testdaten auslösen .Das Folgende ist ein ziemlich einfaches Modul, das den oben beschriebenen Interceptor erstellt und das Festlegen der Reihenfolge durch Anhängen eines
order
Abfrageparameters mit der gewünschten Inkrement-ID an die URL der Erfolgsseite ermöglicht. Die Multishipping-Erfolgsroute funktioniert derzeit nicht. Es kann auf github heruntergeladen werden: https://github.com/pmclain/magento2-successtestquelle