„Wir stellen keine Plugins mehr in den Store – lohnt sich nicht – zu viel Support – zu viele Schnorrer die Testcode kopieren“. Oft von Agenturen und Entwicklern gehört. Doch keiner der genannten Gründe hat mich vom Store abgehalten. Warum ich mich gegen den Store entschieden habe, lest Ihr hoffentlich jetzt…
Shopware Store
Mit Hilfe des Shopware Stores können Shopware Nutzer einfach Ihren bestehenden Shop mit Plugins erweitern. Einer der Gründe warum Shopware so erfolgreich wurde. Erweiterbarkeit ohne einen Programmierer an der Hand haben zu müssen ist gerade für kleine Unternehmen wichtig.
Grundsätzlich muss der Anbieter/Entwickler des Plugins 25% des Nettoverkaufspreises an Shopware abtreten. Finde ich nicht viel und auch nicht wenig. Sicherlich ist der Traffic höher als auf der eigenen Webseite/Shop im Eigenvertrieb und die CR ist sicher auch wesentlich besser. Allerdings muss man auch damit rechnen, dass die Nutzer nur die Testversion herunterladen und sich eventuell Code „stibitzen“.
Review Prozess
Jetzt wird es interessant. Der Review Prozess wurde im Laufe der Zeit immer weiter optimiert. Was erstmal gut klingt, mehr Standards, bessere Wartbarkeit, weniger Fehler -> https://docs.shopware.com/de/plugin-standard-community-store
Man erstellt also im Herstellerbereich des Accounts ein Plugin und trägt alle erforderlichen Daten ein (Beschreibung, Bilder etc.) – danach wird das Plugin als .zip hochgeladen und der erste automatisierte Test läuft durch. Danach folgt der manuelle Review Prozess durch einen Mitarbeiter von Shopware.
MihoReviewTranslation
Vor nicht allzu langer Zeit habe ich ein Plugin für einen Kunden geschrieben. Ich fand die Idee ganz gut und habe mich darauf geeinigt das Plugin vertreiben zu dürfen und im Gegenzug musste der Kunde nur 50% der Entwicklungskosten tragen.
Beim Plugin handelt es sich um eine API Anbindung an Deepl, einem Übersetzungsdienstleister, bei dem Bewertungen beim erstellen oder per CLI in X beliebige Sprachen übersetzt werden.
1. Kontakt – 17 Juni
„Leider kann ich das Plugin noch nicht freigeben. Grund hierfür ist, dass einige Punkte aus dem Quality-Guide für Store-Plugins nicht umgesetzt wurden.“
Ja – da habe ich zu viel, zu schnell gewollt. Ich habe einfach vergessen die Beschreibung zu setzen – dumm und absolut mein Fehler.
2. Kontakt – 5 August
Nach einigem hin und her wurde das Plugin mit den neuen Meta Daten und API Button zum prüfen der API Verbindung zur manuellen Prüfung freigegeben.
3. Kontakt – 8 August
Showpare „Die Implementierung des Test-Buttons funktioniert ja so weit, jedoch wird das Ergebnis in das falsche Log geschrieben. Wir erwarten, dass die Fehler/Ergebnisse in den System-Log von Shopware geschrieben werden. Ich hab Dir hierfür einmal einen Screenshot von unserem Paypal-Plugin gemacht. Anhand des Screenshots solltest Du erkennen können, wo genau die Fehler geloggt werden sollen.“
Und hier wurde ich das erste mal stutzig – denn die Implementierung hatte ich aus diesem Plugin übernommen.
Micha: „Im Paypal Plugin nutzt Ihr aber auch den Pluginlogger (https://github.com/shopwareLabs/SwagPaymentPayPalUnified/blob/783bacfa1ae3d58636e20c65d3a3f0de0cfebdf4/Resources/services/services.xml#L119) – ich denke nicht das es in den Core Log soll. Habe jetzt noch den technischen Pluginnamen vorne angeführt: …“
Shopware: „das Paypal-Plugin ist kein gutes Beispiel, da das Plugin vor Februar 2019 released wurde und somit nicht den Quality Standards für Store Plugins unterlag.“
Was allerdings nicht mit dem ganzen zu tun hatte, denn auch das neue PP Plugin und alle anderen nutzen den pluginlogger Service.
Ich habe es dann aber aufgegeben zu diskutieren und das Plugin kam in die erneute Prüfung.
4. Kontakt – 6 September
Shopware „ich möchte ganz gerne Dein Plugin testen. Hierzu benötige ich allerdings einen API-Key von Deepl.“
Sure – zahle ich nochmal 10€ pro Monat – war ja auch zu Anfang nicht klar das ihr das benötigt (3 Monate nach initialem Push).
5. Kontakt – 9 September
Shopware „
Beim testen sind mir folgende Dinge aufgefallen:
- Beim Löschen einer Bewertung im original Bewertungs-Modul werden die dazugehörigen Einträge in s_plugin_miho_vote_translation nicht mitgelöscht
- Bei einer Neuinstallation werden alle Übersetzungen gelöscht: https://docs.shopware.com/de/plugin-standard-community-store#aenderungen-der-datenbank-und-datensaetze-duerfen-bei-neu-installieren-nicht-entfernt-werden„
Mein Fehler – habe ich klar vergessen und auch nicht als wichtig angesehen, aber natürlich ergänzt, da es Sinn macht. Allerdings war ich dann schon gereizt, da wieder auf die QA-Guidlines verwiesen wurde, die zuvor nicht richtig interpretiert wurden und Fehler angezeigt wurden, wo keine waren. Außerdem wurde mit einer finalen Prüfung gedroht :
Shopware „Wir haben das Plugin nun insgesamt 3 mal gesichtet und abgelehnt. Wir geben Dir nun eine letzte Chance. Sollte beim nächsten Test wieder Fehler auftauchen oder Punkte im Quality Guide missachtet worden sein so bleibt und leider nichts anderes übrig, als das Plugin komplett abzulehnen.“
Meine Antwort darauf war bereits entnervt.
Micha „Hi XXXXX, no offense, aber die letzte Kontrolle hatte keinerlei effektive Korrektur oder Fehler in meinem Plugin hervorgebracht. Du hast auf einen Punkt verwiesen, der bereits so im Plugin umgesetzt war (der Pluginlogger war genau wie in der Doku umgesetzt). Darauf habe ich auch hingewiesen, aber du hast es gekonnt ignoriert und einfach einen Link zur Doku geschickt. Dies war 1 zu 1 so umgesetzt!“
Shopware: „Danke für das Feedback. Ich möchte mit Dir gerne mal über den Quality Guideline für Store Plugins sprechen und Missverständnisse aus dem Weg räumen. Leider kann ich Dich unter der bei uns hinterlegten Rufnummer XXXXXX nicht erreichen.“
Bis zum Schluss wurde kein Fehler bei der ersten Korrektur eingestanden, was ich persönlich echt traurig fand. Fehler passieren, völlig menschlich, aber das war schon dreist.
Danach bin ich nochmal alle möglichen Szenarien durchgegangen und habe 3-4 Verbesserungen implementiert. Kurzes hin und her und dann erneut zur Prüfung…
6 Kontakt – 16. September
Shopware „Der erste Punkt ist, dass in der plugin.xml nicht die Selbe minversion angegeben ist wie in deinem Account. Der 2. Punkt ist, dass alles sauber abgespeichert wird. In den Tabellen, dem Plugin etc. Ich es jedoch einfach nicht hin bekomme, dass die Übersetzung im Frontend ausgespielt wird. Kann sein, dass ich hier einfach etwas übersehe. Auf Jedenfall benötige ich deine Hilfe.“
Versionsfehler habe ich gleich gefixt (war nicht im Code sondern im Store Backend noch falsch hinterlegt. Danach habe ich nochmal erklärt wie das ganze anlegen und konfigurieren funktioniert.
7 Kontakt – 23. September
Shopware „Leider bekomme ich das Plugin immer noch nicht zum laufen. Selbst nicht mit der neuen Version. Anbei sende ich dir die Einstellungen per Video und SQL Dump.“
Micha „ich habe gerade nochmal gegengeprüft. Wenn die Sprache im italienischen Shop Deutsch ist, gibt Deepl einfach die Sprache zurück oder einen Fehler. Sollte mit dem Update gefixt sein.“
Deepl hat hier das komische Verhalten bei einer Übersetzung von DE in DE einfach einen Fehler zu schmeißen. Seitdem ist die automatische Erkennung beim übersetzen aktiv.
8 Kontakt – 1. Oktober
Shopware „Ich habe das Plugin für einen Nachtest eingetragen. Da leider krankheitsbedingt weder Sven noch Mario im Haus sind, wird dies leider frühestens nächste Woche etwas.“
Grundsätzlich kein Problem, aber ich ahnte schlimmes…
9 Kontakt – 16. Oktober
Shopware „nun funktioniert das Plugin gar nicht mehr. Zu dem gibt es auch einen (neuen?) Fehler beim Testen der API. Den Testvorgang findest Du im angehangenen Video.“
Problem war nun, dass wieder ein anderer Tester das Plugin angeschaut hat und es wurden wieder die einfachsten Konfigurationen nicht richtig gewählt. Man kann pro Subshop in einem Dropdown X Sprachen auswählen – die Testen haben hier mehrfach im deutschen Shop Deutsch gewählt – dann wird halt auch nichts übersetzt…
21. Oktober – Aufgabe
Done. Fini. Acabado. Finito. Klaar. Zakończone. Готово.
Ich weiß es war sicher für beide Parteien eine Odyssey und ich habe sicher dazu beigetragen, weil ich die QA Guidlines nicht von Anfang an komplett durchgelesen habe. Aaaaaber -Shopware Mitarbeiter könnten zum einen Ihre Fehler einfach zugeben, nur einen Prüfer pro Plugin stellen (doppeltes erklären fällt weg), weniger mit komplettem Ausschluss drohen (Ihr verdient damit euer Geld) und zu guter letzt mal das ganze in Relation sehen. Soweit ich das ganze von außen betrachte, haben einige Plugins (z.B. EasyCoupon) jede Woche ein Update mit X Bugfixes. Diese Plugins sind kritisch (Gutscheine) und kosten hunderte von Euros. Wie schaffen es diese Plugins durch die QA von Shopware, aber ein kleines Übersetzungsplugin für 19,99€ muss sich 3 Monate durchbeißen ohne auch nur einmal im Store zu sein.
Scheinbar haben manche Hersteller eine höhere Prio oder sind zu komplex das die QA diese ausreichend prüft. Denn beim besagten Plugin bestand über Monate ein Bug das Gutscheine für den falschen Subshop gespeichert wurden. Eventuell sollte ich auch einfach ein Basis Plugin bauen, dass dann mit einem anderen Plugin erweitern und noch ein Plugin verkaufen in dem ich die Resourcen dann in einer API zur Verfügung stelle…
Nein – ich werde mich nun vom Store verabschieden und einfach aus Lust an der Freude einen Shopware 6 Store aufsetzen in dem ich die Plugins verkaufe oder kostenlos in einem Repository zur Verfügung stelle?
Ich weiß auch, dass ich ein kleiner Fisch für Shopware und dessen Store bin, aber vielleicht überdenkt man nochmal das ein oder andere Prozedere. Nicht die Codequalität, aber die Kommunikation, deren Dauer und andere Prozesse der QA.
Jemand Interesse an dem Deepl Plugin? 😉
Hallo,
spannende Geschichte. Ich wäre an dem Plugin interessiert.
Lässt sich das auch mit Google Translate verbinden?
Grüsse, Dieter Schnabel
Joa,
so ähnlich habe ich das auch schon erlebt. Die Kriterien hier laufen dann durchaus auch mal „aus dem Ruder“.
Nach großen Erwartungen zum Beginn halten sich die Einnahme mittlerweile in Grenzen – positiv ausgedrückt.
Ehrlichgesagt verstehe ich den Shopware Support hier komplett 🙁
Wenn die einfachsten Dinge nicht funktionieren und nicht eintragen sind, wird das halt irgendwann Dünn mit dem Eis… Nunja Fehler wie DE zu DE müssen halt abgefangen werden, der Enduser ist halt meistens eine Kartoffel… Hoffe das Ihr trotzdem andersweitig Glücklich werdet 🙂