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.
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.
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.
Hinweise 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 wird dabei die effektive Adresse (resp. Strasse + Haus-Nr., PLZ, Ort & Land) verglichen, Name & Vorname wirken sich darauf nicht aus. Wird eine Abweichung gegenüber der Adresse des Kontaktes erkannt (bei der Rechnungs- oder der Lieferadresse), wird eine neue Zusatzadresse erstellt (falls nicht bereits vorhanden). 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 die PLZ ändert, z.B. 3251 anstatt 3250.
Bezüglich Zusatzadressen ist zudem zu beachten, dass Bexio für Zusatzadressen kein Feld für den Firmennamen bietet. Aus diesem Grund wurden Zusatzadressen bisher 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 wird diese Reihenfolge ab Version 1.24.10 des Bexio Automator API’s angepasst – neu wird im Feld ‘Name des Empfängers’ der Firmenname eingetragen und Vor- & Nachname + Adresse werden im Feld ‘Adresse’ gespeichert. Diese Anpassung ist mit dem vorherigen Format (Name > Firma > Adresse) Rückwärtskompatibel, resp. wird eine Zusatzadresse im neuen Format nicht gefunden, wird im alten Format gesucht, bevor eine neue erstellt wird.
Zusatzadresse als Rechnungsadresse
In Bexio ist es möglich, eine Zusatzadresse als Rechnungsadresse zu markieren. Dies wird aktuell vom Bexio Automator 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 anhand der Adresse kann auch eine Synchronisierung anhand der Kontakt-ID oder Kontakt-Nr. in Bexio erfolgen. Dazu muss die ID / die Kontakt-Nr. des Bexio-Kontaktes per Code-Snippet bei der Synchronisierung gesetzt werden.
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 ID / Kontakt-Nr. könnte z.B. über ein zusätzliches Feld auf dem WordPress-Benutzer gesetzt und ausgelesen werden. 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 unterstützt diese Art der Kontakt-Synchronisierung die Aktualisierung von Firma, Adresse, Ort & PLZ auf dem Bexio-Kontakt, wenn diese in der Rechnungsadresse abweichen sollten.
Kommentare
0 Kommentare