Alle Neuigkeiten

Die neue Liferay Webshop-Lösung
Die neue Liferay Webshop-Lösung

Vor kurzem hat Liferay offiziell auf der Homepage ein neues Produkt vorgestellt: Liferay Commerce

Es handelt sich dabei um eine Webshop-Lösung, die den Funktionsumfang von Liferay dementsprechend erweitern soll. Während man mit Liferay ja bereits einiges an Infrastruktur zur Verfügung hat, Benutzer und Rechteverwaltung, Selbstregistrierung, Filter und Suche, Forum oder Wiki, ... fehlte eine Webshop-Lösung völlig. Es gab zwar ein kleines Portlet, das aber nur die minimalen Anforderung erfüllt hatte.

Liferay erweitert damit seinen Feature-Umfang deutlich, Webshops sind eine häufige Anforderung. Wir haben mit unserem "Work at Home" und "Office für Schüler und Schulbedienstete" selbst auf Basis von Liferay bereits kleine Einkaufs-Lösungen umgesetzt, allerdings auf unsere Spezialfälle zugeschnitten wobei die Implementierung entsprechend aufwändig war. Produktverwaltung, Warenkorb, Abwicklung des Bezahlvorgangs, und weitere wichtige Shop-Komponenten mussten komplett neu entwickelt werden.

Einige Themen wie z.B. Querverkauf (Cross Selling) sind allerdings bei solch selbstgestrickten Lösungen nur mühsam zu realisieren. Bei unserem kleinen Shop mit wenigen Produkten war das zum Glück keine Anforderung, aber bei einer echten Shop-Lösung müssen solche Features vorhanden sein. Wenn man einen echten, kompletten Shop haben wollte, gab es bisher kein Angebot von Liferay und man war im Normalfall besser bedient, auf eine alternative Lösung auszuweichen.

Wie sieht es nun mit dem Funktionsumfang von Liferay Commerce aus?

Hier ist vorauszuschicken, dass sich die Entwicklung erst im Beta-Stadium befindet und (Stand August 2018) daher noch nicht allgemein verfügbar ist. Die folgende Betrachtung erhebt auch keinen Anspruch auf Vollständigkeit, wir haben einfach einige interessante Features herausgestrichen.

Der Webshop setzt als Basis Liferay 7.1 voraus. Installiert man die Lösung, hat man sofort einen neuen Punkt "Commerce" im Produktmenü sowie eine Menge neuer Unterpunkte zur Verfügung stehen. Dazu gibt es noch einige Portlets, die man auf den Seiten platzieren muss (z.B. Produktübersicht, Produktdetailseiten). Man benötigt eine Weile um sich zurecht zu finden, was auch durch die nicht vorhandene Dokumentation erschwert wird. Die vielen Menüs und Untermenüs, auf denen sich eine Vielzahl von Einstellungen befindet, benötigen Einarbeitungszeit.

Einige der Optionen sind nicht wählbar oder gar nicht sichtbar, wenn man sie nicht vorher anderswo angelegt hat. Beispielsweise sind, wenn man keine Steuer-Konfiguration angelegt hat, logischerweise keine Steuern für die Produkte festlegbar. Wenn man keine Warenhäuser angelegt hat, kann man auch nicht eintragen, in welchen Warenhäusern ein Produkt lagernd ist.

Der interessierte Leser sollte also etwas Zeit für die Einarbeitung verplanen.

Backend/Konfiguration

Produkte

Unter dem Menüpunkt Produkte hat man die Möglichkeit, Produkte und Produktgruppen anzulegen. Die Einstellungsmöglichkeiten pro Produkt sind sehr umfangreich. Selbstverständlich kann man Preis, Beschreibung, Bilder, Anhänge, Maße (für Versand), ... angeben. Man kann verwandte Produkte definieren, was vermutlich für Cross Selling genutzt werden kann (Cross Selling ist als Feature vorhanden, wir haben es nicht ausprobiert). Für die Bestandsverwaltung ist sicherlich bedeutend, dass es möglich ist, SKUs (Stock Keeping Units, Bestandseinheit) pro Produkt festzulegen. SKUs dienen üblicherweise als interne Artikelnummer um die Verwaltung der Ware zu ermöglichen.

.
Die Verwaltung der Preise kann sehr detailliert durchgeführt werden. Es gibt Preise und Preislisten, Discounts(z.B. Coupons), Preis pro Benutzersegment, Angebotspreise (Zeitraum), und einiges mehr. Die Möglichkeiten der Preisgestaltung sind recht umfangreich. Bei jeder Preiskonfiguration kann auch die Priorität festgelegt werden, falls mehrere Preisregeln für den aktuellen Benutzer gelten.

User Segments

Es ist möglich, Benutzer in Segmente zu ordnen. Diesen Benutzersegmenten kann wiederum ein eigener Preis für gewisse Produkte zugewiesen werden. Dabei können einzelne Benutzer, Gruppen, Organisationen und Rollen ausgewählt werden.

Settings

In den Einstellungen können, wie man sieht, sehr viele notwendige Dinge konfiguriert werden. Interessant ist sicherlich, dass man Workflows für Bestellungen hinterlegen kann um den Prozess abzuwickeln. Unter Notifications kann man aktuell nur "Bestellung entgegengenommen" anlegen, vermutlich sind hier aber weitere geplant/in Arbeit. Länder/Regionen/Warenhäuser können frei angelegt werden und dort kann auch festgelegt werden, ob Verkauf/Versand erlaubt ist. Bei Warenhäusern können auch die Koordinaten für Geolocation angegeben werden und bei Versand definiert werden, dass das nächstgelegene Warenhaus genutzt werden soll.

Interessant ist vielleicht, dass bei den Zahlungsmethoden nur die "manuelle Zahlung" (z.B. Überweisung) und Paypal vorhanden sind. Was zu tun ist, um z.B. Kreditkartenzahlung zu ermöglichen, ist aktuell unklar. Vermutlich wird man hier selbst die Anbindung eines Payment Anbieters implementieren müssen.

Frontend/Benutzersicht

Für die Anzeige der Produkte wurde ein klassischer Liferay Ansatz gewählt. Es gibt einen ProductPublisher und ein ProductDisplay Portlet. Wie man es von Assetpublisher/WebcontentDisplay gewohnt ist, kann über Filter festgelegt werden, welche Produkte in der Übersicht angezeigt werden.

Die Standard-Darstellung eines Produktes ist durchaus ansprechend, aber falls das nicht genügt, ist es wie gewohnt möglich, ein Application Display Template für die Darstellung der Produktlisten aber auch des Einzelprodukts festzulegen. Es gibt hier auch ein neues, interessantes Feature. Man kann stattdessen "Product List Renderer" bzw. "Product Type Render" auswählen, die die Darstellung übernehmen. Wie man solche eigenen Renderer definiert, ist aktuell unklar, wir gehen davon aus, dass es bis zur Veröffentlichung ein Beispiel oder Dokumentation dazu geben wird.

Weitere Portlets dienen der Darstellung des Warenkorbs, der Wunschlisten und der Benutzereinstellungen.

Selbst ausprobieren?

Um das ganze selbst zu testen, ist es aktuell notwendig, den Code von Github selbst auszuchecken, zu kompilieren und in Liferay 7.1 zu deployen.

https://github.com/liferay/com-liferay-commerce

Nach dem Klonen muss man in einem Parallelverzeichnis einen bundles Ordner mit Liferay 7.1 anlegen.

Zum Builden ruft man folgenden Befehl auf:
gradlew.bat deploy -Dbuild.profile=portal --console plain

Danach sollte es genügen, Liferay zu starten. Einige Schwierigkeiten und Workarounds/Lösungen sind hier beschrieben:
https://community.liferay.com/de/forums/-/message_boards/category/110421633

Fazit

Auch wenn wir hier nur sehr oberflächlich die vielen Features des neuen Commerce Moduls streifen konnten, macht es doch einen sehr ausgefeilten Eindruck. Beim Testen sind uns diverse kleinere Fehler aufgefallen (wie z.B. fehlende Texte), aber insgesamt funktionierte es schon sehr gut. Das größte Manko ist aktuell wohl die fehlende Dokumentation. Einige Einstellungen sind schwer zu finden und oft ist nicht ganz klar, was zu tun ist. Man muss mit Probieren herausfinden, wie sich diverse Schalter in der Praxis verhalten.

 
Ihr Ansprechpartner
Christoph Rabel
cr@dccs.at