Der Checkout-Prozess bei Magento ist dank der Onepage-Technik recht schnell und komfortabel. Um den Kunden allerdings nicht zu sehr aufzuhalten, empfiehlt es sich die Abfrage ob er als Gast weitermachen möchte, oder sich erst registrieren will, oder gar sich einloggen möchte zu entfernen. Dadurch wird der Prozess für den Kunden selbst noch mal beschleunigt, da dieser nur noch eine Adressdaten eingeben muss.
Hierzu sind ein paar kleinere Anpassungen am Template nötig. Ich gehe bei dieser Beschreibung einfach mal davon aus, dass alle für den Checkout notwendigen Dateien bereits durch ein eigenes Template überlagert werden und verzichte hier auf die kompletten Pfadangaben, da sich alle aufgezählten Dateien nicht mehr im Ordner default/default befinden, sondern – wie schon erwähnt – durch eigene überlagert werden.
Die Anpassungen:
Wie ich bereits erwähnte, muss man dazu einige kleine Modifikationen vornehmen. Dies betrifft allerdings nur zwei Dateien.
Datei layout/checkout.xml
In diesem XML nach folgender Sektion suchen:
1 2 | <checkout_onepage_index> <reference name="content"> |
Nach allen Blockelementen folgenden Eintrag einfügen:
1 | <remove name="checkout.onepage.login"/> |
Damit wird das Laden der login.phtml unterbunden.
Datei template/checkout/onepage.phtml
In dieser findet sich ganz am Ende der Datei ein JavaScript. Dies wird komplett mit dem folgenden Code ersetzt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <input type="hidden" name="checkout_method" id="login:guest" value="guest" checked="checked" /> <script type="text/javascript"> //<![CDATA[ var accordion = new Accordion('checkoutSteps', '.head', true); <?php if($this->getActiveStep()): ?> accordion.openSection('opc-<?php echo $this->getActiveStep() ?>'); <?php endif ?> var checkout = new Checkout(accordion,{ progress: '<?php echo $this->getUrl('checkout/onepage/progress') ?>', review: '<?php echo $this->getUrl('checkout/onepage/review') ?>', saveMethod: '<?php echo $this->getUrl('checkout/onepage/saveMethod') ?>', failure: '<?php echo $this->getUrl('checkout/cart') ?>'} ); var cb = $("login:guest"); cb.checked = true; checkout.setMethod(); //]]> </script> |
Hinweis:
Wenn man den Login deaktiviert hat, sollte man im Magento-Backend auch die Wunschliste abschalten, da diese einen Login voraussetzt. Zu finden ist dieser Punkt unter System –> Wunschzettel –> Allgemeine Optionen




Tolle Idee – liest sich gut. Das kann ich bestimmt bei dem einem oder anderem Projekt mal gebrauchen. Werde dann hier über meine Erfahrungen berichten…
Ich nehme an, ist mit den aktuellen Versionen 1.4.x getestet?
Holla Kai,
Natürlich ist es das. Läuft unter 1.4.x wunderbestens. Aber wie gesagt, wenn der Login abgeschaltet ist, dann muss auch der Wunschzettel aus.
Kleiner Tipp noch am Rande, mach nen Backup von den beiden Dateien im Originalzustand. Kunden entscheiden sich gerne um und mit mal will er wieder der Login haben., dann kannst Du das ganz schnell erledigen.
Danke, das habe ich gesucht.
In der template/checkout/onepage.phtml kann man übrigens noch folgendes (kursiv hervorgehoben) machen, damit die Schritt-Nummerierung stimmt und der erste Schritt komplett ausgeblendet wird:
2
3
4
5
<ol class="opc" id="checkoutSteps">
<?php $i=0; foreach($this->getSteps() as $_stepId => $_stepInfo): ?>
<strong><em><?php if ($_stepId === 'login') { $i = 0; continue; } ?></em></strong>
...
OK, Formatierung fehlgeschlagen. Es muss natürlich nur folgendes eingefügt werden:
Es kommt immer darauf an, was der Shop verkauft und ob die Kunden potentiell wiederkehrend sind oder der Kauf nur einmal alle Jubeljahre stattfindet. Staubsaugerbeutel oder Kontaktlinsen werden häufiger gekauft als Mikrowellen. Eben der Unterschied zwischen Ver- und Gebrauchsgütern. Bei Shops, die vorrangig auf Gebrauchsgüter spezialisiert sind, ist es sinnvoll, über ein Entfernen der Registrierungsprozedur nachzudenken.
Insofern ist die Möglichkeit, den Login abzustellen schon sinnvoll, nicht zuletzt aufgrund der Datenschutzdebatte. Bisher hat das bei uns noch kein Kunde gewünscht, aber falls es mal vorkommt, werde ich Deinen Tipp auf dem Radar behalten.