Magento zertifiziert
Magento

Katalog Ajax

Katalog Ajax

Ziel

Die Navigation im Katalog des Shops sollte so umgestellt werden, dass nicht bei jeder Filterung die Seite neu aufgebaut werden muss, was trotz Full Page Cache immer eine gewisse Zeit im Browser der Kunden dauert. Auf der anderen Seite sollte die Navigation nicht komplett geändert werden, d.h. es sollten weder neue Urls nötig sein, noch Veränderungen unter der Haube im Magento stattfinden. Vor allem um kompatibel zum Standard zu bleiben und keine Sonderlösung zu haben.

Hintergrund

In den letzten Jahren hat es durch den zunehmenden Einsatz von JavaScript bis hin zu Single Page Apps eine Veränderung in der Darstellung von Webshops gegeben, um vor allem auf Tablets und Mobilgeräten die Usablitiy zu verbessern. Auch wir haben bei Kunden Shops gebaut, in denen Magento nur als Datenquelle diente (headless) und die Darstellung komplett ins Frontend verlagert worden ist, was absolut seinen Charme hat. Die Probleme sind allerdings in vielen Fällen erst später aufgetreten. Zum Beispiel als der Kunde neue Dienste einbinden wollte. Oft brachten diese sogar ein Magento-Modul mit, welches dann aber relativ nutzlos war, weil es sich nur in den Standard Magento Prozess integrierte und nicht für eine Nutzung in einer Headless-Umgebung eignete. Selbst wenn man den Backend-Teil verwenden konnte, musste sämtliche Frontend-Funktionalität neu entwickelt werden, was mitunter enorme Entwicklungskosten mit sich brachte. Oft waren die Kunden dann mehr als ernüchtert, dass jedes neue Feature derartige Kosten produzierte. Insofern bestand die Überlegung, wie ein gewisser Zwischenweg aussehen kann. Auf der einen Seite die Useability zu verbessern und auf der anderen Seite keine Lösung zu schaffen, die nicht mehr kompatibel zum Standardprozess ist.

Unsere Lösung

Modul: Tofex Catalog Ajax

Die komplette Generierung der Seite bleibt vollkommen unverändert durch das Modul, d.h. der erste Seitenaufruf einer Katalogseite unterscheidet sich nur durch zusätzliches JavaScript, welches das Modul mitbringt. Über dieses JavaScript werden die Links auf Filter-Werte, Paging, Sortierung oder Sortierreihenfolge so gebunden, dass beim Klick auf diese Links die Urls nicht normal als Requests über den Browser aufgerufen werden, sondern per Ajax an den Server geschickt werden. Der überschriebene Katalog-Controller erkennt nun, dass es sich um einen Ajax-Request handelt und rendert nur die Blöcke für die Filter und den Content einer Kategorieseite oder der Suchergebnisseite. Das Ergebnis des Renderns wird per JSON in die Response geschrieben, sodass im Frontend der Inhalt des jeweiligen Bereiches ausgetauscht wird. So wird erreicht, dass der komplette Katalog und die Suchergebnisseite weiterhin komplett kompatibel zum Standard sind und auch beliebig erweitert und ergänzt werden können, z.B. durch Tracking-Module. Der Nachteil ist, dass weiterhin der sehr resourcenlastige Render-Prozess von Magento verwendet wird, um HTML zu erzeugen, allerdings war das aus zuvor beschriebenen Überlungen auch explizit so gewollt.

2019-07-20 14:15:07
Warum entwickeln wir eigene Extensions? Warum verkaufen wir keine Extensions?

Kontakt

Tofex UG
Leutragraben 1
D-07743 Jena

Telefon: +49 3641 559 87 40
E-Mail: Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!