TYPO3 und xt:Commerce synchronisieren: Aus zwei mach eins
Ein CMS mit Benutzerbereich und integriertem Online-Shop – so sieht eine typische Kundenanforderung aus, mit deren Umsetzung Internetagenturen häufig beauftragt werden. Fällt die Entscheidung auf TYPO3 in Kombination mit xt:Commerce, so erweitert sich die Anforderung, da die Nutzerdaten beider Systeme konsistent gehalten werden müssen. Das ist auch sinnvoll, da jeder Nutzer sonst zwei unterschiedliche Registrierverfahren auf einer Internetseite durchlaufen müsste.
Kurzbeschreibung
Die Extension „edit_xtcuserregister“ synchronisiert bei der Neuanlage (Registrierung) und der Änderung der Frontend-Benutzerdaten in TYPO3 oder xt:Commerce den Benutzereintrag in beiden Systemen. Der Login wurde ebenfalls angepasst: Das Einloggen eines Benutzers in TYPO3 sorgt automatisch dafür, dass der Benutzer auch in xt:Commerce eingeloggt ist (Single Sign-on). Das gilt analog auch für das Einloggen in xt:Commerce. Darüber hinaus wird für die Registrierung in TYPO3 das Feld „Umsatzsteuer-Ident-Nummer“ zur Verfügung gestellt. Das Feld wird, wie auch in xt:Commerce, über das Gateway vom Bundesamt für Finanzen geprüft.
Die Erweiterung besteht also zum einen aus der TYPO3-Extension, zum anderen aus einem xt:Commerce-Modul. Mit der Installation wird die Synchronisation der Benutzerdaten zwischen TYPO3 und Shopsystem möglich, außerdem ist die Registrierung und Anmeldung nur noch bei einem der beiden Dienste erforderlich.
Schnittstellen
Das Konzept für die Synchronisation setzt auf den bewährten Funktionalitäten beider Systeme auf. Auf die Entwicklung separater Registrier- oder Login-Extensions für TYPO3 oder eigenständiger Module für xt:Commerce wurde von Beginn an verzichtet.
Für TYPO3 fiel die Wahl auf die Extension „sr_feuser_register“, die standardmäßig für die Registrierung von Frontend-Benutzern in TYPO3 eingesetzt wird. Durch das integrierte Hook-Konzept stellt „sr_feuser_register“ bereits alle funktionalen Schnittstellen für die Synchronisation zur Verfügung. Da die Login-Funktionalität bereits im TYPO3-Core-System enthalten ist, musste keine spezielle Login-Extension für das Single Sign-on erweitert werden.
Bei xt:Commerce fehlen solche einfachen Erweiterungsmöglichkeiten: Hook-Konzepte gibt es nicht, und separate Module für Registrierung oder Login stehen nicht zur Verfügung. Die meisten Erweiterungen werden durch direkte Veränderungen in den Systemdateien installiert. Insgesamt sieben Systemdateien von xt:Commerce mussten für das Modul „edit_xtcuserregister“ angepasst werden. Die Änderungen in diesen Dateien sind allerdings sehr übersichtlich, da die wesentlichen Funktionalitäten in separate PHP-Dateien ausgelagert sind, die im Verzeichnis „typo3link“ abgelegt wurden.
Kommunikation
Die gesamte Kommunikation zwischen TYPO3 und xt:Commerce wird über die PHP-Extension „cURL“ gesteuert. Bei der Wahl eines Providers muss beachtet werden, dass „cURL“ nicht immer zur Standardinstallation von PHP gehört.
Ablauf der Registrierung aus TYPO3
Der Ablauf der Registrierung ist für die Extension „edit_xtcuserregister“ nicht fest vorgeschrieben. So kann zum Beispiel über die Extension „sr_feuser_register“ nach dem Erfassen der Benutzerdaten eine E-Mail mit einem Aktivierungslink zur Bestätigung der Registrierung versendet werden. Der Registrierungsprozess würde dann wie folgt aussehen:
Ablauf der Registrierung aus xt:Commerce
xt:Commerce bietet nicht so umfangreiche Einstellungsparameter für die Registrierung wie TYPO3. Bestimmte Pflichtfelder sind vorgeschrieben, und einige optionale Felder können aktiviert beziehungsweise deaktiviert werden. Nach Abschluss der Registrierung versendet xt:Commerce eine E-Mail über die erfolgreiche Anmeldung im System, ein Aktivierungslink zur Bestätigung der Registrierung ist nicht vorgesehen.
Das „edit_xtcuserregister“-Modul schaltet bei der Registrierung den Versand der E-Mails von xt:Commerce vollständig ab. Das hat den Vorteil, dass alle E-Mails für die Registrierung nur noch über das flexiblere System von TYPO3 versendet werden.
function T3CreateAccount() { $GLOBALS['skip_create_account_email'] = true; //false = Mail wird versendet }
Listing 1
Im Codebeispiel ist der Versand von E-Mails aus xt:Commerce deaktiviert.
Über TYPO3 wird eine E-Mail mit Aktivierungslink für die Bestätigung
der Registrierung versendet. Soll die E-Mail-Funktion von xt:Commerce wieder aktiviert werden, so
muss die Variable „skip_create_account_email“ in der Datei
„typo3link/t3sync_account.php“ auf false gesetzt werden.
Single Sign-on
Voraussetzung für die Single-Sign-on-Funktionalität ist, dass beide Systeme unter derselben Internet-Domain erreichbar sind. Nach der Installation ist die Login-Funktionalität in xt:Commerce standardmäßig aktiviert. Soll der Login komplett deaktiviert werden, so muss die Variable „Typo3LoginEnabled“ in der Datei „typo3link/t3sync_config.php“ auf false gesetzt werden.
$Typo3LoginEnabled = false; //true aktiviert den Single Sign-on bei xt:Commerce
Listing 2
In TYPO3 ist der Login direkt bei der Installation der Extension „edit_xtcuserregister“ konfigurierbar.
Installation und Konfiguration
Die Extension „edit_xtcuserregister“ wird über den Extension Manager von TYPO3 installiert. Im „res“-Verzeichnis der Extension liegt auch das Installationspaket für xt:Commerce (xtc.zip), dessen Installation genau wie bei anderen xt:Commerce-Modulen durchgeführt wird. Alle Installations- und Konfigurationsschritte sind ausführlich in der beigelegten Dokumentation beschrieben, auf der Internetseite des Herstellers wurden außerdem ein Testsystem sowie ein Forum für Fragen und Anregungen [1] eingerichtet.
Für die Installation in TYPO3 muss die Extension „sr_feuser_register“ in der Version 2.5.1 installiert sein, da in der neueren Version 2.5.8 die Softwarestruktur verändert wurde. Ein kompatibles Update von „edit_xtcuserregister“ soll Ende Mai 2008 veröffentlicht werden.
Beispielprojekt badgepoint.com
Auf der Internetseite der Firma badgepoint Namensschilder Systeme GmbH wurde die Extension „edit_xtcuserregister“ zum ersten Mal für den regulären Betrieb installiert. Die Registrierung in xt:Commerce wurde komplett abgeschaltet und durch eine zentrale Registrierung in TYPO3 ersetzt, die sowohl für das Portal als auch für den Shop gilt.
Fazit
Mit der Extension „edit_xtcuserregister“ ist es möglich, Frontend-Benutzerdaten zwischen TYPO3 und xt:Commerce zu synchronisieren. Allein das Design der Internetseite entscheidet darüber, ob der Nutzer tatsächlich zwei unterschiedliche Systeme wahrnimmt.
Sehr geehrter Herr Schild,
zunächst vielen Dank für die wirklich ausführlich und sehr schöne Anleitung zur Integration von Typo3 und XTCommerce.
Dürfte ich höflich noch eine Bitte äußern. Wo könnte man die erwähnte Dokumentation finden(vgl. ganz unten)?
Im Extension Ordner kann ich sie nicht finden. Das ist bei mir: „C:\inetpub\wwwroot\GimbaTypo3\typo3conf\ext\edit_xtcuserregister\res\xtc“
…der Extension liegt auch das Installationspaket für xt:Commerce (xtc.zip), dessen Installation genau wie bei anderen xt:Commerce-Modulen durchgeführt wird. Alle Installations- und Konfigurationsschritte sind ausführlich in der beigelegten Dokumentation beschrieben,…
Beste Grüße und herzlichen Dank
ihr
Axel Arnold Bangert
ich denke, dass es das ist:
http://typo3.org/documentation/document-library/extension-manuals/edit_xtcuserregister/1.0.5/view/1/6/
Beste Grüße
Axel Arnold Bangert, Herzogenrath
Hallo Herr Bangert,
wie ich sehe haben Sie schon alles gefunden – oder?
Beste Grüße
Michael Schild