Bachelorarbeit: Automatisierte Bestellungen mit Spryker

millenium falcon

In seinem Bachelorprojekt bei basecom hat sich Andreas Saks mit dem Spryker Commerce OS beschäftigt und die Möglichkeiten des innovativen Headless-Systems für IoT-Anwendungen ausgelotet. Dabei hat er nicht nur viel gelernt, sondern nebenbei auch ein legendäres Raumschiff aus einer weit entfernten Galaxis mit der E-Commerce-Technologie der Zukunft ausgestattet. Wie es dazu kam, erzählt Andreas in diesem Beitrag: 

Nachdem ich basecom bei der Firmenkontaktmesse Chance der Hochschule Osnabrück kennengelernt hatte, habe ich mich im Rahmen meines Bachelorsemesters bei basecom vom März bis zum September 2019 mit dem PHP-Framework Spryker beschäftigt. Aufgabe war es, das System kennenzulernen und die Möglichkeiten zu untersuchen, die es neben denen des traditionellen Webshops bietet. Dies spielt eine große Rolle in der Welt des E-Commerce, da die Art und Weise, wie wir mit Onlinediensten interagieren, sich ständig wandelt. Neben Computern und Smartphones stehen uns heutzutage Smartwatches, VR/AR Geräte, Sprachassistenten und diverse andere digitale Touchpoints zur Verfügung, und niemand kann ahnen, welche Arten der Interaktion in der Zukunft noch entstehen werden. Ein System, dass nur über einen Webshop oder eine App bedient werden kann, hat es also schwer sich in der modernen Welt durchsetzen zu können.
Hier kommt Spryker ins Spiel. Spryker ist ein Headless-System an, das nach dem API-first-Prinzip funktioniert und so sehr flexibel ist. Das System verspricht eine Vielzahl von Interaktionsmöglichkeiten, indem es eine Schnittstelle (API) anbietet, die von allen möglichen netzwerkfähigen Geräten angesteuert werden kann. Meine erste Aufgabe war es also, diese Schnittstelle kennenzulernen, dessen Möglichkeiten anzuschauen und eventuell um benötigte Funktionalitäten zu ergänzen. Ziel meines Projekts war es, eine IoT-Anwendung an das System anzubinden. Um die Auswahl der benötigten Hardware treffen zu können, musste ein geeigneter Anwendungsfall für das Projekt festgelegt werden. Da das Team im Unternehmen einen Millenium Falcon aus der Star Wars Filmreihe aus Lego zusammengebaut hatte, hat sich das Modell prima dafür angeboten, einen interessanten Anwendungsfall auszuarbeiten und die Einsatzmöglichkeiten des Headless-Systems zu veranschaulichen. Das Szenario lautet in etwa wie folgt:

Es war einmal vor langer Zeit in einer weit, weit entfernten Galaxis… Im letzten Moment zog Han Solo den Millennium Falcon steil nach oben und flog eine Rolle, während der TIE Fighter hinter ihm auf der Oberfläche des Asteroiden aufschlug und in tausend Stücke zerschellte. Sie hatten es mal wieder geschafft, dachte Solo, als er seinen Freund Chewbacca laut aufschreien hörte. Der Wookie war stinksauer. Schon wieder war im Gefecht eine Parabolantenne abgebrochen. Wo sollte er jetzt ein passendes Ersatzteil herbekommen? Zum Glück konnte Solo seinen Gefährten schnell beruhigen: Vor kurzem war der Millennium Falcon mit einer Web-Applikation ausgestattet worden, die mit Hilfe des Spryker Commerce OS automatisch eine Ersatzteilbestellung auslöst, wenn ein Teil verloren geht.

Um das Lego-Modell des Millennium Falcon entsprechend zu präparieren wurde nicht viel Hardware benötigt. Im Kern steht ein Raspberry Pi 4, der sich um alles kümmert. An diesen sind die Einzelteile über die GPIO-Pins des Raspberry Pis angeschlossen. Das Prinzip ist einfach: Sind die Teile am Falcon, schließen sie einen Stromkreis am Pi. Solange dieser geschlossen ist, weiß der Pi, dass das Teil noch dran ist. Sobald ein Teil aber abfällt, wird der Stromkreis geöffnet, ein auf dem Pi laufendes Python-Skript erkennt diese Änderung und schickt anschließend eine Bestellanfrage an das Spryker-System. Die Funktionen, die Sprykers Schnittstelle von Haus aus bietet, würden an sich für den Anwendungsfall reichen. Allerdings wären dafür mehrere Anfragen pro abgefallenem Einzelteil benötigt worden. Ich habe also eine Funktion hinzugefügt, mit der der Prozess mit nur einer Anfrage an die Schnittstelle durchgeführt werden kann. Das Ergänzen von Funktionen und allgemein das Anpassen von Spryker hat sich dabei als recht einfach herausgestellt. Zwar dauert die Einarbeitung in Spryker ziemlich lange und es braucht Zeit, bis man mit der Struktur und den Konzepten von Spryker vertraut ist, dafür hat man aber im Nachhinein durchgehend das Gefühl, sauberen Code und eine gute Projektstruktur zu haben. Dies ist besonders im späteren Projektverlauf wichtig, wenn Änderungen an den Anforderungen vorgenommen werden, welche zu Codeanpassungen führen.
Da dieser Aufbau sehr einfach gehalten ist, kann er für viele andere Einsatzzwecke angepasst werden. Der Raspberry Pi 4 wird hier nur benötigt, da auf ihm das gesamte Spryker-System läuft, um einen kompakten Demo-Case anzubieten. Soll ein Ähnliches System z.B. in einer Fabrik in Maschinen eingesetzt werden, können viel kleinere, leistungsschwächere und günstigere Geräte den Pi ersetzen. Die einzige Anforderung ist Netzwerkfunktionalität, um HTTP-Anfragen an die Spryker-Schnittstelle senden zu können.
Neben dieser Grundfunktionalität habe ich außerdem eine Oberfläche ausgearbeitet, um die Prozesse zu veranschaulichen und als Demo-Case ausstellen zu können. Die Oberfläche wird aber nur zur Visualisierung benötigt, die Grundfunktionalität selbst läuft headless ab.
Das Projekt hat mir eine gute Möglichkeit gegeben, die E-Commerce-Software Spryker zu untersuchen und Möglichkeiten des E-Commerce abseits des klassischen Webshops kennenzulernen. Auch wenn der Einstieg in das Thema schwer war, kann ich nun nachvollziehen, wieso Spryker sich für bestimmte Konzepte entschieden hat und welche Vorteile das System bietet. Auch wenn dieses Projekt bei weitem nicht perfekt ist, war es ein guter Einstieg in Spryker, aus dem ich viel für zukünftige Projekte mit dem System lernen konnte.

Andreas SaksSeit dem Ende seines Studiums verstärkt Andreas unser Spryker-Team als Softwareentwickler. Wenn auch du Lust hast, deine Abschlussarbeit bei basecom zu schreiben, besuch einfach unsere Karriereseite und melde dich bei uns. Wir helfen dir gerne, dein Thema zu finden und bieten dir in unserer basecom Academy die Betreuung, die du brauchst, um das beste aus deiner Bachelor- oder Masterarbeit zu machen.

Dieses Jahr bauen wir übrigens einen Imperial Star Destroyer aus Lego. Der kann dann sicher auch noch ein Upgrade vertragen.