Kontakt-Synchronisierung
Wird im Shop eine Bestellung durchgeführt, versucht der Bexio Automator anhand der angegebenen Rechnungs- und Lieferadresse den zu verwendenden Bexio-Kontakt zu finden und im Auftrag zu hinterlegen. Dieser Artikel erläutert, wie die Synchronisierung von Kontakten gehandhabt wird.
Arten von Kontakten
In Bexio wird grundsätzlich zwischen 2 Arten von Kontakten unterschieden:
- Firmenkontakt
- Privatkontakt
Ob ein Kontakt ein Firmen- oder Privatkontakt ist, ist abhängig von der beim Checkout verwendeten Adresse. Ist im Feld ‘Firmenname’ etwas eingetragen, wird die Adresse als Firmenkontakt behandelt; ist dieses Feld leer, wird dies als Privatkontakt behandelt.
Der Bexio Automator erlaubt es, bei der Erstellung von Firmenkontakten eine flache oder eine verschachtelte Hierarchie zu verwenden – ausschlaggebend dafür ist die Option ‘Kontakt Erstellungsmodus’ im Abschnitt Synchronisierungsdaten. Flach bedeutet hierbei, dass auch wenn ein Firmenname eingegeben wurde, jeder Kontakt als eigenständiger Kontakt in Bexio erstellt wird (falls noch nicht vorhanden) – wurde ein Firmenname eingegeben, wird ein Firmenkontakt erstellt, wobei Vorname & Nachname im Feld ‘Zusatz’ gespeichert werden. ‘Verschachtelt’ bedeutet hingegen, dass die Kontakte verknüpft werden, sprich: es wird ein Privatkontakt erstellt und wurde ein Firmenname eingegeben, wird ein Firmenkontakt erstellt, mit dem der Privatkontakt verknüpft wird.
Hinweis zu strukturierten Feldern
Bexio verlangt ab dem 8. Dezember 2025, dass die Adresse strukturiert übermittelt wird (d.h. Strasse & Haus-Nr. getrennt). Da WooCommerce dies nicht standardmässig so erfasst, teilt der Bexio Automator dies automatisch auf. Für weitere Informationen, siehe hier.
Suchen von bestehenden Kontakten
Während des Checkout wird anhand der Rechnungsadresse ein bestehender Kontakt in Bexio gesucht. Wie der Kontakt gesucht wird, hängt davon ab, ob es ein Privat- oder Firmenkontakt ist.
Bei Firmenkontakten wird in Bexio nach einem Kontakt mit dem in der Rechnungsadresse vorhandenen Firmennamen gesucht. Der Firmenname muss dabei exakt übereinstimmen, damit ein bestehender Kontakt gefunden wird – wird der Firmenname leicht anders geschrieben, z.B. bei Bestellungen von 2 unterschiedlichen Mitarbeitern derselben Firma welche diesen unterschiedlich geschrieben haben, wird ein neuer Kontakt erstellt.
Bei Privatkontakten wird anhand von E-Mail, Vorname & Nachname nach einem bestehenden Kontakt in Bexio gesucht. Damit dieser gefunden wird, müssen alle 3 Felder übereinstimmen, andernfalls wird ein neuer Kontakt erstellt.
Ab Version 2.10.0 des Plugins, kann zudem das Zusatzmodul für die Kontakt-Synchronisierung verwendet werden, um auf den Shop-Benutzern einen zu verwendenden Bexio-Kontakt zu hinterlegen. Für weitere Informationen, siehe weiter unten.
Erstellen von neuen Kontakten
Wird für einen Firmen- oder Privatkontakt in Bexio kein bestehender Kontakt gefunden, wird automatisch ein neuer erstellt. Wie bereits erwähnt wird dabei zwischen Firmen- / Privatkontakt und flacher oder verschachtelter Hierarchie unterschieden.
Wurde für ‘Kontakt Erstellungsmodus’ Verschachtelt ausgewählt, wird der Firmenkontakt mit Firmanname, Adresse, PLZ, Ort & Land erstellt. Der Privatkontakt wird in diesem Fall mit Vorname, Nachname, E-Mail und optional mit Telefon, Geburtsdatum, Sprache & Anrede erstellt. Zusätzlich zu diesen Feldern können per Code-Snippet auch noch die Website, Fax & MWST-Nummer beim Erstellen eines Kontaktes in Bexio übertragen werden.
Hinweis zu Anreden
‘Anrede’ ist kein standard-WooCommerce-Feld. Dies stammt im Regelfall von “WooCommerce Germanized”. Unser Plugin-Service unterstützt die Synchronisierung einer Anrede jedoch bereits, wenn diese in der Rechnungs-Adresse unter ‘salutation’ übermittelt wird. Dazu kann der Filter ‘raptus_wc_bexio_connector_order_data’ verwendet und die Anrede in $data[‘customer’][‘billing’][‘salutation’] gesetzt werden. Jegliche Anreden müssen aber zudem exakt übereinstimmend in Bexio bereits erfasst sein.
Zusatzadressen und deren Handhabung
Zusatzadressen werden grundsätzlich dann erstellt, wenn die angegebene Rechnungs- / Lieferadresse von der Adresse des Kontaktes in Bexio abweicht. Dabei ist die Adresse des Haupt-Kontaktes ausschlaggebend; wurde ein Firmenname angegeben, ist dies in der Regel der Firmenkontakt (andernfalls der Privatkontakt).
Beim Vergleichen der Adressen werden dabei alle relevanten Felder verglichen. D.h.: Name & Vorname, Namens-Zusatz (falls benötigt), Strasse + Haus-Nr., Adresszusatz (falls benötigt), PLZ, Ort und Land. Wird eine Abweichung gegenüber der Adresse des Kontaktes erkannt (bei der Rechnungs- oder der Lieferadresse), wird eine neue Zusatzadresse erstellt (falls keine bestehende gefunden wird). Bei Firmenkontakten wird die Zusatzadresse jeweils auf der Firma hinterlegt.
Ein Beispiel:
Ein Benutzer bestellt für seine Firma mit der Adresse “Strasse 1”. Es wird ein Firmenkontakt mit der Adresse “Strasse 1” und ein Privatkontakt mit seinem Namen erstellt. Bei der zweiten Bestellung gibt er als Adresse “Strasse 2” an – die Adresse unterscheidet sich somit von jener des Firmenkontaktes (“Strasse 1”) und es wird auf dem Firmenkontakt eine neue Zusatzadresse mit “Strasse 2” hinterlegt. Dasselbe gilt auch, wenn nur eines der oben aufgeführten Felder ändert, z.B. die PLZ 1235 anstatt 1234 wäre.
Aufgrund der Umstellung von Bexio auf strukturierte Adressfelder und der Verfügbarkeit weiterer Felder, werden ab Version 2.10.2 des Bexio Automator API's Adressdaten wie folgt in den Zusatzadressen eingetragen:
- Name: bei Firmenkontakten der Firmenname, bei Privatkontakten die Person.
- Namens-Zusatz: bei Firmenkontakten, Vor- & Nachname der Person innerhalb der Firma.
- Strasse: der Strassenname, aufgeteilt aus der Adresszeile 1.
- Haus-Nr.: die Hausnummer, aufgeteilt aus der Adresszeile 1.
- Adresszusatz: die Adresszeile 2.
Diese Anpassung ist nicht mit den alten Adressformaten Rückwärtskompatibel, resp. werden nach den alten Formaten erstellte Zusatzadressen nicht mehr gefunden. Werden solche Adressen verwendet, werden stattdessen neue Zusatzadressen nach dem neuen, strukturierten Format erstellt.
Hinweis zu alten Adressformaten
Bezüglich Zusatzadressen ist zu beachten, dass Bexio für Zusatzadressen lange Zeit keine separaten Felder für den Firmennamen und die Person anbot. Aus diesem Grund wurden Zusatzadressen bis Version 1.24.9 des Bexio Automator API's so erstellt, dass im Feld "Name des Empfängers" Vor- & Nachname der Person eingetragen und der Firmenname + die Adresse im Feld "Adresse" übertragen wurden.
Aufgrund von Feedback von Kunden wurde diese Reihenfolge ab Version 1.24.10 des Bexio Automator API’s angepasst – neu wurden im Feld "Name des Empfängers" der Firmenname eingetragen und Vor- & Nachname + Adresse wurden im Feld "Adresse" gespeichert. Diese Anpassung war mit dem vorherigen Format (Name > Firma > Adresse) Rückwärtskompatibel, resp. wurde eine Zusatzadresse im neuen Format nicht gefunden, wurde im alten Format gesucht, bevor eine neue erstellt wurde.
Diese alten Formate werden mit der Umstellung auf die strukturierten Felder nicht mehr unterstützt.
Zusatzadresse als Rechnungsadresse
In Bexio ist es möglich, eine Zusatzadresse als Rechnungsadresse zu markieren. Dies kann zu einer anderen als der erwarteten Anschrift in den synchronisierten Dokumenten in Bexio führen. Ab Version 1.17.0 des Bexio Automator Plugins, ist es möglich, für diesen Fall die Erstellung von Zusatzadressen zu erzwingen (für weitere Informationen, siehe hier).
Bei älteren Versionen des Plugins, werden als Rechnungsadresse markierte Zusatzadressen nicht unterstützt, da dies das Verhalten in Bexio ändert, wenn automatisch die Adresse des Kontaktes übernommen werden soll. Ist eine Zusatzadresse als Rechnungsadresse markiert, wird in diesem Fall diese Zusatzadresse verwendet, anstatt der Adresse des Kontaktes selbst.
Alternative Synchronisierungsmethoden
Alternativ zum automatischen Überprüfen der Bexio-Kontakte, kann auch eine Synchronisierung anhand eines bestimmten Bexio-Kontaktes erfolgen. Die dabei zur Verfügung stehenden Möglichkeiten sind je nach Plugin-Version & Abonnement (siehe verfügbare Zusatzmodule) unterschiedlich.
Ab Version 2.10.0 des Plugins steht das Zusatzmodul für die Kontakt-Synchronisierung zur Verfügung. Dieses erlaubt es unter anderem, auf Shop-Benutzern die Kontakt-Nr. eines zu verwendenden Bexio-Kontaktes anzugeben. Für weitere Informationen, siehe hier.
Wenn noch eine ältere Plugin-Version verwendet wird oder das Abonnement nicht zur Verwendung des Zusatzmodules berechtigt, kann mit den bestehenden Filtern im Plugin die Synchronisierung überschrieben und ein zu verwendender Bexio-Kontakt anhand dessen ID oder Kontakt-Nr. vorgegeben werden.
Beispiel:
add_filter('raptus_wc_bexio_connector_order_data', function($order_data, $order) {
$data['customer']['contact_id'] = "bexio contact ID";
$data['customer']['contact_nr'] = "bexio contact number";
return $order_data;
}, 10, 2);
Die entsprechende Kontakt-Nr. oder ID könnte z.B. über ein zusätzliches Feld auf dem WordPress-Benutzer gesetzt und ausgelesen werden. (erfordert eine entsprechende Erweiterung im Shop).
Der Vorteil dieser Art der Synchronisierung ist, dass z.B. der Firmenkontakt auch gefunden wird, wenn die Shop-Benutzer ihren Firmennamen unterschiedlich eingeben. Dadurch kann dann verhindert werden, dass bei abweichender Schreibweise jedes mal ein neuer Firmenkontakt erstellt wird. Zudem werden bei dieser Art der Kontakt-Synchronisierung Firma, Adresse, Ort & PLZ auf dem vorgegebenen Bexio-Kontakt aktualisiert, sollten diese von den Daten in der Rechnungsadresse der Bestellung abweichen.
Kommentare
0 Kommentare