Bestellprozesse in WooCommerce automatisieren

Mit WooCommerce als E-Commerce-Lösung für WordPress haben wir gute Erfahrungen gemacht. An die Grenzen kommt man, wenn man etwa Bestellprozesse automatisiert ausführen lassen will.

WooCommerceIn dem geschützten Bereich einer Webseite haben wir einen internen Shop umgesetzt, mit dem Tickets gekauft werden können. Als Basis dazu setzen wir WooCommerce zusammen mit Events Calendar Pro und WooTickets ein. Damit ist schon einiges abgedeckt. Zusätzlich bestand noch die Anforderung, Tickets auf einfache Weise an der Abendkasse zu verkaufen. Dazu mussten wir die Möglichkeit schaffen, den Warenkorb, die Dateneingabe und den Checkout zu umgehen. Die Zahlung würde dann der Kassier an der Abendkasse übernehmen, auf dessen Desktop die WordPress-Lösung laufen soll.

Meine erste Reaktion: googeln. Und schon bald stelle ich fest: WooCommerce bietet keine praktischen Klassen an, um den gesamten Kaufprozess zu automatisieren. Auch nach zwei Stunden habe ich nur Lösungen gefunden, die überaus komplex und für ganz spezifische Fälle geeignet sind. Aber nicht für meinen. Kurzerhand entschlossen wir uns, selbst eine solche Klasse zu bauen. Diese deckt natürlich noch weit nicht alle Möglichkeiten ab, die WooCommerce theoretisch bietet, doch für unseren Fall ist sie ausreichend:

  1. Bestellung initialisieren
  2. Definition von Fehlerseiten (z.B. «Keine Artikel an Lager»)
  3. Zahlungsweisen ausgeben / Zahlungsweise zuordnen
  4. Produkte hinzufügen (Menge und Variation definierbar)
  5. Rechnungs- und Lieferadresse zuweisen
  6. Bestellung abschliessen (damit werden alle Daten berechnet, MwSt, Filter, Lagerbestände)

Die Klasse selbst ist «Work in Progress» und möglicherweise gäbe es noch sauberere Lösungen als zum Beispiel den Gesamtpreis der Bestellung selbst zu berechnen. Es scheint, als ob WooCommerce keine Funktion dafür anbietet oder es im WC_Order Objekt selbst berechnet. Wir werden die Klasse natürlich aktualisieren, sobald wir Änderungen daran vollziehen. Soviel darf ich verraten: Derzeit generiert sie im Live-Betrieb mehrere tausend Franken Umsatz pro Tag.

Das wichtigste zum Schluss, die Gists

Selbstverständlich ist das nicht die erste Hilfsklasse die wir programmiert haben und bei weitem nicht die letzte. Wir planen künftig, weitere dieser praktischen Helferlein, die uns bei der (täglichen) Entwicklung von WordPress Erweiterungen unterstützen in Form von Gists zu veröffentlichen. Vielleicht können wir der Welt damit einen Gefallen tun :-).

Michael Sebel

Michael Sebel ist Software-Entwickler bei Blogwerk AG.

 

3 Kommentare

  1. Alfred Noser sagt:

    Interessanter Beitrag. Aber wären Sie nicht schneller zum Ziel gelangt wenn Sie eine “richtige” e-Commerce-Software als Basis genutzt hätten?

  2. Hallo, lieber Michael! Danke für Deinen interessanten Artikel. Du schreibst, Du hättest in WooCommerce einen geschützten Bereich eingebaut. Ich habe WordPress-Erfahrung, aber bislang noch nur rudimentäre Kenntnisse mit WooCommerce. Wie hast Du die Membership-Funktion in WooCommerce realisiert? Über ein Plugin? Welches hast Du genutzt? Freue mich sehr über eine prompte Antwort! Herzlichst aus Hamburg, Tanja.

  3. Michael sagt:

    Gar nicht: Es handelte sich um eine Kassenapplikation insofern war eine Membership-Funktion nicht nötig. Für die Klasse, die wir damals noch von Hand bauen mussten gibt es mittlerweile in aktuelleren WooCommerce Versionen REST APIs, mit welchen ich aber noch nicht besonders Erfahrung habe. Insofern kann ich dir bei deinem Anliegen wohl nicht weiterhelfen.

Schreiben Sie einen Kommentar

Wir sind sehr an einer offenen Diskussion interessiert, behalten uns aber vor, beleidigende Kommentare sowie solche, die offensichtlich zwecks Suchmaschinenoptimierung abgegeben werden, zu editieren oder zu löschen. Mehr dazu in unseren Kommentarregeln.

Pflichtfelder
OK
Bitte geben Sie Ihren Namen ein.
OK
Bitte geben Sie Ihre E-Mail-Adresse ein.
OK
Bitte geben Sie einen korrekte Website ein.
OK
Bitte geben Sie einen Kommentar ein.