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)

 

Alternativer Abgleich - asynchron

Wenn du mit dem ereignisbasierten Abgleich nicht zufrieden bist (z.B. aus Performance-Gründen im Checkout), kannst du versuchen, den asynchronen Abgleich zu aktivieren (im Abschnitt Synchronisierungsdaten bei der Option "Synchronisierungsmodus von Bestellungen"; erfordert mindestens v1.9.0 des WCBA). Dies 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).

Der asynchrone Abgleich hat den Vorteil, dass ein erneuter Synchronisierungsversuch stattfindet, wenn der initiale Synchronisierungsversuch fehlschlug (z.B. weil ein ungültiges Buchungskonto eingestellt ist). 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 vergangene Bestellungen nachträglich synchronisiert werden, ohne diese einzeln manuell synchronisieren zu müssen.

 

Ab v2.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).

 

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 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, d.h. der Abgleich findet im gleichen Prozess statt 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 des Cronjobs 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