Weiß jemand, ob es möglich ist, den Schritt der Kundenregistrierung an die Kasse zu verschieben, wie in der ursprünglichen Magento 1-Kasse? Suchen Sie nach einer Erweiterung, die dies für mich erledigt, oder nach Ratschlägen, wie ich dies erreichen kann.
8
Antworten:
Ich würde einen Schritt in der Kasse erstellen, der das Wetter erkennt, bei dem Sie angemeldet sind, und dann das entsprechende Formular anzeigt.
Laden Sie das Registrierungsformular über Ajax in diesen Schritt und ändern Sie das Ereignis nach der Registrierung , um festzustellen, ob bei der Registrierung die Kasse zurück zur Kasse und nicht zum Dashboard umgeleitet wurde.
Ich bin so weit gekommen, einen Arbeitsschritt hinzuzufügen, der anzeigt, wenn ich nicht für die Registrierung angemeldet bin, und den Registrierungserfolg zurück zum Auschecken umzuleiten, wodurch der vorherige Schritt für eine reibungslose Benutzererfahrung deaktiviert wurde.
Das Anbieten einer Anmeldeoption, wenn der Benutzer ein Konto hat, sich aber zu diesem Zeitpunkt noch nicht angemeldet hat, würde sich hier weiter verbessern.
Dies ist vollständiger Code, wenn Sie alles überprüfen möchten, was in der Antwort viel enthalten war:
Erstellen Sie ein Registerformular innerhalb des Controllers:
Da die Checkout-Schritte ausgeführt werden müssen
php
, um die Formular-URL und den Schlüssel usw. zu erhalten, wird ein Controller benötigt, damit wir dieses Registerformular über Ajax in den Schritt laden können .Im Folgenden werden die Registrierungsblöcke innerhalb des Controllers gerendert, sodass wir dann über Ajax in die Kasse rufen können.
Stellen Sie sicher, dass Sie die Datei route.xml im Ordner etc / frontend des Moduls hinzufügen.
Erstellen Sie einen Checkout-Schritt:
Da dies der erste Schritt ist, stellen Sie sicher, dass Sie die Mixins hinzufügen, wie ich es im Modul getan habe, da die Devdocs hier falsch sind, was zu jedem Schritt führt, der Folgendes zeigt:
Dies schlug fehl, wenn der Block vor dem Ajax-Aufruf nicht geladen worden war, aber so etwas verwendet wurde, um unser Registrierungsformular vom Controller zu erhalten und es auf den Schritt zu spucken:
Es gibt hier noch viel mehr Schritte. Folgen Sie einfach den Devdocs und stellen Sie sicher, dass Sie den Mixin-Schritt ausführen. Verwenden Sie ihn jedoch unten für das Mixin, da das Devdocs-Beispiel nicht funktioniert:
Die Hauptunterschiede bestanden darin, dass die Zahlungs- und Versandschritte isVisible und Visible verwenden und devdocs nur die im Beispiel sichtbaren verwendet, sodass isVisible zum Beheben hinzugefügt werden musste. Musste auch Anpassungen vornehmen, wenn der Schritt deaktiviert war.
Registrierungsumleitung ändern:
Grobes Beispiel, musste aber auch die register.phtml überschreiben, um die Checkout-Post-Variable hinzuzufügen und den Unterschied zwischen den beiden Formularen zu bestimmen. Dort, wo ich viele Schritte nicht gezeigt habe, aber das Modul, das ich erstellt habe, auf ein vollständiges Beispiel überprüft habe.
quelle