Shopify-Automatisierung

José Santos
José Santos
November 16 · 8 Min. Lesezeit
Shopify-Automatisierung

Shopify-Automatisierung

Shopify-Automatisierung ist ein spannendes Thema, wenn man darauf abzielt, ein effizientes und autonomes Geschäft zu führen. Für größere Unternehmen mit einem hohen Umsatzvolumen ist es sogar nahezu unerlässlich gewisse Tätigkeiten zu automatisieren. Durch die Automatisierung von kleinen wiederkehrenden Aufgaben können Sie Ihren Fokus auf das Wesentliche verlagern - zum Beispiel die Weiterentwicklung Ihres Shops. Es eröffnet eine ganz neue Welt der Möglichkeiten und heutzutage gibt es Tools, mit denen auch Anwender mit wenig bis gar keinen Programmierkenntnissen, alltägliche Prozesse automatisieren können. Wenn man das vollständige Potenzial von Automatisierung verstanden hat, dann werden in den meisten Fällen früher oder später auch Entwickler hinzugezogen, um alle neuen Ideen bis ins letzte Detail umzusetzen.

Beispiele für automatisierte Anwendungen:

- Wenn eine Bestellung versendet wurde bekommt der Kunden automatisch eine E-Mail mit einem Tracking Code und weitere Nachrichten bei jedem Update zur Sendung;

- Wenn ein Produkt ausverkauft ist, dann blenden Sie es automatisch im Shop aus und benachrichtigen Ihr Personal;

- Wenn ein zuvor ausverkaufter Artikel wieder auf Lager ist, benachrichtigen Sie eine Liste von Kunden per E-Mail, dass der Artikel wieder verfügbar ist;

- Kunden erhalten einen automatischen individuellen Rabatt, wenn Sie eine bestimmte Auswahl an Produkten in den Warenkorb legen (z.B. je nach Menge, Warenkorbwert oder Produkttyp)

Zunächst eine kurze Einführung in einige Kernkonzepte zum Abrufen und Senden von Informationen mit Shopify:

Shopify Application Programming Interface (API) – Shopify verfügt über verschiedene APIs, mit denen Sie CRUD Vorgänge (CRUD steht für create, read, update und delete) in Ihrem Shop durchführen können. Sie müssen zuerst eine private App mit den erforderlichen Berechtigungen erstellen und erhalten dann die Anmeldeinformationen/Token für die API. Derzeit bietet Shopify die folgenden APIs:

- Shopify Storefront API – Grundlegende GET-Vorgänge;

- Shopify Representational State Transfer (REST) Admin API – Eine REST API zeichnet sich dadurch aus, dass sie stateless ist und die Belange von Client und Server trennt. Sie implementiert alle notwendigen Methoden, um CRUD-Operationen über vier grundlegende HTTP-Verben durchzuführen: POST (create), GET (read), PUT (update), DELETE (delete).

- Shopify GraphQL Admin API – GraphQL API mit vollem Funktionsumfang für CRUD-Vorgänge. GraphQL ist eine Abfragesprache für APIs mit einer Laufzeit zum Erfüllen der Abfragen mit vorhandenen Daten. Der Kunde kann die genauen benötigten Informationen anfordern und GraphQL stellt die genaue Nutzlast bereit, wodurch der Kunde die volle Kontrolle über die Daten erhält.

- Shopify Webhooks – Bei Webhooks handelt es sich um spezifische Shopify-„Trigger“, die unter einer bestimmten Bedingung ausgelöst werden und eine HTTP-Anfrage an eine URL Ihrer Wahl sendet, die in den Shopify-Einstellungen definiert ist. Shopify hat eine ganze Liste davon, sodass Sie beispielsweise einen Webhook aktivieren können, der beim Erstellen einer neuen Bestellung ausgelöst wird und die Informationen der Bestellung in einer HTTP-Anfrage an die gewünschte Zieladresse sendet.

Automatisierungstools

Wir benötigen jetzt ein Tool, das mit den Shopify-APIs zu kommuniziert, oder durch einen Shopify Webhook ausgelöst werden kann, um automatische Aufgaben auszuführen. Dieses Tool kann von einer einfachen Shopify-App bis hin zu einer eigens entwickelten Node.js-App reichen, die auf ihrem eigenen Server läuft. Shopify-Automatisierung ist also wirklich für jeden verfügbar, es hängt nur von der Komplexität der Aufgaben ab, die Sie implementieren möchten.

Im Bereich Apps gibt es im Shopify App Store fast unendlich viel Auswahl und viele Apps bieten Automatisierung in ausgewählten Bereichen, wie z.B. dem E-Mail Marketing oder der Bestellabwicklung. Um die Dinge einfach zu halten, konzentriere ich mich im Folgenden auf Shopify-Apps, die explizit auf die Prozessautomatisierung ausgerichtet sind, und Javascript-Backend-Apps und deren Vor- und Nachteile. Lassen Sie uns diese also detaillierter besprechen, geordnet nach Komplexität:

Flow (Shopify Plus)

https://help.shopify.com/de/manual/shopify-plus/flow

Flow ist ein Automatisierungstool, das nur Shopify Plus-Kunden zur Verfügung steht und ihnen ermöglicht, einige bereits vorhandene Vorlagen zu verwenden oder sogar ihre eigenen Workflows zu erstellen, damit sie einige Shopify-Abläufe automatisieren können. Flow ist die einfachste Lösung, mit der man arbeiten kann, aber auch die limitierteste, da sich leider nur recht einfache und lineare Aufgaben automatisieren lassen.

Vorteile:

- Schnelle Einrichtung und anfängerfreundlich; kann von jedem Benutzer verwendet werden, da es keine Programmierkenntnisse braucht;

- Intuitive Bedienung, da Flows ähnlich ein Flussdiagramm mit Triggern, Bedingungen und Aktionen dargestellt werden;

- Schnelles und einfaches Aufsetzen von Automatisierungen mit niedriger bis mittlerer Komplexität, was bedeutet, dass die Programmierung mit Flow weniger Zeit in Anspruch nimmt als z.B. eine individuelle Backend-Lösung mit Node.Js;

- Vorhandene Vorlagen ermöglichen die Automatisierung ausgewählter Prozesse mit nur wenigen Klicks;

- Flow ist mit ausgewählten Shopify-Apps integriert und erlaubt so auch Automatisierungen zwischen diesen Apps;

- Flow ermöglicht auch HTTP-Anfragen, was bedeutet, dass sogar einfache API-Integrationen möglich sind;

Nachteile:

- Flow ist nur für Shopify Plus-Kunden verfügbar (und Shopify Plus kommt mit einer hohen monatliche Gebühr);

- Flow ist für komplexere Aufgaben nicht geeignet, da die vorhandenen Trigger, Bedingungen und Aktionen begrenzt sind. Es ist beispielsweise nicht möglich, ein Produkt aus einem Flow heraus zu erstellen - allerdings ist es möglich ist, ein Produkt z.B. zu veröffentlichen oder auszublenden;

- Asynchrone Aufgaben können ein Problem darstellen;

Mechanic

https://learn.mechanic.dev/

Mechanic ist eine App, die über das Shopify-Admin-Panel in Ihrem Shop installiert werden kann. Wie die meisten Apps erfordert Mechanic ein monatliches Abonnement (es gibt eine kostenlose 15-tägige Testversion) und ermöglicht Ihnen, Aufgaben mit geringer bis hoher Komplexität zu automatisieren.

Ein tolles Feature ist, dass eine riesige Liste von Open-Source-Vorlagen für Prozess Automatisierungen angeboten wird. So sind viele Automatisierungen mit wenigen Klicks eingerichtet und Anwender, die wissen, wie man programmiert, können darüber hinaus Ihre eigenen Workflows mittels Shopifys Template Sprache .liquid entwickeln.

Die Praxis zeigt jedoch leider, dass es dem Code an Lesbarkeit und Organisation fehlt, da Sie auch für komplexere Aufgaben nur eine einzige Seite und viele verwirrende Codezeilen erhalten. Selbst wenn Sie mit dem Code in einer für .liquid vorbereiteten integrierten Entwicklungsumgebung (IDE) arbeiten, können Sie immer noch von komplexen Skripten überwältigt werden.

Mechanic verwendet die Shopify Webhooks, um über Ereignisse informiert zu werden die dann eine Automatisierung auslösen.  Beispielsweise könnten Sie das Mechanic-Ereignis „shopify/orders/create“ abonnieren, mit dem dann Ihre Automatisierung ausgeführt wird, wenn eine neue Bestellungen erstellt wurde. Dies funktioniert sehr gut für einfache Aufgaben, führt jedoch auch zu einer gewissen Komplexität des Codes, wenn Sie komplizierte Aufgaben skripten. Wenn Sie beispielsweise die Automatisierung nur bei ausgewählten Bestellungen durchführen wollen, dann müssen Sie eine filternde Abfrage einbauen und auf das Ergebnis warten, um dann damit weiterarbeiten zu können. So benötigen Sie mehrere Ereignisabonnements und Ihr Automatisierungs-Skript wird mehrschichtiger und unübersichtlicher.

Vorteile:

- Schnelle Installation der App;

- Viele bereits vorhandene Vorlagen, die die Automatisierung ausgewählter Aufgaben ermöglichen. Die Vorlagen sind Open Source, sodass Sie sie auch erweitern können, um an Ihrem eigenen Workflows zu arbeiten;

- Schnell und einfach zu implementieren, wenn Sie mit den bereits vorhandenen Vorlagen arbeiten;

- Einfache Aufgaben oder Aufgaben mit vorhandenen Vorlagen lassen sich im Vergleich zu einer individuellen Backend-Lösung mit z.B. Next.js wesentlich schneller implementieren;

- Die App ermöglicht die Ausführung mehrerer Aufgaben;

- Die App ermöglicht die Automatisierung von Aufgaben mit geringer bis hoher Komplexität;

- Mechanic ist kompatibel mit GraphQL;

Nachteile:

- Um eine benutzerdefinierte Aufgabe/einen benutzerdefinierten Workflow zu erstellen, muss der Anwender über gute bis sehr gute Kenntnisse in der Shopify Template Sprache .liquid verfügen;

- Die Ausführung der Automatisierungen erfolgt durch Mechanic, was bedeutet, dass Updates der App Aufgaben potenziell unterbrechen können, Server möglicherweise ausfallen können usw.;

- Mechanic erlaubt keine Verwendung einer  integrierte Entwicklungsumgebung, daher entstehen alle diese zusätzlichen Nachteile:

- Das Coding komplexer Automatisierung dauert im Vergleich zu einer regulären Back-End-Lösung länger;

- Probleme mit der Skalierbarkeit;

- Es ist nicht möglich in einer Team Umgebung am Code zu arbeiten;

- Die Dokumentation ist nicht großartig (aber bedenken Sie, dass es viele Open-Source-Vorlagen von Mechanic selbst gibt);

- Lesbarkeit und Organisation des Codes sind schwierig;

- Wartung und Protokollierung ist erschwert;

- Keine Versionierung;

- Debugging-Tools sind begrenzt;

- Es ist nahezu unmöglich die Performance zu verfolgen und Performanceprobleme debuggen;

- Asynchrone Aufgaben benötigen mehrere Ereignisabonnements und viel zusätzlichen Code, der zu dem Durcheinander beiträgt, den Sie am Ende haben werden, wenn Sie mit der Entwicklung eines komplexen Workflows fertig sind.

Vercel Next.JS App

Hierbei handelt es sich nicht um ein spezielles Tool oder eine Shopify App. Next.JS ist ein React.JS-Framework, das zum Erstellen von Web-Apps verwendet wird, die im Browser des Clients mit Javascript gerendert werden. Im Gegensatz zu den vorherigen Lösungen ist dieser Weg für einen Nicht-Entwickler nicht praktikabel. Ein entsprechend qualifizierter Entwickler kann jedoch eine Web-App erstellen, die Shopify-Aufgaben mithilfe der APIs und Webhooks von Shopify oder sogar mithilfe einiger Bibliotheken wie „shopify-api-node“ automatisiert.

Dabei hat der Anwender bei der Automatisierung volle Freiheit in der Umsetzung.

Next.js hat einen besonderen Vorteil gegenüber einer regulären Node.js-App und zwar Serverless Functions und ein vereinfachtes Hosting/Deployment. Dies bedeutet aber auch, dass Sie eine zusätzliche Datenspeicher Dienste wie Amazon S3 (AWS S3), Azure oder Google Cloud verwenden müssen, wenn Sie Daten nicht nur verarbeiten, sondern auch speichern wollen. Mit einer serverlosen App können wir ansonsten einen API-Endpunkt als serverlose Node.js-Funktion erstellen, wenn wir Shopify-Webhooks empfangen möchten.

Vorteile:

- Ermöglicht die Automatisierung von Aufgaben mit geringer bis hoher Komplexität;

- Schlanke Serverless Functions;

Vollständige Entwicklungsumgebung, was wiederum bedeutet:

- Einfach zu skalieren;

- Man kann im Team an der App arbeiten;

- Eine ordentliche Versionierung und Protokollierung ist möglich;

- Performance Tracking und Debugging ist praktikabel;

- Einfaches Deployment über eine GIT-Integration;

- Weitreichende Dokumentation;

Nachteile:

- Es braucht einen Web-Entwickler für die Erstellung der App.

- Die Anfangsinvestition ist in der Regel wesentlich größer als bei der Verwendung einer Shopify-App., (dafür sind die laufenden Kosten häufig niedriger);

- Die Protokollverfolgung durch Vercel kann etwas eingeschränkt sein;

- Die App kann von Zeit zu Zeit Wartung erfordern;

- Kein nativer Datenspeicher

Node.JS app

Ähnlich wie Next.js ist dies eine Lösung für Entwickler. Es erfordert eine Hosting-Lösung, hat aber das volle Potenzial einer Web-App und funktioniert nahtlos mit bestehenden Shopify-npm-Modulen wie shopify-node-api, die den gesamten Workflow viel schneller machen.

Vorteile:

- Volles Potenzial einer Web-App;

- Ermöglicht die Automatisierung von Aufgaben mit geringer bis hoher Komplexität;

Vollständige Entwicklungsumgebung, was wiederum bedeutet:

- Einfach zu skalieren;

- Man kann im Team an der App arbeiten;

- Eine ordentliche Versionierung und Protokollierung ist möglich;

- Performance Tracking und Debugging ist praktikabel;

- Einfaches Deployment über eine GIT-Integration;

- Viele Dokumentationen;

Nachteile:

- Erfordert eine komplette Hosting-Lösungen;

- Die Anfangsinvestition ist in der Regel wesentlich größer als bei der Verwendung einer Shopify-App., (dafür sind die laufenden Kosten häufig niedriger, wenn auch nicht ganz so niedrig wie bei einer serverless function);

- Die App kann von Zeit zu Zeit Wartung erfordern;

Fazit

Ich hoffe, nachdem Sie dies gelesen haben, sind Sie begeistert und bereit, jeden Aspekt Ihres Geschäfts (oder sogar Ihres Lebens) zu automatisieren!

Befreien Sie sich von den lästigen wiederkehrenden Aufgaben, konzentrieren Sie sich auf die wichtigen Themen und freuen Sie sich auf die Zukunft des E-Commerce!

José Santos

José Santos

Software Engineer

Melden Sie sich für unseren Newsletter an!

Bleiben Sie mit unseren News rund ums Thema E-Commerce und Technologie auf dem Laufenden.
Durch einen Klick auf "Anmelden" erklären Sie sich mit unserer Datenschutzerklärung einverstanden.

KONTAKT

Möchten Sie mehr erfahren?

Lassen Sie sich von uns helfen!