 Vielen Dank. Ja, hallo auch von mir. Ich bin Matthias, beziehungsweise Matze. Ich bin Senior Web-Entwickler bei einer Online-Marketing-Agentur. Genau, und nebenberuflich entwickel ich noch selber Plugins und um die entsprechend auch zu vertreiben, braucht es dann auch einen Shop oder einen Vertriebskanal. Dementsprechend kam ich dann dazu, da einen Shop zu erstellen. Ein kleiner Disclaimer noch am Anfang. Ich werde manchmal zwischen wir und ich switchen. Das liegt einfach darin begründet, dass ich den Shop damals nicht allein gestartet habe. Mittlerweile allerdings alleine bin. Genau, was brauche ich denn für einen Pluginshop? Natürlich neben dem Plugin beziehungsweise neben dem Produkt an sich. Brauche ich einen Shop Plugin auf meiner WordPress-Website, weil wenn ich Plugins für WordPress entwickle und dafür nicht WordPress dann verwendet für den Vertrieb, auch ein bisschen komisch. Dann brauche ich irgendwie einen Zahlungsmanagement. Natürlich ganz wichtig, das Ganze muss gesetzeskonform sein. Wir haben in Deutschland einige Gesetze, die man im E-Commerce-Bereich entsprechend beachten muss. Und ich möchte natürlich auch Updates bereitstellen für meine Plugins. Gerade wenn das dann eben kostenpflichtige Plugins sind, kann ich die ja nicht über das WordPress-Plugin-Repository hochladen, weil das funktioniert dann nur mit kostenlosen Plugins. Genau, als Shop Plugin erst mal. Es gibt verschiedene Lösungen, die man da verwenden kann. Wir kann ziemlich schnell auf die Idee WordPress zu nutzen. Ganz einfach aus den Gründen, es ist der Platz schlechthin, es ist sehr gut unterstützt und es bietet eine entsprechende Erweiterbarkeit. Zusätzlich dann, apropos Erweiterbarkeit, das WordPress-Software addern, das ist ein kostenpflichtiges Plugin von WordPress selber. Da kann man dann eben bei dem Produkt selber das Produkt als Software tatsächlich dann labeln. Dementsprechend bekommt man die Unterstützung für das Herunterladen von den Produkten und so weiter. Beim Zahlungsmanagement gibt es verschiedene Varianten. Natürlich, ich kann es zum einen kostenlos anbieten. Dann ist es aber im Endeffekt auch nur ein Download. Dementsprechend für den Vertrieb vielleicht ein bisschen schlecht. Ich habe die Möglichkeit, eine Einmalzahlung anzubieten, dass man einmal zahlt, dann bekommt man das Plugin, bekommt Updates, muss aber nie wieder zahlen, so gesehene Lifetime-Lizenz, dann noch so ähnlich, eine Einmalzahlung von Support und Updates, dass man praktisch sagt, okay, du kannst ja einmal zahlen, dafür bekommst du das Plugin und ein Jahr Support und Updates. Oder man macht das überwiederkehrende Zahlung über ein Abonnement. Wir haben es dann relativ schnell für das letzte entschieden, also für das Abonnement, einfach weil es für den Kunden am Ende eine geringere Hürde ist, muss noch einmal aktiv werden, hat das Produkt dann, genau dadurch ist die Conversion Rate, einfach höher als bei einer manuellen Zahlung, insbesondere dann in den Folgejahren, weil eben man muss nichts mehr tun. Als Entwickler natürlich sehr angenehm, es sind einfach regelmäßige Einnahmen. Natürlich gibt es dann auch immer wieder Kunden, die dann eben das Produkt nicht mehr benötigen, die dann nicht mehr möchten, und dementsprechend die Abonnement kündigen. Aber grundsätzlich sind es einfach regelmäßige Einnahmen. Und es ist so gesehen automatisiert und ohne zusätzlichen Aufwand möglich. Wir haben das bei uns umgesetzt über das Plugin WooCommerce Subscriptions. Das kann dann eben bei jedem Produkt entsprechend hinterlegt werden, oder als Kosten läuft das irgendwann mal ab. Genau, und verschiedene Dinge. Da ist jetzt unten zum Beispiel noch die Kombination mit dem WooCommerce Software Addon. Da ist dann eben der Download hinterlegt von der Software. Zur gesetzeskonformen Umsetzung. Niemand mag Abmahnungen. Hoffentlich zumindest, also wenn ihr das mögt, gibt es dafür bestimmt auch Lösungen. Aber ich mag sie nicht. Genau, dementsprechend ist das Problem. WooCommerce ist out of the box so nicht gesetzeskonform einsetzbar. Weil einfach durch die aktuelle Gesetzgebung ist es einfach so, dass es besondere Anforderungen an Design und Funktionalität eines Online-Shops in Deutschland hat. So was wie es muss eine klare Button-Beschriftung beim Kauf geben. Bereitstellung von AGB und Widerrufsrecht. Und im Falle von Downloads sinnvollerweise noch die Möglichkeit, dass man eine direkte Vertragsausführung bestätigen kann. Einfach aus dem Grund, dass man das ab dem Moment, an dem man den Vertrag direkt ausführt, das Widerrufsrecht erlischt. Sprich, sonst kann jemand das Plug-in kaufen, herunterladen und dann von seinem Widerrufsrecht Gebrauch machen. Und dann muss man ihm das Geld dafür widergeben und dann hat er am Ende ein kostenloses Plug-in bekommen. Im deutschen Raum, oder für den deutschen Raum, gibt es da eigentlich zwei große Plug-in-Lösungen. Das ist einmal German Market und einmal Germanized. Wir haben uns jetzt in dem Fall für German Market entschieden, aber das ist mehr so eine Glaubensfrage. Genau, dann als nächstes Bereitstellung von Updates. Da gibt es glücklicherweise eine Open-Source-Lösung, die für uns sehr gut funktioniert hat. Das ist nämlich der WP Update-Server von Janis Elsts. Ich hoffe, ich habe den Namen jetzt richtig ausgesprochen, ist öffentlich auf GitHub verfügbar und sowohl für Plugins als auch für Teams verwendbar. Hat er einfach den Vorteil, dass es eine sehr schnelle Bereitstellung eines Update-Services ist, also man muss das einmal auch setzen, kurz ein bisschen die Konfiguration ändern und dann funktioniert der Out of the Box. Das ist sehr praktisch. Man könnte die Dokumentation da auf jeden Fall noch verbessern, wie es so oft ist. Aber grundsätzlich ist es ein sehr gutes kostenloses Produkt. Genau. Apropos Verbesserungswürdig, wie Simon schon erwähnt hat, es gab auch ein paar Hürden, die wir hatten. Wir haben die Implementierung des Update-Systems ins Plugin, das Plugin tatsächlich dann auch die Fähigkeit bekommt, Updates durchführen zu können. Da gibt es auch von Janis Elsts den Plugin Update Checker. Zum einen, der ist auch öffentlich verfügbar. Wir haben uns aber dagegen entschieden, den zu verwenden, aus dem Grund, dass der aktuell keine Unterstützung eines Lizenzsystems enthält, dass wir allerdings in unserem, in dem Wocomare Software-Edtern verwendet haben, gerade auch um die Lizenz zu prüfen, ob das ein aktuelles Abonnement ist, das der Kunde benutzt. Das hätten wir separat implementieren müssen. Da haben wir dann, oder deshalb haben wir dann gesagt, okay, wir implementieren einfach das gesamte Update-System selber, weil wir einfach dadurch über den Code mehr Kontrolle haben und dementsprechend auch genau das auf uns zuschneiden können. Wir können für uns das Lizenzsystem einfacher implementieren, genauso wie die Implementierung der Update-Suche. Da habe ich dann noch kurz für die Entwickler unter uns den Hook angegeben, über den das funktioniert. Man muss zum einen die Update-Suche implementieren, sprich, dass bei der normalen WordPress Update-Suche auch das eigene Update-System durchsucht wird. Dann müssen die Plug-in-Infos implementiert werden, also die, beispielsweise angezeigt werden, wenn man Informationen über das Plug-in im Backend in der Plug-in-Liste anschaut. Und dann auch ganz wichtig, man muss das Plug-in-Verzeichnis nach dem Download nochmal herunterladen, eh, nach dem Download nochmal umbenennen, so rum. Genau. Da schöne Anekdote, jetzt am vergangenen Wochenende ist genau das letzte System bei mir kaputt gegangen. Das hat fünf Jahre lang wunderbar funktioniert und plötzlich fehlt an irgendeiner Stelle ein Slash. Dadurch hat dann das WordPress-System in den heruntergeladenen Dateien kein Plug-in mehr gefunden. Um dementsprechend gesagt, okay, ist kein Plug-in gefunden worden, also mache ich das Update wieder rückgängig, beziehungsweise ich mache überhaupt keinen Upgrade. Das ist natürlich dann wiederum ein Risiko, wenn man das System selber baut. Das habe ich aber auch draus gelernt. Dementsprechend funktioniert das jetzt und passiert mir hoffentlich nicht so schnell wieder. Als Nächstes, als nächste Hürde müssen wir auch das Lizenzsystem in Plug-in implementieren. Beides sind so Sachen so, man hat das Plug-in, das Plug-in funktioniert wunderbar, man möchte es einfach jetzt veröffentlichen, aber es nimmt tatsächlich mehr Zeit als man gerne hätte. Denn auch die einzelnen Funktionen, die man da implementieren muss, erstmal muss man schauen, okay, ich muss das die Lizenz aktivieren können bei dem Plug-in oder im Plug-in, in der Oberfläche, in der Plug-in Oberfläche. Sinnvollerweise kann ich die Lizenz da auch wieder deaktivieren. Das hatten wir am Anfang nicht drin. Das habe ich dann sehr schnell nachgezogen, weil da einfach der Supportaufwand am Ende höher ist, als wenn man das nicht implementiert hat. Im Fall sinnvoll ist eine Lizenzprüfung bzw. eine regelmäßige Lizenzprüfung, um dem Kunden auch direkt in seinem Becken schon zu zeigen, okay, dann Lizenz ist abgelaufen, aktualisiert die doch, wenn z.B. er das Abonnement beendet hat, aber das Plug-in noch installiert ist. Genauso eben vor Plug-in-Updates, dass da einmal die Lizenz tatsächlich nochmal geprüft wird, um sicherstellen zu können, dass der Kunde auch zum Download berechtigt ist. Genau, ebenfalls der Hinweis bei abgelaufener Lizenz, einfach um da nochmal das Engagement zu erhöhen und die Conversion Rate nach oben zu treiben, dass man den Kunden eventuell doch nochmal zurück gewinnt. Bei uns war es dann noch so, am Anfang hatten wir das Plug-in oder das erste Plug-in, das sehr auf den deutschen Markt zugeschnitten war, hatten wir nur eine deutsche Webseite und dementsprechend auch nur einen Shop, einen Lizenz-Server. Irgendwann habe ich das dann aber erweitert und dementsprechend lauchten wir dann auch eine Implementierung für den deutschen und den englischen Lizenz-Server. Bei mir die Implementierung ist aktuell, das sind zwei Websites innerhalb einer Multisite, einmal für Deutsch und einmal für Englisch, die aber nicht über Polylang oder Multilingual Press oder ähnliches praktisch verknüpft sind, sprich muss die Arbeit tatsächlich zweimal machen. Weitere Hürden, die wir so hatten oder die man daraus entnehmen kann, sind so die initialen Kosten zum einen. Also gerade die WooCommerce-Plugins oder auch German Market oder auch die Pro-Version von Germanize stellen einfach Kosten dar, die man am Anfang hat, wo man aber noch gar nicht unbedingt weiß, wie erfolgreich wird das Produkt am Ende sein. Dann ein Problem war die deutsche Übersetzung in den WooCommerce-Plugins, die war teilweise nämlich nicht vorhanden. Gut als Polyglot war das jetzt eher eine Fleißaufgabe, die dann zu übersetzen. Dennoch ist das auch was, das kam sehr unerwartet. Dann am Anfang hatten wir Storefront als Parent-Theme in Verwendung und hatten darauf ein Child-Theme aufgebaut. Das hat nicht viel Spaß gemacht. Der initiale Aufbau war praktisch, weil es einfach schnell ging. Wir konnten schnell einfach eine Website veröffentlichen. Aber Storefront ist uns an mehreren Updates, tatsächlich hat das immer wieder das Child-Theme kaputt gemacht, sodass wir dann, als wir mal ein bisschen Luft dann hatten, tatsächlich auf ein eigenes Theme umgestellt haben und mit dem auch wesentlich glücklicher sind, es ist wesentlich stabiler. In meinem Fall haben wir PayPal als Zahlungsmethode hinterlegt. Da sind die E-Mails sehr unverständlich. Dass dann so, wenn das Profil gelöscht laut betrefft, heißt, die Abonnementzahlung wurde storniert. Stornierung heißt für mich immer, okay, irgendwas, was ich bekommen habe, ist jetzt wieder weg. Und das aber nicht so im Endeffekt heißt, dass nur jemand hat seinen Abonnement einfach an den Punkt beendet und wird dann in Zukunft werden darüber keine Zahlungen mehr ausgegeben. Genauso heißt es dann allerdings, wenn jemand das abonniert, ist es eine neue automatische Zahlung, das wieder konträr ist zu einer Abonnementzahlung, die jetzt in der E-Mail davor erwähnt wurde. PayPal dasselbe. Also, es sind unterschiedliche Begriffe für dasselbe. Das ist alles ein bisschen umständlich. Genau, weitere Themen, die da aufkommen können, sind zum einen eben, ich habe schon gerade erwähnt, PayPal als aktuellen Zahlungsanbieter, da noch weitere Zahlungsanbieter einfach zu hinterlegen. Die Folie ist jetzt, stand jetzt veraltet, dass ich Anfang der Woche tatsächlich Stripe via Payment Plugins for Stripe Vocumers implementiert habe. Und zwar mit Apple Pay, Google Pay und eben Stripe selbst. Einfach, um da auch noch die Abschlussrate erhöhen zu können. Insbesondere daher, weil PayPal im amerikanischen Bereich nicht so gern verwendet wird, dass man da tatsächlich eher zu Stripe gegriffen wird oder auch über Apple Pay und Google Pay. Das mag ich selber auch viel lieber. Dementsprechend ist es jetzt auch drin. Ein Thema Mehrsprachigkeit, ich habe es schon erwähnt. Wir verwenden aktuell den Multicite Language Switcher. Im Endeffekt verknüpft er immer nur zwei einzelne Seiten, ist aber eben dafür kostenlos. Das war eben dadurch, dass wir durch die anderen Plugins am Anfang schon relativ hohe Lizenzkosten hatten, haben wir uns dann dafür entschieden. Gibt es aber eben auch die bereits genannten Alternativen, Multilingual Press, Polylang pro WPML und so weiter. Auch da ist für mich dann auf jeden Fall noch eine Baustelle. Ich möchte das auf jeden Fall noch ein bisschen schöner haben, auch dass ich vielleicht am Ende nur noch einen Shop habe und die Konfiguration nur einmal machen muss. Genau, das ist dann wesentlich angenehmer. Dann für den Update-Server gibt es super Update-Statistiken, auch von jenis erstes wieder, auch kostenlos verfügbar. Da kann man je nachdem, wie man das in seinem Plugin dann implementiert, interessante Statistiken rausziehen, gerade über die aktuell aktiven Versionen, die von dem eigenen Plugin eingesetzt werden, aber auch dann so Sachen wie Wucomers-Versionen, die Wucomers-Wordpress-Versionen verwenden, die Benutzer oder auch welche PHP-Version und kann dann darüber eben auch Dinge schließen, wie kann ich jetzt schon neuere Funktionen von neueren PHP-Versionen etc. verwenden oder von neueren Wordpress-Versionen und kann dann entsprechend auch ältere Wordpress-Versionen nicht mehr zwingend unterstützen. Genau, das war's von mir. Vielen Dank für die Aufmerksamkeit.