Skip to content

Kunden synchronisieren

Wir synchronisieren Abacus shoppers zu Shopware-Kunden.

Plugin-Konfiguration

In der Plugin-Konfiguration finden Sie Einstellungen für die Kundensynchronisation und die Bestellungsabwicklung. Plugin configuration

  1. Die Kundensynchronisation kann aktiviert oder deaktiviert werden
  2. Mit der Einstellung "Shopper UUID" können Sie zwischen "Account" oder "E-Mail" wählen, um den Shopper eindeutig zu identifizieren.
    • "Account" ist die empfohlene Einstellung, da nur der Account in Abacus eindeutig ist
    • "E-Mail" verwendet die E-Mail-Adresse zur Identifizierung des Shoppers (bitte beachten Sie, dass es möglich ist, dass mehrere Shopper dieselbe E-Mail-Adresse haben. Wir fangen diesen Fall momentan nicht ab.)
  3. Aktivieren Sie diese Option nur, wenn Sie eine E-Mail an den Kunden senden möchten, sobald er in Shopware angelegt wird. (Vorsicht: Dies sendet eine E-Mail an alle Kunden, die synchronisiert sind)

Abacus-Konfiguration

In den Einstellungen der Abacus-Anwendung (621) können Sie einen Sammeldebitor für alle Gastbestellungen definieren. Dieser Debitor wird für alle Gastbestellungen, die in Shopware angelegt werden, verwendet. Abacus configuration Bitte stellen Sie sicher, dass der Debitor unter "Zusatz" -> "Debitor-Einstellungen" die Checkbox "Sammeldebitor" aktiviert hat.

Kundensynchronisations-Prozess "Shopper"

Alle 24 Stunden werden alle Shopper von Abacus mit Shopware synchronisiert. Die Synchronisation erfolgt im Hintergrund und kann manuell über die Konsole ausgelöst werden.

php
bin/console scheduled-task:run-single webwirkung.abacus.shopper.synchronization

Zusätzlich zur geplanten Vollsynchonisation registriert das Plugin auch Änderungen von Abacus Shoppers und verarbeitet diese alle 15 Minuten. Dies bedeutet, dass Änderungen in Abacus schnell in Shopware widergespiegelt werden.

So sieht ein korrekt synchronisierter Shopper in Shopware aus: Shopper synchronization example Neben den Standard-Kundendaten von Shopware speichern wir auch die Abacus Customer Subject Id, die Abacus Shopper Id sowie die Abacus Debtor Number in den Zusatzfeldern des Kunden.

Zusätzlich wird die Abacus Adress-ID in den Zusatzfeldern jeder Kundenadresse gespeichert. Diese Adress-ID ist essenziell, um beim Übermitteln von Bestellungen von Shopware nach Abacus die korrekten Adressreferenzen beizubehalten.

Manuelles Erstellen von Shoppern mit UUID „Account“ in Abacus

Wenn in der Shopware-Plugin-Konfiguration (siehe oben) die Shopper-UUID auf „Account“ gesetzt ist, erwartet das Plugin, dass der Shopper im Feld „Account“ (Kontoname) eine E-Mail-Adresse hat.
Beim manuellen Anlegen eines neuen Shoppers in Abacus müssen Sie daher die E-Mail-Adresse im Feld „Account“ eintragen.

So sollte der Shopper in Abacus aussehen:

Shopper Account-Feld

Sowohl das Feld „Account“ als auch das Feld „E-Mail“ sind mit der E-Mail-Adresse ausgefüllt.
Im Deutschen heisst das Abacus Feld „Account“ „Kontoname“.

Technische Informationen über Abacus Shopper

Der Abacus Shopper ist ein Konzept in Abacus, das einen Kunden repräsentiert, der in einem Onlineshop einkauft. Ein Shopper ist mit einem Debitor (Kunde) in Abacus verknüpft und kann mehrere Adressen haben.

Über die API erhalten wir folgende Adressinformationen zu einem Shopper. Ein frisch erstellter Shopper in Abacus:

json
    "Id": "e6c7e1be-84c3-8926-2422-5df4d6f775a0",
    "EMail": "shopper.shoppi@webwirkung.ch",
    "Account": "shopper.shoppi@webwirkung.ch",
[...]
    "DebtorNumber": 1,
    "CustomerSubjectId": 15,
    "CustomerContactSubjectId": 292,
    "BillingSubjectId": 0,
    "BillingContactSubjectId": 0,
    "ShippingSubjectId": 0,
    "ShippingContactSubjectId": 0,
[...]

Nach der ersten Bestellung erhält der Shopper in der Regel eine BillingSubjectId und eine ShippingSubjectId. Abhängig vom Mapping, das bei der Verarbeitung der Bestellung in Abacus durchgeführt wird, werden auch die BillingContactSubjectId und ShippingContactSubjectId gesetzt.

json
    "Id": "e6c7e1be-84c3-8926-2422-5df4d6f775a0",
    "EMail": "shopper.shoppi@webwirkung.ch",
    "Account": "shopper.shoppi@webwirkung.ch",
[...]
    "DebtorNumber": 1,
    "CustomerSubjectId": 15,
    "CustomerContactSubjectId": 0,
    "BillingSubjectId": 15,
    "BillingContactSubjectId": 292,
    "ShippingSubjectId": 15,
    "ShippingContactSubjectId": 292,
[...]

Bitte beachten: Alle Adressänderungen, die in Shopware vorgenommen werden, erfordern eine manuelle Anpassung in Abacus in J15, bevor eine Bestellung verarbeitet werden kann. Weitere Informationen finden Sie in der Dokumentation zum Bestellprozess.

Adressduplikaterkennung

Beim Import prüfen wir, ob die Adresse bereits in Shopware existiert. Für Rechnungs- und Lieferadressen durchlaufen wir alle in Shopware gespeicherten Kundenadressen.

In dieser Schleife prüfen wir, ob der Kunde eine Rechnungs-/Lieferadressen-ID besitzt.

Falls ja, prüfen wir, ob diese ID bereits in der Shopware-Adresse gespeichert ist. Bei einer Übereinstimmung prüfen wir nur Vor- und Nachnamen (falls die Adresse zwar gleich ist, aber unterschiedliche Personen für Rechnung und Lieferung zuständig sind).

Falls der Kunde keine Rechnungs-/Lieferadressen-ID besitzt, führen wir einen regulären Abgleich mit allen Feldern durch, wie z. B. Firmenname (falls angegeben), Vorname, Nachname, Straße, Ort, Postleitzahl und Land.

Adresse im Abacus geändert

Wenn die Adresse in Shopware in den benutzerdefinierten Feldern eine zugewiesene abacus_address_id besitzt (der Shopper wurde im Abacus anhand einer bestehenden Adresse angelegt), wird die Änderung im Abacus mit der bestehenden Adresse synchronisiert. Die einzige Ausnahme besteht bei einer Änderung des Vor- oder Nachnamens; in diesem Fall wird eine neue Adresse erstellt (siehe Abschnitt „Erkennung doppelter Adressen“ im Abschnitt „Adresse-Duplikaterkennung“).

Wenn die Adresse in Shopware keine zugewiesene abacus_address_id besitzt (der Shopper wurde ohne bestehende Adresse im Abacus angelegt), wird die Änderung im Abacus aufgrund der Erkennung doppelter Adressen als neue Adresse synchronisiert. Das Plugin vergleicht alle Felder der Adresse (siehe Abschnitt „Erkennung doppelter Adressen“ im Abschnitt „Adresse-Duplikaterkennung“).

Wichtig: Die Adressen im Abacus sind Subjekte. Daher werden Adressänderungen im Abacus von Shopper-Abonnements nicht erkannt. Um die Änderung der Abakus-Adresse zu synchronisieren, sollte die vollständige Kundensynchronisierung ausgeführt werden – webwirkung.abacus.shopper.synchronization.

Einmalig alle 24 Stunden geplant.