ShopFusion Benutzersynchronisation

ShopFusion kann die Benutzer und Benutzergruppen des Shops automatisch ins TYPO3 synchronisieren und bei Änderungen sofort aktualiseren. Voraussetzung dafür ist, dass Ihre ShopFusion Lizenz dieses Feature freischaltet. Falls Ihre Lizenz dafür ungeeignet sein sollte, sprechen Sie uns bitte einfach an.
Außerdem müssen Sie im Shopsystem die ShopFusion API aktiviert haben.

Funktionsweise der Synchronisation

Die Synchronisation von Benutzer- und Gruppendaten besteht aus zwei Teilen:

  1. Es gibt einen TYPO3 Scheduler Task, der auf regelmäßiger Basis Daten synchronisiert.
  2. Jedesmal, wenn ein Benutzer sich im Shop einloggt oder seine Benutzerdaten aktualisert, werden die Daten des Benutzers (on demand) im TYPO3 aktualisiert.

Der Shop ist dabei das führende System. Zu keinem Zeitpunkt werden Daten aus dem TYPO3 in den Shop Synchronisiert. Änderungen an den Benutzer- oder Gruppendaten, werden bei der nächsten Synchronisation überschrieben, sofern diese Felder übertragen werden.

Synchronisation per Scheduler Task

Scheduler Task Konfiguration Benutzersynchronisation

Per Scheduler Task haben Sie die Möglichkeit, sämtliche Benutzer und Benutzergruppen aus dem Shop, in einem Rutsch zu übertragen. Außerdem können Sie leere1) Benutzergruppen übertragen und veraltete2) Benutzergruppen und Benutzer im TYPO3 löschen3) lassen.

API URL

ShopFusion versucht, auf Basis Ihrer Extensionkonfiguration, den richtigen URL zur ShopFusion API des Shops zu ermitteln und zeigt den Vorschlag in diesem Feld an. Falls ShopFusion keinen sinnvollen Vorschlag machen kann, zeigt es für Magento den Wert http://shopdomain.tld/z19api/, bzw. http://shopdomain.tld/index.php?cl=z19api für OXID eShop an. Bitte überprüfen Sie in jeden Fall den URL und passen ihn ggf. an.

Magento
Die API ist direkt unterhalb Ihres Shops unter dem URL Segment /z19api/ erreichbar: http://shopdomain.tld/z19api/

OXID eShop
Die API ist in Ihrem Shop über den Parameter cl=z19api erreichbar: http://shopdomain.tld/index.php?cl=z19api

Hinweis
Wenn Sie den API URL in Ihrem Browser aufrufen, werden Sie aus Sicherheitsgründen, keine Antwort vom Shop erhalten.
Beachten Sie bitte die Logging Optionen, in den ShopFusion API Einstellungen im Shopsystem. Diese können Ihnen beim Debugging hilfreiche Informationen liefern.

Falls der API URL mittels .htaccess Authentifizierung geschützt ist, kann der Scheduler Task darauf nicht zugreifen. Bitte richten Sie in diesem Fall eine Ausnahmeregel, für den API URL oder für Anfragen auf den API URL von Ihrem TYPO3 aus, ein.

Sicherheitstoken

Geben Sie hier bitte eine maximal 32 Zeichen lange Zeichenkette ein, die exakt mit der hinterlegten Zeichenkette, in den ShopFusion API Einstellungen im Shopsystem, übereinstimmt. Leerzeichen am Anfang und am Ende der Zeichenkette, werden entfernt.

Hinweis
Dieser Token ist das Gegenstück zu dem Token, der im Shopsystem in den API Einstellungen der ShopFusion Konfiguration von Ihnen hintelegt wurde.
Dieser Token ist unabhängig von dem Token in der TYPO3 Extensionkonfiguration und ebenfalls unabhängig von dem Token in den ShopFusion Einstellungen des Shopsystems.

Timeout (Verbindungsaufbau)

Tragen Sie hier die maximale Zeitdauer4) ein, die ShopFusion maximal versuchen soll, eine Verbindung zur ShopFusion API des Shopsystems aufzubauen.

Timeout (Antwort)

Der hier eingetragene Wert definiert die maximale Zeitdauer5), die ShopFusion damit verbringen soll, Daten von der ShopFusion API des Shopsystems zu empfangen. Falls dieses Limit erreicht wird, obwohl noch Daten übertragen werden, bricht ShopFusion den Vorgang trotzdem ab.

Veraltete Benutzergruppen löschen

Ist diese Checkbox aktiviert, dann löscht6) ShopFusion die Frontend Benutzergruppen im TYPO3, die im Shop nicht existieren. Dies Betrifft jedoch nur Benutzergruppen, bei denen die Option: Wurde diese Benutzergruppe aus dem Shop Synchronisiert? Wenn deaktiviert, dann ignoriert ShopFusion diese Gruppe.
aktiviert ist. Dies ist bei Benutzergruppen nur dann standardmäßig der Fall, wenn ShopFusion die Benutzergruppe erzeugt hat.

Veraltete Benutzer löschen

Wenn diese Checkbox aktiviert ist, dann löscht7) ShopFusion die Frontend Benutzer im TYPO3, die im Shop nicht existieren. Dies Betrifft jedoch nur Benutzer, bei denen die Option: Wurde dieser Benutzer aus dem Shop Synchronisiert? Wenn deaktiviert, dann ignoriert ShopFusion diesen Benutzer.
aktiviert ist. Dies ist bei Benutzern nur dann standardmäßig der Fall, wenn ShopFusion den Benutzer erzeugt hat.

Leere Benutzergruppen importieren

Ist diese Checkbox aktiviert, dann importiert ShopFusion alle Benutzergruppen aus dem Shop. Also auch die Benutzergruppen, denen kein Benutzer zugewiesen ist. Ist diese Option deaktiviert, werden nur die Benutzergruppen im TYPO3 angelegt, denen auch Benutzer zugewiesen wurden.

Hinweis
Falls diese Option deaktiviert wird, dann löscht ShopFusion die leeren Benutzergruppen nicht im TYPO3. ShopFusion Synchronisert lediglich keine neuen, leeren Benutzergruppen. Leere Benutzergruppen werden jedoch gelöscht, falls diese im Shopsystem gelöscht wurden.

Log Level

Stellen Sie den Schweregrad ein, ab dem ShopFusion Statusmeldungen produzieren soll. Mögliche Optionen sind8):

  1. Error
  2. Warning
  3. Notice
  4. Info
  5. Debug

SystemLog verwenden

Aktivieren Sie diese Checkbox, damit ShopFusion die Statusmeldungen in das TYPO3 Systemlog speichert. Bitte beachten Sie, dass es sich hierbei nicht um das über das TYPO3 Backend erreichbare Protokoll handelt, welches in der sys_log-Tabelle gespeichert wird. Das TYPO3 Systemlog können Sie im TYPO3 Install Tool, unter All Configuration und dann dem Abschnitt systemLog, konfigurieren.

Log E-Mail-Adresse

Wenn Sie in dieses Feld eine E-Mail-Adresse eintragen, werden die von ShopFusion erzeugten Statusmeldunge an diese Adresse versendet. Es wird nur dann eine E-Mail versendet, wenn auch Statusmeldungen erzeugt wurden.

Synchronisation bei Benutzerlogin (on demand)

Wenn sich ein Benutzer im Frontend einloggt, werden seine Daten in das TYPO3 synchronisiert. Falls der Benutzer noch nicht im TYPO3 existiert, wird er angelegt. Falls der Benutzer einer Benutzergruppe angehört, die noch nicht im TYPO3 existiert, wird die Benutzergruppe ebenfalls angelegt.
Damit dieser Mechanismus funktioniert, muss der Benutzer sich mittels des Shop Loginformulars im Shop einloggen. Es funktioniert nicht, wenn Sie ein TYPO3 Loginformular verwenden.

Bei dieser Synchronisation werden keine Benutzer oder Benutzergruppen gelöscht und auch keine leeren Benutzergruppen ins TYPO3 übertragen. Das bedeutet, wenn Sie wollen, dass ShopFusion veraltete Benutzer oder Benutzergruppen löscht oder leeren Benutzergruppen überträgt, dann benötigen Sie hierfür einen Scheduler Task.

Wenn ein Benutzer eingloggt ist, werden seine Daten automatisch neu synchronisiert, sobald sich diese verändern, bspw. wenn er seine Daten im Kundenkonto bearbeitet.

Sie können das Feature Synchronisation bei Benutzerlogin in der Extensionkonfiguration aktivieren/deaktivieren: Sync user data on login/change

Welche Daten werden Übertragen?

Nachfolgend sehen Sie, einmal für Magento und einmal für OXID eShop, die Mappings von Shop-Benutzer/Gruppen-Daten zu TYPO3 Datenbankfeldern.

Magento

Benutzerdaten
TYPO3 DB Feld Magento Datenursprung
fe_users.username →getEmail()
fe_groups Siehe nachstehende Tabelle
fe_users.password →getPasswordHash()
fe_users.email →getEmail()
fe_users.first_name →getFirstname()
fe_users.middle_name →getMiddlename()
fe_users.last_name →getLastname()
fe_users.name →getFirstname()
→getMiddlename()
→getLastname()
fe_users.company →getCompany()
fe_users.zip →getPostcode()
fe_users.city →getCity()
fe_users.address →getStreet()
fe_users.telephone →getTelephone()
fe_users.fax →getFax()
fe_users.country →getCountry()
Benutzergruppendaten
TYPO3 DB Feld Magento Datenursprung
fe_groups.title →getData(„customer_group_code“)


Hinweis
Die Adressdaten (company, zip, city, address, telephone, fax, country) stammen aus →getDefaultBilling(). Fall dort keine Adressdaten gefunden werden, wird →getDefaultShipping() verwendet

OXID eShop

Benutzerdaten
TYPO3 DB Feld OXID eShop Datenursprung
fe_users.username ->oxuser__oxusername->value
fe_groups Siehe nachstehende Tabelle
fe_users.password ->oxuser__oxpassword->value
fe_users.email ->oxuser__oxusername->value
fe_users.name ->oxuser__oxfname->value
->oxuser__oxlname->value
fe_users.first_name ->oxuser__oxfname->value
fe_users.last_name ->oxuser__oxlname->value
fe_users.company ->oxuser__oxcompany->value
fe_users.zip ->oxuser__oxzip->value
fe_users.city ->oxuser__oxcity->value
fe_users.address ->oxuser__oxstreet->value
->oxuser__oxstreetnr->value
fe_users.telephone ->oxuser__oxfon->value
fe_users.fax ->oxuser__oxfax->value
fe_users.country ->getUserCountry()->value
fe_users.disable ->oxuser__oxactive->value
Benutzergruppendaten
TYPO3 DB Feld Magento Datenursprung
fe_groups.title ->oxgroups__oxtitle->value
fe_groups.hidden $group->oxgroups__oxactive->value

Individuelle Felder übertragen / Standardfelder anpassen

Sie können zusätzliche individuelle Felder übertragen oder die Übertragung von Standardfeldern verändern/unterbinden.
In den vorangegangenen Tabellen sehen Sie, welche Shop-Daten auf welches TYPO3 Datenbankfeld gemappt werden. Sie können diese Mappings verändern oder auch zusätzliche hinzufügen, indem Sie einfach an zwei Stellen den Aufbau eines PHP-Arrays anpassen.

Für die Synchronisation bei Benutzerlogin

Gehen Sie dazu einfach in die Shop Template Datei:

Magento

app/design/frontend/default/zimmer19/template/page/html/head.phtml

OXID eShop

application/views/shopfusion/tpl/layout/base.tpl

Sie finden dort den Abschnitt ###METADATA###, in dem ein Array $userData9), bzw. $sf_userData10), aufgebaut wird.
Die Keys repräsentieren TYPO3 Datenbankspalten in der fe_users-Tabelle. Die Spalten müssen bereits in der fe_users-Tabelle existieren. Es ist nicht möglich, Daten in anderen TYPO3 Tabellen zu speichern.
Eine Ausnahme stellt der Key usergroup dar. In ihm werden keine Benutzergruppen IDs gespeichert, wie dies im TYPO3 der fall wäre, sondern ein indiziertes Array von Benutzergruppendaten. Beachten Sie hierzu die vorangegangenen Tabellen, die den Aufbau dieses Arrays beschreiben.
Auch die Keys dieses Arrays müssen bereits existierende Datenbankspalten im TYPO3 sein, jedoch in der fe_groups Tabelle.

Sie können den Aufbau dieser Arrays beliebig anpassen. ShopFusion erwartet, dass wenigstens die Felder username und usergroup übertragen werden.

Für die Synchronisation per Scheduler Task

Gehen Sie dazu einfach in die ShopFusion-Modul-Datei:

Magento

app/code/local/Zimmer19/Api/controllers/IndexController.php

OXID eShop

modules/z19_sf_email/views/z19api.php

Sie finden dort den Aufbau des Benutzerdaten-Arrays $userData und des Benutzergruppendaten-Arrays $groupsArray. Es gelten die selben Regeln, die bereits in dem vorangegangenen Abschnitt für die Synchronisation bei Benutzerlogin aufgeführt wurden.

1) Keinem Benutzer zugewiesene
2) im Shop gelöschte
3) Die Datensätze werden lediglich als gelöscht markiert
4) , 5) in Sekunden
6) , 7) Die Datensätze werden als gelöscht markiert
8) in absteigender Reihenfolge des Schweregrads
9) Magento
10) OXID eShop
Drucken/exportieren
QR-Code
QR-Code shopfusion:konfiguration:benutzersynchronisation (erstellt für aktuelle Seite)