Seit kurzem ist unsere zweite Shopware 6 App im Shopware Store verfügbar: die Bexio Integration für Shopware 6. In diesem Beitrag erläutere ich, was die Integration kann sowie unsere Learnings rund um die Shopware App Entwicklung.
Shopware 6 App vs. Shopware 6 Plugin
Zuerst eine technische, aber relevante Unterscheidung zwischen Shopware 6 Apps und Shopware 6 Plugins. Shopware 6 kann von uns als Entwickler einfach angepasst oder durch neue Funktionen ergänzt werden. Ganz allgemein heisst das in der Shopware Welt «Erweiterung». Nun gibt es drei Typen von Erweiterungen: Themes, Plugins und Apps.
Theme
Mit einem Theme steuern wir das Aussehen des Shops.
Plugin
Ein Plugin ist eine Erweiterung, die direkt auf dem Server läuft und dort installiert wird, wo auch Shopware 6 läuft.
App
Eine App benötigt immer einen externen Server, wo die ganze Logik «lebt», im Shopware 6 Shop wird nur der sogenannte Client Part installiert. Sämtliche Funktionen laufen über die Shopware API.
Die allermeisten Erweiterungen im Shopware Store sind Plugins, denn das war auch bis Ende 2020 der einzige Weg Erweiterungen zu ermöglichen. Der Vorteil ist, es kann so ziemlich alles angepasst und gesteuert werden. Dafür ist aber bei Updates von Shopware 6 selbst häufig auch Anpassungsaufwand nötig, damit das Plugin weiterhin korrekt funktioniert. Schlecht gewartete Plugins oder grundsätzliche Fehler können so den ganzen Shop für den Kunden unzugänglich machen.
Anders hingegen eine Shopware 6 App. Eine App verwendet die Shopware Backend API, die deutlich stabiler und viel weniger Änderungen erfährt, als die PHP Klassen von Shopware, die ein Shopware Plugin nutzt. Und, da alles über die API läuft, kann ein Fehler in einer Shopware 6 App grundsätzlich nicht den ganzen Zugang zum Shop verhindern. Ausserdem sind nur Shopware 6 Apps kompatibel mit Shops, die in der Shopware Cloud Lösung laufen (statt on-premises, d. h. auf einem eigenen Server).
Unsere Bexio Integration ist eine Shopware 6 App, wie auch schon unsere Planzer Integration.
Funktionsumfang der Bexio Shopware 6 Integration
Bexio ist vermutlich die beliebteste und meistverwendete Business Software für kleine Unternehmen in der Schweiz. Shopware selbst richtet sich als Shop System eher an mittelgrosse Händler, die etwa CHF 0.5 bis 100 Mio. Shopumsatz generieren. Häufig haben Firmen in dieser Grösse ein umfangreicheres ERP.
Weshalb braucht es dann unsere Bexio App?
Je nach Grösse des Unternehmens sind auch die Anforderungen an ein solches System ganz unterschiedlich. Für schlank aufgestellte Händler, die vorwiegend online verkaufen, kann Bexio eine elegante Lösung sein. Unsere Integration umfasst hauptsächlich zwei Punkte: Kontakte erstellen/aktualisieren und Rechnungen generieren.
Rechnungen erstellen
Damit kann die ganze Verbuchung von Bestellungen sowie die Rechnungserstellung völlig automatisiert werden. Unsere App ermöglicht, die Bezahlmethoden mit dem korrekten Bexio Buchhaltungskonto zu mappen. Ausserdem wird der Bezahlstatus synchronisiert. Das heisst, wenn eine neue Bestellung eintrifft in Shopware 6, erstellen wir eine Rechnung in Bexio. Wenn der Kunde mit Kreditkarte bezahlt, wird der Bezahlstatus der Rechnung in Bexio automatisch auf bezahlt gesetzt. Falls z.B. die Bezahlmethode Rechnung im Checkout ausgewählt wurde, bleibt die Rechnung offen.
Damit ist auch immer klar, was noch ausstehend ist und was bereits bezahlt wurde. Die Rechnung kann dann in Bexio mit einem Klick verschickt werden und dank dem Bexio Banking Abgleich, ist das Debitoren Management immer auf dem neusten Stand.
Das alles funktioniert ganz einfach und ohne Programmieraufwand oder -kenntnisse. Dazu haben wir hier eine Dokumentation verfasst.
Kontakte synchronisieren
Mit jeder neuen Bestellung wird geprüft, ob eine Firma oder ein Kontakt mit diesem Namen oder dieser E-Mail-Adresse bereits existiert. Falls ja, wird der Kontakt in Bexio aktualisiert, sofern sich die Daten geändert haben. Falls der Kontakt noch nicht existiert, erstellen wir ihn.
Extra: Angebote erstellen
Ein tolles Extra, das jedoch etwas Entwicklungsarbeit auf Seite des Shops benötigt, ist das automatisierte Erstellen von Angeboten basierend auf einem Formular. Das Formular muss speziell präpariert werden im Shop, sodass dann in Kombination mit unserer App direkt ein Angebot im Bexio erstellt werden kann. Dafür wird etwas Programmierung benötig.
Roadmap
Wir planen, die Integration basierend auf Kundenfeedback gezielt zu erweitern. Aktuell unterstützen wir z.B. noch keinen Sync des Lagerbestands oder auch Anpassungen im Bexio am Status einer Rechnung wird noch nicht zurück in Shopware 6 gespielt. Wenn dafür Interesse besteht, prüfen wir gerne eine entsprechende Erweiterung. Unsere erste Umsetzung sollte aber sicher jedem Händler, der diese beiden Systeme im Einsatz hat, bereits viel Zeit ersparen.
Ich bin gespannt auf Ihr Feedback. Hinterlassen Sie doch einen Kommentar, falls Sie Fragen oder Anregungen haben.
Learnings aus der Shopware 6 App Entwicklung
Da bei einer Shopware 6 App immer auch ein separater Server benötigt wird, in welchem die ganze Logik der Applikation läuft, ist das lokale Setup sowie das Debugging aufwändiger und mühsamer.
Der App Teil selbst, der in Shopware 6 installiert wird, ist sehr schlank und umfasst nur ganz wenige Codezeilen. Das vereinfacht den Qualitätskontrolleprozess, den wir als Extension Partner beim Hochladen einer Erweiterung in den Shopware Store durchlaufen müssen. Auch braucht die App selber deutlich weniger Updates, da die ganze Logik auf dem externen Appserver läuft.
Nur, wenn wir einen zusätzlichen Webhook benötigen oder z.B. einen neuen Button im Shopware 6 Backend ergänzen, gibt es ein Update, dass die Kunden einspielen müssen. Wenn aber in der Logik oder in der API von Bexio etwas angepasst wird, können wir das Update elegant direkt auf dem Appserver spielen und das Ganze ist up to date, ohne dass ein Kunde etwas davon mitbekommt.
In der App Entwicklung gibt es nach wie vor Einschränkungen, die vor dem Start der Entwicklung bewusst sein müssen. So können, Stand heute, keine kundenspezifischen Preise über eine App eingespielt werden, sofern der Kunde nicht Shopware Beyond (die grösste Shopware Lizenz) verwendet.
Falls Interesse besteht, gehen wir in einem nächsten Blogpost tiefer auf die Details ein, wie wir diese Challenges konkret gelöst haben und wie unsere CI/CD Pipelines dafür aufgebaut sind. Lassen Sie uns in den Kommentaren wissen, ob das für Sie von Vorteil wäre.
Kommentare (0)
Hinterlasse einen Kommentar