Abgleich von Shop-Bestellungen nach Bexio

Wie werden Bestellungen abgeglichen?

Bestellungen werden im WooCommerce Bexio Automator (WCBA) anhand der Synchronisierungsregeln abgeglichen. Darf gemäss den Synchronisierungsregeln ein Element (z.B. ein Auftrag) erstellt werden, wird versucht, diesen in Bexio zu erstellen.

 

Genauere Informationen dazu, wie der Inhalt einer Bestellung nach Bexio synchronisiert wird, findest du hier.

 

Wie werden Lieferungen und Rechnungen synchronisiert / erstellt?

Sowohl Lieferungen als auch Rechnungen werden aus dem Auftrag generiert, analog der entsprechenden Aktion dazu, wenn du Aufträge in Bexio von Hand bearbeitest. Da diese aus einem Auftrag generiert werden, bedeutet dies entsprechend: darf für eine bestimmte Bestellung kein Auftrag synchronisiert werden, kann auch keine Lieferung oder Rechnung für diese Bestellung synchronisiert werden (da es dann keinen Auftrag gäbe, aus dem diese generiert werden können).

 

Stelle also sicher, dass Aufträge synchronisiert werden dürfen, wenn du Lieferungen & Rechnungen synchronisieren willst. Beachte zudem den Status, ab welchem der Auftrag synchronisiert werden darf, wenn du Probleme dabei hast, die Lieferung / Rechnung zu synchronisieren. Beachte, dass keine Lieferung / Rechnung zum ausgewählten Bestellstatus synchronisiert werden kann, wenn ein Auftrag erst zu einem späteren Status synchronisiert werden darf (der Auftrag muss existieren / erstellt werden dürfen, damit eine Lieferung / Rechnung generiert werden kann).

 

Wann findet der Abgleich statt?

Der Abgleich findet standardmässig ereignisbasiert statt. D.h.:

  • wenn eine Bestellung erstellt wird
  • wenn der Status einer Bestellung geändert wird
  • (wenn eine Bestellung manuell synchronisiert wird)

 

Es ist jedoch streng empfohlen, auf den asynchronen Abgleich für Bestellungen umzustellen. Damit von dessen vollem Potenzial profitiert werden kann, sind allerdings weitere Konfigurationen seitens des Servers notwendig.

 

Empfohlener Abgleich - asynchron

Es wird streng empfohlen, auf den asynchronen Bestell-Abgleich umzustellen. Dessen Vorteile sind:

  • Neue Bestellungen werden verzögert synchronisiert. Dadurch ist der Checkout nicht 'blockiert', resp. muss der Kunde nicht warten, bis die Bestellung nach Bexio synchronisiert wurde, bevor die Bestellbestätigungsseite angezeigt werden kann (bessere Performance im Checkout).
  • Schlägt eine Synchronisierung fehl, wird sie beim nächsten Abgleich automatisch erneut versucht.
  • Erlaubt es,, durch eine serverseitige Ausführung von WP-Cron, echte asynchrone Verarbeitung einzurichten.

 

Der asynchrone Abgleich kann im Abschnitt Synchronisierungsdaten, bei der Option "Synchronisierungsmodus von Bestellungen", in den Einstellungen des Plugins aktiviert werden (erfordert mindestens Version 1.9.0 des Plugins). Dieser Abgleich versucht 1x / Stunde noch nicht synchronisierte Bestellungen zu synchronisieren (gemäss den Synchronisierungsregeln). Der asynchrone Abgleich von Bestellungen erfolgt über wp_schedule_event() (resp. WP-Cron). Um das volle Potenzial des asynchronen Abgleiches hinsichtlich asynchroner Ausführung ausnützen zu können, wird streng empfohlen, eine serverseitige Ausführung von WP-Cron einzurichten (siehe Einschränkungen von WP-Cron).

 

Der asynchrone Abgleich hat den Vorteil, dass ein erneuter Synchronisierungsversuch stattfindet, wenn der initiale Synchronisierungsversuch fehlschlug (z.B. weil ein ungültiges Buchungskonto eingestellt war). D.h. die Bestellung wird bei jedem Abgleich so lange neu überprüft & ein Synchronisierungsversuch gestartet, bis für die Bestellung ein Auftrag, eine Rechnung und eine Lieferung bestehen (resp. auf der Bestellung verknüpft sind).

 

Damit nicht ungewollt vorherige (allenfalls noch von Hand nach Bexio übertragene) Bestellungen synchronisiert werden (und dadurch Duplikate entstehen), werden nur Bestellungen nach Aktivierung des asynchronen Abgleiches beachtet.

Tipp: der Zeitstempel der Aktivierung des asynchronen Abgleiches ('wcba_asyncorders_activation' in wp_options) kann in der Datenbank angepasst und auf einen Zeitpunkt in der Vergangenheit gesetzt werden - dadurch können mitunter vergangene Bestellungen nachträglich synchronisiert werden, ohne diese einzeln manuell synchronisieren zu müssen. Es ist allerdings nicht garantiert, dass dies in allen Fällen funktioniert.

 

Warum ist der asynchrone Abgleich nicht die Standard-Einstellung?

Der asynchrone Abgleich ist empfohlen, weil er gegenüber dem ereignisbasierten Abgleich Vorteile bietet. Jedoch ist er nicht die Standard-Einstellung. Dies rührt daher, dass die Einrichtung eines Cronjobs für echte asynchrone Verarbeitung nicht durch unser Plugin vorgenommen werden kann (erfordert Konfiguration am Server). Ohne diesen Schritt, läuft WP-Cron ebenfalls synchron in den Seitenaufrufen. Der asynchrone Abgleich bietet jedoch auch mit dem normalen WP-Cron immer noch gewisse Vorteile - eine Cronjob Ausführung von WP-Cron ist allerdings klar empfohlen, wenn der asynchrone Abgleich verwendet wird!

 

Ab Version 2.1.0

Ab dieser Version des WCBA erfolgt der asynchrone Abgleich 2-teilig:

  • 1x alle 5 Minuten: dies synchronisiert ausschliesslich 'neue' Bestellungen, d.h. Bestellungen, für die noch kein Auftrag synchronisiert wurde
  • 1x pro Stunde: entspricht weiterhin dem bisherigen asynchronen Abgleich und versucht Bestellungen zu synchronisieren, für die entweder noch kein Auftrag, keine Rechnung oder keine Lieferung synchronisiert wurde

Der Vorteil des Abgleiches alle 5 Minuten ist, dass der Checkout im Shop nicht auf die Antwort der Bexio-Schnittstelle warten muss, da die Synchronisierung erst nach dem Checkout erfolgt (spätestens nach 5 Minuten), jedoch nicht (je nach Timing) bis zu einer Stunde gewartet werden muss, bis die Synchronisierung erfolgt. Für die meisten Shops ist dies die empfohlene Synchronisierungsart, um den Checkout nicht zu beeinflussen, die Bestellungen jedoch trotzdem möglichst schnell nach Bexio zu synchronisieren.

Wer den Abgleich alle 5 Minuten nicht will, kann diesen mit dem Filter

'raptus_wc_bexio_connector_seperate_increased_interval_sync_new_orders' deaktivieren - dann erfolgt nur der Abgleich 1x / Stunde (welcher dann auch für die 'initiale' Synchronisierung neuer Bestellungen zuständig wäre).
 

Ab Version 2.8.0

Ab dieser Version des WCBA Plugins unterstützt der asynchrone Abgleich eine Prüfung auf mögliche Duplikate, wenn nach einer fehlgeschlagenen Synchronisierung ein erneuter Synchronisierungsversuch durchgeführt wird. Wird für die jeweilige Bestellung bereits ein entsprechendes Element in Bexio gefunden, wird dieses auf der Bestellung hinterlegt, anstatt ein neues zu erstellen. Weitere Informationen diesbezüglich (inklusive Deaktivierung dieses Checks und Einschränkungen) findest du hier.

 

Einschränkungen von WP-Cron

Zu beachten ist jedoch: der asynchrone Abgleich des WCBA erfolgt mit WP-Cron. WP-Cron wird standardmässig nur beim Aufruf einer Seite ausgeführt - besucht also mehrere Stunden lang niemand den Shop / das Backend, wird der 'stündliche' Abgleich von Bestellungen in dieser Zeit auch nicht ausgeführt!

 

D.h. dass diese Art des Abgleichs standardmässig nicht wirklich 'asynchron' im herkömmlichen Sinne ist. Dies liegt daran, dass PHP (und damit WordPress) nicht wirklich asynchron ist, wodurch der Abgleich im gleichen Prozess stattfindet wie der Shop / das Backend. Um einen wirklich 'asynchronen' Abgleich sicherzustellen, der auch ohne Seitenaufrufe im Shop funktioniert, müssen Sie eine serverseitige Ausführung von WP-Cron einrichten - dies liegt in der Verantwortung des Kunden / Shopbetreibers und muss individuell gemacht werden. Für Informationen, wie ein serverseitiger Cronjob eingerichtet werden kann, siehe die Links weiter unten.

 

Zu beachten: in Extremfällen können auch asynchrone Abgleiche durch serverseitige Cronjobs zu einer Überlastung des Servers führen (abhängig vom Server, der Anzahl abzugleichender Daten etc.). In diesen Fällen kann auch der Prozess des Shop / Backend beeinträchtigt (und dadurch die Performance beeinflusst) werden.

 

Hier finden Sie verschiedene Links für weitere Informationen:

War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich

Kommentare

0 Kommentare

Zu diesem Beitrag können keine Kommentare hinterlassen werden.

Haben Sie noch Fragen?
Anfrage einreichen