← Zurück zum Blog
Strategie

Wann braucht ein Shopify-Store wirklich individuelle Entwicklung?

Von Roland Nagy 7 Min. Lesezeit

Ab und zu kommt jemand mit einer Feature-Anfrage zu mir und eröffnet mit: „Dafür brauchen wir wahrscheinlich individuelle Entwicklung." Manchmal haben sie recht. Oft nicht, und der interessantere Teil des Gesprächs besteht darin, herauszufinden, was zutrifft, bevor jemand eine einzige Zeile Code schreibt.

Individuelle Entwicklung sollte nicht der reflexartige Ausgangspunkt für eine neue Anforderung sein, auch wenn sie manchmal die naheliegende Antwort sein kann, sobald man wirklich versteht, was das Unternehmen braucht. Shopifys native Funktionen, ein gut gebautes Theme und eine Handvoll gut gewählter Apps lösen einen wirklich großen Teil dessen, was ein Store tatsächlich braucht. Die Messlatte für „wir brauchen etwas Individuelles" sollte höher liegen, als die meisten Gespräche sie ansetzen.

Das heißt nicht, dass individuelle Entwicklung etwas ist, das man vermeiden sollte. Es heißt, dass man sie sich verdienen muss.

Fang mit dem Einfachsten an, das funktioniert

Gutes Engineering hat noch nie bedeutet, Code zu schreiben, wann immer die Option besteht. Es bedeutet, die Lösung zu wählen, die die Aufgabe zuverlässig mit der geringsten Menge an Dingen erledigt, die kaputtgehen können, gewartet werden müssen, oder die jemand in sechs Monaten verstehen muss.

Shopifys Plattform deckt mehr Boden ab, als die meisten annehmen. Metafelder eignen sich hervorragend für strukturierte Daten, die an Produkte, Kunden oder den Store selbst gebunden sind, sind aber kein echter Ersatz für ein richtiges Datenmodell, sobald Beziehungen, Workflows oder operative Zustände komplex werden. Markets handhabt Mehrwährung und Lokalisierung auf eine Weise, die früher viel individuelle Logik erfordert hätte.

Shopify Functions und Flow helfen hier beide, lösen aber unterschiedliche Probleme. Functions erweitern spezifisches Backend-Verhalten, wie individuelle Rabattlogik, Liefer- und Zahlungsanpassung oder Checkout-Validierung. Flow dreht sich eher um ereignisgesteuerte Automatisierung: das Auslösen von Aktionen, wenn ein Bestell-, Kunden- oder Bestandsereignis eintritt. Zwischen beiden lässt sich eine überraschende Menge an Geschäftslogik ohne eigenes Backend abbilden.

Sections und Blocks geben Merchandising-Teams echte Kontrolle über das Layout, ohne Code anzufassen. Das App-Ökosystem existiert genau deshalb, weil die meisten Stores auf dieselbe Handvoll Probleme stoßen: Bewertungen, Abonnements, Treueprogramme, Upsells, Bestandssynchronisierung.

Wenn eine native Funktion oder eine gute App dich zuverlässig zum größten Teil dorthin bringt, wo du hinmusst, ist es meist keine kluge Ausgabe, das Ganze von Grund auf neu zu bauen. Das macht es nicht ernsthafter oder professioneller. Es macht es oft einfach nur teurer und fragiler, ohne echten Nutzen.

Wo das Standardmodell nicht mehr passt

Individuelle Entwicklung beginnt Sinn zu ergeben, wenn das Geschäft nicht nach dem Prozess läuft, für den Shopify konzipiert wurde, nicht schon dann, wenn etwas nur leicht unpraktisch ist.

Ein paar Muster tauchen immer wieder auf. Buchungs- oder kapazitätsbasierte Produkte, bei denen der Bestand kein einfacher Zähler ist, sondern von Terminen, Zeitfenstern oder Ressourcenverfügbarkeit abhängt. Komplexe Produktkonfiguration, bei der der Kunde etwas aus voneinander abhängigen Optionen zusammenstellt, statt Varianten aus einem festen Raster zu wählen. B2B-Workflows, die über das hinauswachsen, was Shopifys native B2B-Tools bereits abdecken, besonders auf Plus, wo Firmenkonten, verhandelte Preise und Bestellungen von Haus aus recht gut funktionieren, ungewöhnliche Freigabeketten oder unternehmensspezifische Beschaffungsregeln aber oft nicht. Preislogik, die von Kundensegment, Mengenstaffeln oder Vertragsbedingungen abhängt, die sich nicht auf Shopifys Standard-Rabattmodell abbilden lassen. Bundles oder stücklistenartige Produkte, bei denen ein SKU, den der Kunde kauft, tatsächlich Bestand von mehreren zugrunde liegenden Komponenten abziehen muss. Operative Workflows, wie eine Fulfillment-Reihenfolge oder ein Compliance-Schritt, die das Unternehmen wirklich braucht und die Shopify nie im Sinn hatte.

Nichts davon ist exotisch. Das kommt in echten Unternehmen häufig vor, und was sie meist gemeinsam haben, ist, dass die Geschäftslogik selbst zu dem wird, was man modellieren muss, nicht nur der Storefront, der darauf sitzt. Das ist meist der Punkt, an dem es mehr kostet, Shopifys Standardmodell in die richtige Form zu biegen, als es einspart.

Wenn „installier einfach noch eine App" nicht mehr funktioniert

Apps sind eine der besten Eigenschaften dieser Plattform, kein Kompromiss. Eine gut gewählte App ist meist billiger, schneller und sicherer als individueller Code, weil jemand anderes sie wartet, patcht und mit Shopifys Änderungen kompatibel hält.

Das Problem sind nicht Apps. Es ist, wenn mehrere Apps übereinandergestapelt werden, um einen einzelnen Geschäftsprozess anzunähern, jede mit ihrem eigenen Ausschnitt der Daten und ihren eigenen Annahmen darüber, wie sich die anderen verhalten. Eine Abo-App, die sich mit einer Bundle-App nicht ganz einig ist, was eine „Einheit" ist. Eine Bestands-App und eine Buchungs-App, die beide glauben, sie besäßen die Wahrheit über den Lagerbestand. Eine Preis-App, die über eine andere Preis-App gelegt wird, weil die erste einen bestimmten Fall nicht handhaben konnte.

Jede einzelne App ist für sich genommen in Ordnung. Der Stack als Ganzes kann zunehmend schwerer zu durchschauen werden, und jede neue App, die hinzugefügt wird, um die Einschränkung der letzten zu flicken, fügt einen weiteren Punkt hinzu, an dem sich die Teile still widersprechen können. An diesem Punkt steigt die Komplexität, statt zu sinken. Das ist meist der Moment, an dem es sich lohnt, einen Schritt zurückzutreten und zu fragen, ob ein zweckgebautes Teil tatsächlich einfacher wäre als fünf zusammengeschraubte Allzweck-Apps.

Bei Integrationen wird individuelle Arbeit oft wahrscheinlicher

ERP-Systeme, Lager- und Fulfillment-Plattformen, Lieferanten- oder Produktdaten-APIs, externer Bestand, ein CRM, ein Buchungs- oder Ticketingsystem, das komplett außerhalb von Shopify lebt: das sind die Systeme, bei denen individuelle Arbeit am wahrscheinlichsten irgendwann nötig wird. Das heißt nicht, dass es immer so ist. Viele von ihnen haben bereits solide, gut gepflegte Konnektoren, und ein guter kann durchaus die richtige Antwort sein. Individuelle Integrationsarbeit wird meist relevant, sobald die Art, wie zwei bestimmte Systeme interagieren müssen, nicht ganz zu dem passt, wofür irgendein vorhandener Konnektor gebaut wurde.

Den API-Call zu schreiben ist der leichte Teil. Fast jeder kann eine Anfrage senden und eine Antwort parsen. Das eigentliche Engineering-Problem ist alles drumherum.

Wem gehört welches Datenstück, wenn zwei Systeme nicht übereinstimmen. Was passiert, wenn ein Webhook zweimal auslöst, und ob das System so gebaut ist, dass das versehentliche Wiederholen desselben Ereignisses harmlos ist, statt still und leise eine Bestellung zu duplizieren oder Bestand doppelt abzuziehen (Entwickler nennen diese Eigenschaft Idempotenz). Was passiert, wenn ein Webhook gar nicht auslöst. Wie ein teilweiser Fehler mitten in einer Bestellsynchronisierung gehandhabt wird, wie widersprüchliche Updates aufgelöst werden, und wie man vermeidet, still und leise Bestandszahlen zu beschädigen, weil zwei Systeme dieselbe SKU im Abstand von dreißig Sekunden aktualisiert haben.

Das ist keine Kritik an Apps, die Integrationen handhaben. Viele davon machen das für gängige Fälle gut. Aber sobald ein Unternehmen Integrationsanforderungen hat, die spezifisch dafür sind, wie es tatsächlich arbeitet, muss jemand diese Zuverlässigkeitsschicht bewusst entwerfen. Diese Entwurfsarbeit ist echte individuelle Entwicklung, selbst wenn sehr wenig davon aussieht wie das Schreiben eines neuen Features.

Wenn aus einem Workaround ein Geschäftsrisiko wird

Ein improvisierter Workaround ist oft die richtige Entscheidung. Wenn etwas gelegentlich fehlschlägt und die Konsequenz eine kleine Unannehmlichkeit ist, die jemand manuell behebt, ist das ein vernünftiger Kompromiss, besonders in einer frühen Phase.

Das hört auf, vernünftig zu sein, sobald ein Fehler bedeutet, dass der falsche Preis berechnet wird, ein Artikel verkauft wird, der eigentlich nicht auf Lager ist, eine Bestellung zwischen zwei Systemen verloren geht, Kundendaten aus der Synchronisierung geraten, der Checkout für ein Kundensegment kaputtgeht, oder ein operativer Prozess still und leise zusammenbricht, weil niemand die Automatisierung im Auge behält, die ihn zusammengehalten hat. An diesem Punkt sind die eigentlichen Kosten des Workarounds nicht die Zeit, die seine Wartung kostet. Es ist das Risiko, das dahintersteckt, und Risiko ist tendenziell deutlich teurer, als die meisten es im Voraus einpreisen.

Eine CheckoutLabs-Entscheidungshilfe-Infografik mit dem Titel 'Brauchst du wirklich individuelle Entwicklung?', die durch vier Fragen führt: kann Shopify das nativ, löst es eine verlässliche App, kann es eine kleine Anpassung oder Flow-Automatisierung sauber lösen, und braucht die Geschäftslogik oder Integration eine eigene Lösung, endend mit der Faustregel, dass individuelle Entwicklung erst der Punkt sein sollte, den man erreicht, wenn die einfacheren Optionen nicht mehr zum Unternehmen passen.

Die eigentliche Frage

Es hilft, das weniger als starre technische Hierarchie zu betrachten und mehr als kurze Abfolge von Fragen, da jede Option wirklich für eine andere Art von Problem geeignet ist. Kann Shopify das schon nativ? Gibt es eine verlässliche, vorhandene App, die es löst? Reicht eine kleine Theme- oder Plattformerweiterung? Erfordert die zugrunde liegende Geschäftslogik tatsächlich eine individuelle App oder Integration? Eine spezialisiertere Architektur sollte erst dann ins Gespräch kommen, wenn diese einfacheren Optionen eindeutig nicht mehr passen. Diese Reihenfolge durchzugehen garantiert nicht jedes Mal die billigste Antwort, aber es ist ein vernünftiger Weg, die einfacheren Optionen auszuschließen, bevor man zur teuersten greift.

Die Frage, die es wert ist, gestellt zu werden, ist nicht „sollen wir das individuell bauen oder nicht." Sie ist einfacher: Was ist die am wenigsten komplizierte Lösung, die zuverlässig unterstützt, wie das Unternehmen tatsächlich arbeitet, ohne in einem Jahr still und leise mehr Probleme zu schaffen.

Wenn eine Standardlösung das Problem zuverlässig löst, ist es von Grund auf neu zu bauen meist Geldverschwendung. Wenn das Unternehmen ständig gegen die Plattform ankämpfen muss, um etwas zu tun, das es regelmäßig tun muss, ist das meist ein Zeichen, dass die einfacheren Optionen ausgeschöpft sind, und das Richtige zu bauen ist das, was tatsächlich langfristig Geld spart.

Meistens ist die Antwort nicht so dramatisch wie eines der beiden Extreme. Es geht darum, darauf zu achten, auf welcher Seite dieser Linie das Unternehmen tatsächlich steht.