Funktionsweise von CashCtrl Gateway for WooCommerce

CashCtrl Gateway for WooCommerce Funktionsweise

CashCtrl Gateway for WooCommerce ist ein Plugin, welches Bestellungen auf Ihrem WooCommerce Onlineshop direkt nach CashCtrl exportiert und entsprechende Aufträge anlegt. Das Plugin wird auf WordPress installiert und schaltet sich zwischen Ihre bestehende WooCommerce Installation und Ihre CashCtrl Buchhaltung. Sobald das Plugin erfolgreich mit Ihrer CashCtrl Buchhaltung verbunden und konfiguriert ist, werden alle WooCommerce Bestellungen an CashCtrl übermittelt und dort als Auftrag (z.B. Rechnung) angelegt. Je nach Konfiguration können bei unterschiedlichen WooCommerce Zahlungsmethoden die Debitoren direkt verbucht werden, so das die Buchhaltung für diese Bestellungen praktisch erledigt ist.

Grundsätzlich geht das Plugin davon aus im WooCommerce Onlineshop die gleichen Produkte wie auch in der CashCtrl Buchhaltung angelegt sind und diese in Bezug auf Artikelnummer, Namen, Mehrwertsteuer, Preis usw. identisch konfiguriert sind. Ebenso sollten Einstellungen für die Mehrwertsteuer, z.B. oder der Verkaufspreis inkl. oder exkl. MwSt. ist, identisch konfiguriert sein. Der Setup Assistent weist wären der Konfiguration auf die wichtigsten Einstellungen hin und erleichtert so die korrekte Konfiguration.

CashCtrl Gateway for WooCommerce legt in der Onlinebuchhaltung nie eigene Artikel an. Die einzige Ausnahme bildet der Inventar-Export im Plugin und auch dort nur, sofern dies durch den Administrator ausdrücklich initiiert wurde. Existiert ein Artikel in CashCtrl nicht, welcher bei einer Shop Bestellung zum Einsatz kam, wird im Auftrag lediglich ein Dummy Artikel mit der entsprechenden Beschreibung aufgeführt (siehe nachfolgendes Ablaufdiagram). Das Anlegen des Artikels im CashCtrl Inventar obliegt dem Administrator.

Schematische Darstellung und Ablauf

Die genau Funktionsweise möchten wir anhand des nachfolgenden Schemas erläutern. Ihr WooCommerce Onlineshop auf der linken, Ihre CashCtrl Buchhaltung auf der rechten Seite. CashCtrl Gateway for WooCommerce in der Mitte übermittelt alle Kundenbestellungen an CashCtrl und stellt sicher das diese korrekt verbucht werden.

Weiterführende Informationen wie Sie CashCtrl Gateway for WooCommerce korrekt konfigurieren finden Sie weiter unten in diesem Artikel.

Sobald der Kunde die Bestellung abgeschickt hat, werden die erforderlichen Daten an CashCtrl Gateway for WooCommerce übermittelt.
Bestellungen welche durch den Shop Administrator im WooCommerce Dashboard manuell angelegt werden, werden durch das Plugin ebenfalls erkannt regelmässig exportiert (dies kann je nachdem bis zu einer Stunde dauern).
CashCtrl Gateway for WooCommerce übernimmt die Daten von WooCommerce, prüft diese und bereitet die Daten anhand der gemachten Konfiguration auf. Der Ablauf sieht grob folgende Schritte vor:

Prüfung des WooCommerce Bestellungsstatus.

Es werden Bestellungen mit dem Status: «Processing», «On hold», «Completed», exportiert. Bestellungen mit dem Status «Pending», «Cancelled», «Refunded» oder «Failed» werden nicht weiter verarbeitet.

Es wird geprüft ob im CashCtrl Inventar für die WooCommerce Produkte-Artikelnummer ein Artikel oder Dienstleistung mit der gleichen Artikel-Nr. existiert. Existiert im CashCtrl Inventar ein solches Objekt, wird dieses für die weitere Erstellung des CashCtrl Auftrags verwendet.

In diesem Fall wird aus der WooCommerce Bestellung Preis und Anzahl für den CashCtrl Auftrag verwendet.

Es wird geprüft ob dem CashCtrl Artikel eine Kategorie zugewiesen ist. Dabei wird die das Ertragskonto welches in der Kategorie konfiguriert ist ausgelesen. Falls ein solches vorhanden ist, wird dieses für die Debitoren Buchung verwendet. Falls nicht, wird das Konto aus der CashCtrl Gateway for WooCommerce Grundeinstellung verwendet.

Es wird geprüft ob für die Versandart ebenfalls ein CashCtrl Artikel zugewiesen ist.
Das CashCtrl API übernimmt die vom Plugin übermittelten Daten und legt diese nach oben genanntem Schema an.

Anlegen des CashCtrl Auftrags anhand der Konfiguration für die Zahlungsmethode mit der die Bestellung bezahlt wurde.

Ergänzen des Auftrags mit Informationen wie z.B. Fälligkeit, Dokumentenvorlagen und Textvorlagen gemäss Konfiguration der entsprechenden Zahlungsmethode.

Direkte Verbuchung von Debitoren falls dies für die Zahlungsmethode konfiguriert ist.

Verbuchen von WooCommerce Gutscheinen (Coupons) oder gratis Lieferung (Free Shipping), sofern ein Gutschein bei der Bestellung zur Anwendung gekommen ist.

Diese Ertragsminderungen werden immer gemäss der Zahlungsmethode «Gutschein (coupon)» verbucht.

Konnte eine Zahlungsmethode nicht zugewiesen werden, wird der Auftrag immer unter der Zahlungsmethode «nicht zuordenbare Zahlungsmethoden (default)» angelegt.

Konnte eine Versandart im CashCtrl Inventar nicht gefunden werden, wird im Auftrag eine Dummy-Position mit dem Betrag 0.00 angelegt. Diese enthält Anweisungen was zu unternehmen ist, um solche Positionen zukünftig zu vermeiden.
Sollte bei der Verarbeitung ein Fehler auftreten, meldet dies das Plugin dem Administrator über eine Fehlermeldung im WordPress Dashboard. Dieser Fehler beinhaltet die WooCommerce Bestellnummer, damit geprüft werden kann aus welchem Grund die Verarbeitung fehlgeschlagen ist.
Das Plugin markiert jede Bestellung entweder mit einem «customField» mit dem Status «success» oder «error»:

Wurde der Auftrag in CashCtrl erfolgreich angelegt, wird die verarbeitete WooCommerce Bestellung markiert, damit diese nicht fälschlicherweise erneut in die Buchhaltung exportiert werden kann.

Im Erfolgsfall wird der Bestellung eine «Bestellungs-Anmerkung» mit der CashCtrl Auftrags-Nummer eingetragen.

Kann der Auftrag in CashCtrl nicht angelegt werden, wird unter der Bestellungs-Anmerkung einen Fehler eingetragen.

Alle Transaktionen werden in den WooCommerce (info) Logs geloggt. Fehler werden in error Logs ausführlicher.

WordPress Hintergrundprozesse (WP-Cron)

Hintergrundprozesse in WordPress, auch bekannt als WP-Cron, sind abhängig von der Anzahl Besucher auf der Webseite. Bei jedem Seitenaufruf wird versucht, geplante Hintergrundprozesse auszuführen. Dies kann zu zweierlei Problemen führen.

  • Bei stark frequentierten Webseiten werden zwar die Hintergrundprozesse zuverlässig ausgeführt, gleichzeitig werden aber auch Ressourcen gebunden, welche nicht notwendig wären.
  • Bei schwach besuchten Seiten besteht das Problem mit der Performance nicht direkt, jedoch werden Hintergrundprozesse nicht zuverlässig ausgeführt (z.B. in der Nacht oder zu Zeiten, bei denen keine Benutzer auf der Webseite sind).

Da das Plugin CashCtrl Gateway teilweise auf solche Hintergrundprozesse setzt (z.B. zur Synchronisation der Lagerbestände oder Exporte von Bestellungen), empfehlen wir WP-Cron durch einen echten Cron-Job zu ersetzen. Damit werden Prozesse zuverlässiger ausgeführt und die Performance Ihrer Webseite wird erst noch etwas besser sein. Detail zur Einrichtung finden Sie im nachfolgenden Artikel.

 

Konfiguration

Nachfolgen finden Sie alle Artikel zur erfolgreichen Konfiguration von CashCtrl Gateway for WooCommerce.

Hilfe zur Fehleranalyse finden Sie in diesem Artikel.