Aufbau Produktkatalog für mehrsprachige Website

Der Produktkatalog bildet das Kernstück der Webseite und wird für jedes Land entweder innerhalb des z.B. SAP Moduls CatMan, einem anderen Werkzeug oder direkt im TYPO3 Backend Modul gepflegt. Produktinformationen, welche sich im CatMan befinden, können mit Hilfe eines Produkt Importers (Aggregator) in das CMS importiert werden.

Weiterhin können Redakteure über ein Backend-Modul des TYPO3-CMS auf den importierten Produktkatalog zugreifen und ggf. Änderungen (Pflege von Metadaten, Formatieren von Inhalten etc.) an diesem vornehmen.

Der Produktservice stellt eine standardisierte Schnittstelle via HTTPS für externe Tools zur Verfügung, um Informationen über Produkte als JSON-Format abzufragen.

Die TYPO3 Produktkatalog-Extension stellt neben dem o.g. Backend-Modul verschiedene Frontend-Plugins zur Anzeige von Produktübersichtsseiten und Produktdetailseiten bereit.

Datenbank

Als Datenbank Managementsystem wird MySQL 5.5.x verwendet. Für die Struktur der Datenbank orientieren wir uns an den Spezifikationen von TYPO3, insbesondere den Extbase Konventionen. Die Beschreibung von Produkten und Katalogen durch unterschiedliche, generische Attribute mit Hilfe des EAV-Modells wurden ebenfalls problemlos mit Extbase programmiertechnisch, als auch datenbanktechnisch abgebildet.

Produkt Importer (Aggregator)

Grundsätzlich wurde der Produktimporter als TYPO3-Task entwickelt und im Backend in das Planer-Modul (Scheduler) integriert. Da das Sammeln und Aggregieren der Produktdaten vom CatMan in unregelmäßigen Zeitabständen stattfindet, wird der Task zunächst nicht von einem Cron-Job gestartet, sondern von einem Redakteur oder Administrator manuell initiiert – könnte aber jederzeit automatisiert werden. Die Produktinformationen werden vom CatMan-Modul Export, ggf. im BMEcat-Format bereitgestellt.
Für umfangreiche Produktkataloge und demzufolge große XML-Exporte empfehlen wir die Entwicklung eines Importers, welcher für das Parsen der XML-Datei den SAX-Parser verwendet, da dieser effizienter mit großen Dateien umgehen kann.  Dieser überträgt die exportierten Daten in die interne Datenbank des CMS.

Anzeige von Produkten im Frontend

Die Erfahrung mit Produktkatalogen in vergangenen Projekten zeigte, dass es nicht immer sinnvoll ist, ein Plugin mit dem gesamten Katalog auf einer Singleview Seite zu platzieren.

Nachteile sind vor allem in der für Suchmaschinen unfreundlichen URL Struktur, internen Verlinkung und das aushebeln des TYPO3 Navigations Konzeptes zu sehen. Redaktionelle Beiträge zu den Produkten lassen sich ebenfalls nur mühsam platzieren.

Alternativ kann automatisiert oder manuell zu jedem Produkt eine s.g. Produktseite innerhalb des TYPO3 Seitenbaums angelegt und für die Ausgabe der Produktdetails genutzt werden. Das hat den Vorteil, dass spezielle vom TYPO3 bereitgestellte Funktionen, wie beispielsweise die Pflege der Metadaten (SEO) genutzt werden können.

Redakteure haben zusätzlich die Möglichkeit, Inhalte wie Texte, Bilder, Videos zu jedem Produkt einzupflegen, ohne den Datenbestand des Datenführenden Systems zu verändern.

Neben dem eigentlichen Import erfolgt eine Synchronisation der verlinkten Assets mit der Celum Mediendatenbank. Wir empfehlen für eine optimale Nutzung von Celum innerhalb von TYPO3, den Einsatz des seit Version 6.0 im TYPO3-Core integrierten File Abstraction Layer (FAL). Standardmäßig abstrahiert das neue FAL-System das Fileadmin-Verzeichnis, ist aber auch in der Lage, externe Speicher s.g. Remote Storages einzubinden. Dadurch ist es möglich, die Mediendaten von Celum so in das TYPO3 CMS zu integrieren, dass sie wie Lokale erscheinen. Für Remote Storages wie WebDav oder Amazon S3 existieren bereits Lösungen zur Integration in das neue FAL-System von TYPO3.