WooCommerce vs. meine Anforderungen

Nach dem ernüchternden Vergleich der gesetzlichen Anforderungen und dem, was WooCommerce in der Grundversion mitbringt, erscheint die Prüfung der Erfüllung meiner individuellen Anforderungen wie jammern auf hohem Niveau. Schauen wir doch mal, wie es WooCommerce mit der Kundenverwaltung, dem optionalem Versand von Software gemäß Kundenwunsch, PDF-Anhängen an Bestellbestätigungen und zusätzlichen Eingabefeldern in einem mehrstufig darzustellenden Bestellformular hält.

Tatsächlich brauchen wir da gar nicht viel zu schauen, sondern war der Teaser schon eine kurze Preview auf die ewig lange Auflistung der in der Grundversion abstinenten Funktionen. Da es sehr viel zu tun gibt, beschränke ich mich auf eine Auflistung der durch Programmierung oder Plugins zu realisierenden Features. Jedem einzelnen Listenpunkt dürfte wohl ein eigener Beitrag folgen…

Rechnungen

Rechnungen sind absent. Es gibt lediglich Bestellungen. Inzwischen habe ich eruiert: Es gibt eine API zur automatischen Validierung von UstId-Nummern. Demnach gibt es keine Bestellungen, die einer manuellen Überprüfung bedürfen, bevor eine Rechnung generiert werden könnte. Folglich sehe ich nichts, was dagegen sprechen würde, technisch als Rechnung zu behandeln, was in WooCommerce als Bestellung verwaltet wird.

Erfüllte Anforderungen

  • Rechnungsnummer
  • Bestelldatum = Rechnungsdatum
  • Platz für rein interne Notizen
  • Zuordnung zu Kunden
    Dass kein für den Kunden sicht- und nutzbares Account erstellt wird, wenn dieser es nicht wünscht, ist selbstverständlich. Dass aber nicht einmal intern ein Kunde mit Kundennummer angelegt wird, ist der Schlichtheit von WordPress und der Kopplung an dessen Benutzerverwaltung geschuldet. Wenn mir nicht noch ein driftiger Grund einfallen sollte, mich dem Konzept nicht anzuschließen, wird es zukünftig keine Kunden mehr geben. Es gibt Rechnungen und es gibt Benutzer (die die Rolle Kunde haben können). Rechnungen können Benutzern zugeordnet sein, müssen es aber nicht und umgekehrt genauso.
  • Lieferanschrift
  • Vermerke für Stornorechnungen
    Die Möglichkeit für Vermerke besteht – fehlen nur noch die Rechnungen.
  • Die Generierung von Bestellungen ist sehr lobenswert gelöst. Die selbstverständliche durch Kunden ausgelöste ist ebenso vorhanden wie das Anlegen im Admin-Menü und selbst bei Stornierungen werden Teilbeträge berücksichtigt. Manko wiederum: Die Rechnungsgenerierung.

Teilweise erfüllt

  • Status
    offen und bezahlt gibt es mehr oder weniger. Es fehlen:

    • Teilzahlung erfolgt
    • storniert
    • 1-3 Erinnerungen und Mahnungen
    • Inkasso
  • Kundendaten
    Vorhanden sind der Name, die E-Mail-Adresse, Firma (optional), Straße und Zusatz (optional), PLZ, Ort und das Land. Nicht an die Rechnung, sondern den Kunden gekoppelt hatte ich die optionalen Angaben Telefon und Website. Während letztere Angabemöglichkeit fehlt, ist die Telefonnummer ein Pflichtfeld. Beides ist zu ändern und die Daten dann an die Bestellung zu koppeln, aber nur im Admin-Menü ersichtlich und nicht in die Rechnung einzufügen.
  • Bundesstaat, Bundesland, Kanton etc. werden für Kunden aus Deutschland, Österreich und der Schweiz nicht benötigt. Die Angabemöglichkeit ist in Abhängigkeit von der Auswahl des Landes auszublenden.
  • Zuordnung zu Leistungen
    WooCommerce sieht zwar vor, Produkte als Dienstleistung zu deklarieren. Wenn ich jedoch ein Produkt namens 1 Stunde Programmierarbeiten für 45,- EUR netto generiere und davon 1,5 Stück in Rechnung stelle, wissen weder der Kunde, noch das Finanzamt und auch ich nach 3 Tagen nicht mehr, was genau geleistet wurde. Wie schon im alten System sind die Produkte daher aufzudröseln in für jeden im „Shop“ bestellbare Produkte einerseits und individuelle Leistungen wie 1 Stunde WordPress-Plugin-Entwicklung für Werbe-Markt.de. Letztere sind zwar in der Datenbank vorhanden und treten als Rechnungsposten in Erscheinung, sollten mir aber noch nicht einmal im Admin-Menü als Produkte angezeigt werden.
    Zudem sind sie optional an Tasks gekoppelt, damit Details zur Leistungserbringung nachvollziehbar (Status, Leistungsdatum, Mitarbeiter) sind.
  • Payment-Gateway-Benachrichtigungen
    PayPal ist vorhanden, wobei ich mir über dessen Einsatz noch unschlüssig bin. Ich halte es für teuer, langsam und unsicher. In jedem Fall fehlt:

    • SOFORT Überweisung

    Umfangreiche Debugging-Informationen benötige ich hierzu nicht. Mit SOFORT Überweisung gab es noch nie technische Probleme und die IPN für PayPal sollte als annähernd native Schnittstelle ausgereift genug sein.

  • Anpassung des Status
    Dadurch, dass nur der Status zu ändern ist, aber keine Zahlungen verbucht werden, fehlt praktisch jeder der genannten Punkte:

    • Benachrichtigung durch eine Zahlungsschnittstelle
    • automatischer Versand von Erinnerungen oder Mahnungen
    • manuelle Zahlungseingangsbestätigung im Admin-Menü
    • Storno im Admin-Menü
    • Übermittlung der Daten an die Inkassoagentur
  • Events bei vollständiger Begleichung
    Die automatisierte Werbekontingent-Freischaltung ist zunächst verzichtbar. Die Generierung von Tasks bei individuellen Leistungen nach Vorkasse programmiere ich in Zusammenhang mit dem Task-Manager. Bereits vorhanden ist die

    • Generierung des Lizenzschlüssels und Bereitstellung des Downloads

    Wie schon beim vorangegangenen Punkt Status-Änderung ist selbige bei Verbuchung einer Zahlung zu triggern.

  • E-Mail-Versand
    Nur die relevantesten E-Mails werden versandt:

    • Bestellbestätigungen müssen PDF-Rechnung im Widerrufsbelehrung im Anhang haben. Textbausteine sollten in Abhängigkeit vom Produkt oder Datum der Leistungserbringung automatisch in die E-Mails eingefügt werden.
    • Bestätigung der vollständigen Zahlung
    • Bei Stornorechnungen wurde schon weit gedacht, wobei ich die E-Mails noch prüfen muss:
      • Bestätigung der Rücküberweisung
      • Bestätigung der Entbindung von Zahlungsverpflichtung oder
      • Bitte um Mitteilung der Bankdaten für Rücküberweisung

    Es fehlen gänzlich:

    • Zahlungserinnerungen und Mahnungen unter Berücksichtigung der Optionen Rücktritt und Inkasso fehlen gänzlich – ebenso die Angabe der Optionen im Admin-Menü oder automatische Zuweisung.
    • Bestätigung einer Teilzahlung und bitte um Begleichung des Restbetrages

Zu erledigen

  • Optionen zum automatischen Versand von Erinnerungen:
    • keine Erinnerung senden
    • Erinnerungen senden mit
      • Option, vom Kauf zurückzutreten
      • Verweis auf das Inkasso
  • Leistungsdatum
    Das ist bei den gesetzlichen Anforderungen untergegangen, weil es schlichtweg keine Anforderungen an die Bestandteile einer nicht vorhandenen Rechnung geben kann. Bei Vorleistung ist das Datum der Leistungserbringung bekannt und wird taggenau vermerkt, z.B. bei der Rechnungserstellung aus dem Task-System heraus. Andernfalls ist das Leistungsdatum der aktuelle Monat bzw. ab 25. der Folgemonat.
  • Optionale Angabe einer Steuernummer für Kunden außerhalb Deutschlands und der Schweiz
  • Auswahl, ob die Bestellung privaten oder gewerblichen Zwecken dient
  • Zuordnung zu einem ggf. der Bestellung vorausgegangenen Angebot
  • Erinnerungs- und Mahnungsverlauf
    Interne Bemerkungen reichen hierfür nicht aus, da die Zeitangaben ohnehin gespeichert werden müssen. Denkbar wäre aber, intern die Zeitangaben zu speichern und im Admin-Menü automatisch generierte Notizen anzuzeigen.
  • Zahlungsverlauf fehlt vollkommen:
    • Betrag
    • Zeitstempel
    • Zahlart
    • Rechnungsstatus zu diesem Zeitpunkt

Schnittstellen

Es folgen die Module, die auf innerhalb von WooCommerce verwaltete Daten zugreifen.

Suchfunktion

Für die von mir benötigte allgemeine Suche muss mir WooCommerce Kundendaten, d.h. dann Bestelldaten (was früher Kundendaten und Rechnungsdaten separiert waren) liefern. Da Lizenzen nur noch optional auch Kunden zugeordnet sind, müssen die bestellten Produkte schnell ersichtlich sein.

Zudem benötige ich im Suchergebnis mindestens die ersten beiden der 3 Links

  • Rechnung
  • Angebot
  • Download

Als Parameter wird dann nicht mehr die Kundennummer, sondern eine Rechnungsnummer übergeben.

Task-Manager

Mittels Autovervollständigung benötige ich von WooCommerce den Namen von Bestellern und eine Bestellnummer. Bei übereinstimmenden Namen (am besten noch die Adresse dazu) ist vom selben Kunden auszugehen und die nur die aktuellste Bestellnummer zurückzuliefern. Mit einer Kundennummer wäre das sehr viel einfacher und weniger fehleranfällig.

Andersherum muss ich aus dem Task-Manager heraus „unsichtbare Produkte“, also individuelle Leistungen in WooCommerce generieren und gleichzeitig Bestellungen anlegen können.

Gutschriften

Ich gehe davon aus, dass Zahlungswesen nicht 100%ig auf WooCommerce zugeschnitten zu gestalten, so dass auch Zahlungen verbucht werden können, die nichts mit WooCommerce zu tun haben. Andererseits gibt es für den nächsten Punkt Statistik mit Sicherheit schöne Plugins, die die WooCommerce-Verkäufe grafisch veranschaulichen. Daher wäre es auch ein gangbarer Weg, Gutschriften über „unsichtbare Produkte“ mit einer simplen Eingabemaske zur Generierung der „Bestellung“ zu händeln.

Statistik

Nein, die Statistik muss auf den Zahlungsflüssen basieren und nicht auf den Zeitpunkten von Bestellungen oder Status-Änderungen. Sicherlich werde ich mich nach einem komplexen Plugin umsehen, dass den Cash-Flow für WooCommerce erfasst. Das Problem habe ja nicht ich alleine. Man denke nur an eine Tandem-Lösung aus niedergelassenem Laden und Onlineshop. Der Shop-Betreiber muss die im stationären Laden generierten Umsätze ja auch mit den online generierten in Einklang bringen.

Downloads

Die Bedeutung des Admin-Moduls Downloads hatte ich schon angezweifelt. Schön, dass WooCommerce diese Verwaltung übernimmt, sobald ich die Bestandsdaten entsprechend transformiert habe.

Accounts

Ich habe noch gar nicht geschaut, wie es in WooCommerce gelöst ist. Aber die horrormäßige Datenbank-Struktur in WordPress lässt kaum eine andere Korrelation zu, als die wechselseitige und damit redundante Zuordnung von Nutzern zu Bestellungen über Post-Meta- und User-Meta-Einträge. Wenn ich mich täuschen sollte, werde ich versuchen, dran zu denken, das klarzustellen.

In jedem Fall ist die Zuordnung irgendwie gelöst und brauche ich nichts weiter zu tun.

Briefe

Dieser Punkt ist eher peripher. Das Briefe-Modul sendet eine Rechnungsnummer (Kundennummer gibt es kaum noch) an WooCommerce und bekommt dafür Name und Anschrift des Bestellers zurück. Mir muss bei der Suche nach einem Kunden direkt der Link zur Generierung eines Briefs angezeigt werden. Nur so spare ich ca. 30 Sekunden für das Kopieren der Anschrift aus der Rechnung in den Brief.

Rezensionen

Schön, dass dieser Punkt nicht mehr unter Schnittstellen fällt. Denn was WooCommerce hier mitbringt, ist schon sehr ausgereift. Ich sehe nicht, dass ich hier noch irgendetwas tun müsste.

Kunden

Der Punkt wird jetzt ziemlich übersichtlich, wenn es gar keine Kunden mehr gibt. Das einzige, was ich bei Rechnunen noch nicht erwähnt habe, ist die individuelle Anpassungsmöglichkeit für den Stundensatz. Dann gibt es diese eben erst einmal nicht mehr bzw. muss sie auf die individuellen Leistungen für den Kunden übertragen werden. Es gibt den Standardstundensatz von 45,- EUR, der bei Bedarf bei der Rechnungsgenerierung überschrieben werden kann.

Angebote

Dazu muss ich erst einmal sehen, was WooCommerce mit dem post_status seiner Bestellungen macht. Aber denkbar wäre, Angebote mit einem Code zu versehen, der den Empfänger des Angebots zum Zugriff darauf legitimiert. Das Angebot selbst ist eine Bestellung mit einem post_status wie z.B. future. Wichtig ist außerdem das Ablaufdatum und die Deaktivierung des Angebots, sobald die entsprechende Bestellung ausgelöst wurde. Die Erinnerungsfunktion ist zunächst sekundär.

Bestellvorgang

Von geringfügigen optischen und inhaltlichen Anpassungen ist die Standard-Warenkorb-Seite akzeptabel.

Was ich im Punkt Rechnungen noch nicht vorweggenommen habe, ist die Anforderung, dass wie im alten System auch der Bestellvorgang in 3 Schritten vonstatten gehen soll:

  1. Warenkorb
  2. Dateneingabe (Anschrift etc.)
  3. Vorschau

Während der Warenkorb noch ganz akzeptabel gestaltet ist, sind Schritt 2 + 3 standardmäßig zusammengefasst. Das wirkt wie eine Meldung à la

Sind Sie wirklich ganz sicher, dass sie auf dieser Seite etwas bestellen möchten? Tipp: Tun Sie es nicht!

Der potenzielle Kunde wird beim Formular zur Dateneingabe förmlich erschlagen.

Schritt 2 und 3 sind also zu trennen, die Eingabefelder anzupassen sowie AGB-Akzeptanz etc. einzuholen.

Abschließend, was sich wie ein roter Faden durch WordPress und sämtliche Plugins, die mit deutschen Sprachpaketen verfügbar sind zieht: Es mag bei Ikea, Facebook und was weiß ich wo üblich sein, aber meine Kunden bzw. Besucher meiner Website werden nicht geduzt. D.h. Sprachpakete mit förmlicher Anrede finden oder selbst erstellen. Soweit die Entwicklersicht eines zwar erfahrenen Programmierers, für den WordPress jedoch Neuland ist.

»«

Schreiben Sie einen Kommentar