Diese Dokumentation beschreibt die Grundsätzliche Installation und Konfiguration von TYPOGENTO. Es wird nicht auf die Grundkonfigurationen von TYPO3 und Magento Commerce eingegangen. Alle Einstellungen wurden an einem TYPO3-System der Version 4.2.5 und einem Magento-System der Version 1.2.0.2 getätigt. Versionen vor oder nach diesen Versionen müssen nicht zwangsläufig mit dieser Dokumentation kompatibel sein. Es kann sein, dass für andere Versionen Änderungen an den beiden Plugins getätigt werden müssen.
Auf der Webseite von MagentoCommerce findet man unter den Erweiterungen den ExtensionKey der Extension. Diesen kopiert man sich und wechselt in den Administrations-Bereich der Magento-Installation.
Dann wechseln wir in das Magento-Modul „Magento-Connect“ um den Plugin zu installieren.
Im Magento-Connect-Modul muss man unter Settings „BETA“ auswählen. Zum Zeitpunkt als dieses Tutorial geschrieben wurde, befand sich die Extension noch im BETA-Stadium und kann nur mit der Einstellung „BETA“ installiert werden. Macht man diese Einstellung nicht, wird die Installation nicht klappen.
Um die Magento Extension zu installieren benötigt man folgenden Extension-Key: magento-community/Flagbit_Typo3connect
Weitere Informationen zu der Erweiterung findet man auf Magentoconnect unter diesem Link: http://www.magentocommerce.com/extension/693/typogento
Danach fügt man den vorher kopierten Extension-Key in die Suchmaske ein und installiert die Extension.
Ist die Extension installiert, finden wir im Menü der System- > Konfiguration unter Service einen Menüpunkt „TYPO3 Connector“.
Um Einstellungen dort zu tätigen, wählen wir also in der Hauptnavigation den Punkt „System“ und in dem sich öffnenden Menü den Punkt „ Konfiguration“.
Auf der Linken Seite öffnet sich nur ein Menü und ziemlich weit unten finden wir den von uns gesuchten Punkt.
Sollte dieser Menü-Punkt nicht gleich anklickbar sein, empfiehlt es sich, sich aus dem Magento-Backend aus zu loggen und direkt wieder einzuloggen. Der Punkt sollte dann funktional sein.
In diesem Menü können wir nun folgende Daten angeben:
Damit TYPO3 auf die Informationen von MagentoCommerce zugreifen kann, benötigt es Zugang zur API die von Magento bereitgestellt wird. Um Zugang zu bekommen, muss für TYPO3 ein sog. API-User angelegt werden. Dieser wird später in der Extension von TYPO3 hinterlegt.
Um diesen API-User anzulegen gehen wir wie folgt vor:
Unter dem Menüpunkt „System“ finden wir den Punkt „Webservice“. Unter „Webservice“ wiederum wählen wir zuerst „Gruppenberechtigung“ aus. Es muss eine neue Gruppe angelegt werden, die in Magento „Role“ genannt wird. Diese Gruppe benennen wir und vergeben die benötigten Daten.
Unter „Gruppenberechtigung Quellen“ wählen wir nun die Quellen aus, die unser API-User verwenden kann. Zwar verwendet Typogento Z.T. nur wenige Punkte dieser Berechtigung, aber es können in Zukunft noch weitere hinzukommen. Wir wählen also in diesem Punkt einfach in dem oberen Dropdown "alle" aus. Da diese API technisch nur im Backend verwendet wird, müssen wir keine Performance-Probleme beführchten, nur weil wir diese Auswahl nicht einschränken.
Haben wir diese Einstellungen gespeichert wählen wir im Menüpunkt „Webservice“ den Punkt „Benutzer“ und legen einen User an. Diesen User weisen wir der „Gruppenberechtigung“ die wir für TYPO3 angelegt haben zu und notieren uns die Informationen da wir sie in den nächsten Schritten für TYPO3 verfügbar haben müssen. Dieser User braucht zudem alle Informationen wie z.B. Email und einen API-Key. Dieser API-Key ist quasi das Passwort dieses Users.
Somit haben wir die nötige Konfiguration in Magento abgeschlossen.
Zuerst wechseln wir in den Extensionmanager und klicken auf die Magento Extension.
Hier müssen wir den Pfad zu unserer Magento-installation angeben. (Beispiel : /html/magento/)
Darunter müssen wir die Webadresse des Shops angeben. (Beispiel www.meinedomain.de/magento/)
Die abschließenden Slashes müssen angegeben werden!
Danach noch API-User und API-Key (die Informationen des API-Users den wir in Magento angelegt haben)
Hier kann dann auch angegeben werden, ob RealUrl automatisch aktiviert werden soll. Dies funktioniert jedoch nur, wenn Auto-Conf von RealUrl aktiviert und richtig konfiguriert ist.
Um die von Typogento benötigten header-informationen einzubinden, tragen wir im Roottemplate der Shopseite folgendes TS ein:
includeLibs.user_tx_fbmagento_pi1 = EXT:fb_magento/pi1/class.tx_fbmagento_pi1.php
page.headerData.30 = USER_INT
page.headerData.30 {
userFunc = tx_fbmagento_pi1->main
block=typo3header
}
Prinzipiell sollte unsere Webseite in der Lage sein, nun Produkte aus dem Magento-Shop einzubinden.Bestellungen werden zu diesem Zeitpunkt noch nicht funktionieren.
Out of the box passiert beim klicken auf ein (weiteres) Bild in der Detailansicht eines Produktes, dass dieses Bild in einem neuen Fenster geöffnet wird. Das funktioniert auch, nur leider wird die komplette TYPO3 Seite um das Bild gelegt.
Folgendes TS sollte das beheben:
[userFunc = tx_fbmagento_getvars(route|catalog)] && [userFunc = tx_fbmagento_getvars(controller|product)] && [userFunc = tx_fbmagento_getvars(action|gallery)]
page.10 >
page.10 = USER_INT
page.10 {
userFunc = tx_fbmagento_pi1->main
block=content
route=catalog
controller=products
action=gallery
nowrap=1
}
[global]
Bei diesem TS ist zu beachten, dass hier das Objekt page.10 überschrieben wird. Wird ein anderes Objekt zum rendern der Seite verwendet (z.B. seite.5) muss dieses überschrieben werden.
Das Beispiel verwendet unter page.10 folgendes TS:
page.10 = USER
page.10.userFunc = tx_templavoila_pi1->main_page
Der obere Schnipsel bewirkt, dass das hier verwendete TemplaVoila (zum Seiten rendern) nicht verwendet wird, wenn die Variablen (shop/catalog/action) gesetzt sind. Statt dessen, wird der entsprechende Block von Magento verwendet.
Die TYPO3 Extension sollte in der Lage sein alle Blöcke aus Magento einzubinden. Wir werden das hier am Beispiel der Blocks „right“ demonstrieren. Der Block „right“ muss derzeit auch auf allen Seiten des Shops eingebunden werden da er ein für den Bestellprozess nötiges JS zur Verfügung stellt.
Wer mit der „normalen“ (alten) Template-Variante arbeitet kann diesen Block einfach in einen subpart einbinden. Das funktioniert mit dem folgenden TypoScript:
page.10.subparts.contentright = USER_INT
page.10.subparts.contentright {
userFunc = tx_fbmagento_pi1->main
block=right
nowrap=1
}
Hiermit wird nun der Subpart „contentright“ gefüllt.
Benutzt man TemplaVoila kann man einfach einen Bereich des Templates mit einem Element von Typ „include Typoscriptobjekt“ mappen und als lib z.B. fogenden Code angeben:
lib.contentright = USER_INT
lib.contentright {
userFunc = tx_fbmagento_pi1->main
block=right
nowrap=1
}
Standardmäßig werden von Magento verschiedene Elemente in den Block „right“ eingebunden. Diese kann man natürlich anpassen, jedoch muss der Teil, der für den Bestellablauf vorgesehen ist, eingebunden werden.
Eine weitere Bedingung ist, dass dieser Block „right“ in einem Div-Container mit der Klasse class=“ <div class=“col-right side-col“> “ liegt. Entweder platziert man den Subpart in diesem Container oder man baut Ihn in das TypoScript mit ein. Folgender Code bindet den Block inklusive dem zugehörigen Container ein. Verwendet wird ein COA:
Old Fashioned Templating:
page.10.subparts.contentright = COA
page.10.subparts.contentright {
10 = TEXT
10.value = <div class="col-right side-col">
20 = USER_INT
20{
userFunc = tx_fbmagento_pi1->main
block=right
nowrap=1
}
30 = TEXT
30.value = </div>
}
Templavoila Variante:
lib.contentright = COA
lib.contentright{
10 = TEXT
10.value = <div class="col-right side-col">
20 = USER_INT
20{
userFunc = tx_fbmagento_pi1->main
block=right
nowrap=1
}
30 = TEXT
30.value = </div>
}

Möchte man die Links "Mein Benutzerkonto | Mein Warenkorb | Zur Kasse | Anmelden" in sein Template einbinden kann man auch das per TS tun.
lib.toplinks = USER_INT
lib.toplinks{
userFunc = tx_fbmagento_pi1->main
block=top.links
nowrap=1
}
Es gibt zwei Modelle, wie man den Magento-Shop in TYPO3 einbinden kann. In Modell Eins werden sowohl die Kategorien (wahlweise auch nur teile davon) als auch die jeweiligen Produktübersichten und Produktdetails eingebunden. Dieses Modell ist wohl das meist verwendete. Kategorisierung und das Pflegen der Produkte sowie deren Inhalte werden komplett über die Magento-Administration erledigt.
Das zweite Modell ist, dass nur einzelne Produkte in TYPO3 eingebunden werden. So wird quasi für jedes Produkt eine eigene Seite in TYPO3 angelegt und u.a. die Produkte eingebunden. Dies ist bei einer geringen Produktanzahl dann zu empfehlen, wenn man z.B. neben den Produkten noch Produktspezifische Inhalte für jedes Produkt einzeln präsentieren möchte. Diese Inhalte können dann per TYPO3 eingebunden werden, ohne dass sich der Redakteur mit der Administration von Magento auskennen muss.
Einbinden einer Kategorienavigation
Man kann über TypoScript auch die komplette Kategorie-Navigation aus Magento einbinden. Dafür sollte man das folgende TypoScript verwenden:
includeLibs.user_tx_fbmagento_navigation = EXT:fb_magento/lib/class.tx_fbmagento_navigation.php
lib.magentonavi = HMENU
lib.magentonavi{
special = userfunction
special{
userFunc = user_tx_fbmagento_navigation->categories
pid=7
startcategory=3
}
expAll = 0
1 = TMENU
1 {
itemArrayProcFunc = user_tx_fbmagento_navigation->clear
wrap = <ul style="text-align: left">|</ul>
noBlur = 1
expAll = 1
wrap = <ul id="sub-level1">|</ul>
NO {
wrapItemAndSub = <li class="first">|</li> |*| <li>|</li> |*| <li class="last">|</li>
}
}
}
Hier muss die PID unter special auf die Seite gesetzt werden, in welcher magento eingebunden wird. Der Wert „startcategory“ gibt den „Punkt“ an, ab welchem die Kategorien aus Magento eingebunden werden sollen.
Es wird mit diesem TS also die Kategorie-Navigation eingebunden. Damit diese Funktioniert, müssen wir jetzt noch auf der Seite die wir unter special angegeben haben den Plugin platzieren. Hierfür wechseln wir ins Page-Modul und wählen als Inhaltselement den Plugin aus. Im Element selbst, wählen wir Produktliste aus und entscheiden ab welchem Punkt die Produktliste eingebunden werden soll. Sinnvoll wäre hier die gleiche Position die wir in der Kategorie-Navigation gewählt haben.
Vorsicht: Wird die Kategorienavigation innerhalt eines COA verwendet, darf die Anweisung includeLibs.user_tx_fbmagento_navigation = EXT:fb_magento/lib/class.tx_fbmagento_navigation.php ausserhalb dieses COA plaziert werden!
Nach dem Installieren der Extension in TYPO3 steht einem in TYPO3 beim Anlegen oder Editieren einer weiteren "Website Language" ein neues Feld zur Verfügung. Hier kann man für die jeweilige sprache eine Store-View aus Magento per dropdown angeben. Diese Store-View wird dann der jeweiligen TYPO3 Sprache zugewiesen.
Für diejenigen, die auto-conf verwenden gibt es hier nix zu tun. RealUrl funktioniert out of the box.
Für alle diejenigen die RealUrl anders konfigurieren wollen, hier ein Beispiel:
'postVarSets' =>
array (
'_DEFAULT' =>
array (
'shoparticle' =>
array (
0 =>
array (
'GETvar' => 'tx_fbmagento[shop][s]',
),
),
'shop' =>
array (
0 =>
array (
'GETvar' => 'tx_fbmagento[shop][route]',
),
1 =>
array (
'GETvar' => 'tx_fbmagento[shop][controller]',
),
2 =>
array (
'GETvar' => 'tx_fbmagento[shop][action]',
),
3 =>
array (
'GETvar' => 'tx_fbmagento[shop][id]',
'userFunc' => 'EXT:fbmagento/lib/class.tx_fbmagento_realurl.php:&tx_fbmagento_realurl->idRewrite',
),
4 =>
array (
'GETvar' => 'tx_fbmagento[shop][category]',
'userFunc' => 'EXT:fbmagento/lib/class.tx_fbmagento_realurl.php:&tx_fbmagento_realurl->categoryRewrite',
),
5 =>
array (
'GETvar' => 'tx_fbmagento[shop][product]',
),
),
'shoppage' =>
array (
0 =>
array (
'GETvar' => 'tx_fbmagento[shop][p]',
),
1 =>
array (
'GETvar' => 'tx_fbmagento[shop][order]',
),
2 =>
array (
'GETvar' => 'tx_fbmagento[shop][dir]',
),
),
Falls Ihr Fragen oder Anregungen habt, freuen wir uns über jegliche Rückmeldung. Bitte schickt uns einfach eine Email an docu(at)typogento.com.