TYPO3 Commerce nun im TER verfügbar: Online-Shop-Extension für TYPO3
Die lange Planungsphase, in der technische Grundlagen wie Datenbank-
und Klassenkonzepte diskutiert und festgelegt wurden, hat zu einer
durchdachten und gut konzipierten Extension geführt. Das grundlegende
technische Konzept hat dabei vorgesehen, dass möglichst viele
TYPO3-Mechaniken übernommen oder adaptiert werden. So können mit TYPO3 Commerce Produkte und Kategorien in verschiedenen Sprachversionen dargestellt werden. Diese können sowohl in einer Einbaum- als auch einer Mehrbaumdarstellung verwaltet werden. Die Kunden werden dabei als fe_user, Adressen als tt_address angelegt. Datensätze und Preise werden mit moneylib formatiert. Diese Integration in die vorhandenen Konzepte erlaubt bei der Implementierung eines Shops die Nutzung weiterer Extensions, etwa zur Registrierung der User.
Der Produktbaum ist dabei hierarchisch in Kategorien, Produkte und Artikel aufgeteilt. All diese Elemente können durch Attribute und Attributwerte näher klassifiziert werden. Diese Werte können dabei ebenso zur Darstellung auf der Webseite genutzt werden wie auch zur Auswahl der Artikel auf Basis von verschiedenen Werten. Zur Darstellung dieser Abhängigkeiten wurden im Rahmen der Commerce-Entwicklung weitere Extensions wie Graytree und Dynaflex entwickelt, die mittlerweile als eigenständige Extensions im TER verfügbar sind.
Die entstehenden Daten werden dabei in einer SQL-Datenbankstruktur
abgelegt, wobei die verwendeten DynaFlexforms dazu genutzt werden, die Datenbankrelationen im Backend darzustellen. Beim Ändern werden die Daten über Hooks in die ent-
sprechenden Datenbanktabellen
geschrieben, sodass diese die eigentlichen Daten beinhalten. Die
Felder für die Flexforms werden dabei nur zur Ablage der XML-Daten
genutzt und sollten nicht weiter beachtet werden.
Diese Strukturierung erlaubt auf Basis der SQL-Daten auch eine
hinreichend schnelle Abfrage der Daten. So können problemlos
übersichtliche Auswahlassistenten, wie zum Beispiel auf der Homepage von
Kneipp, erstellt werden.
Die Anzeige im Frontend wird durch eine Klassenbibliothek gesteuert. Eine ausführliche Dokumentation dieser Klassen ist online unter [1] verfügbar. Die Vollständigkeit dieser automatisch erstellten Dokumentation zeigt dabei auch, dass von Anfang an auf der Basis von einheitlichen Coding- und Dokumentationsrichtlinien programmiert worden ist. Zur Darstellung im Frontend stellt Commerce fünf unterschiedliche Frontend-Plugins zur Verfügung:
Plugin | Beschreibung |
PI1 | Darstellung des Produktbaums |
PI2 | Warenkorb |
PI3 | Kassenprozess |
PI4 | Adressverwaltung |
PI6 | Rechnungserstellung |
Die grundlegende Konfiguration dieser Plugins kann über TypoScript-Konstanten gesteuert werden. Sollten hier spezielle Anpassungen vorgenommen werden, so lohnt ein Blick in die TypoScript-Konfiguration oder die Hooks der jeweiligen Klassen von Commerce.
Im Backend installiert TYPO3 Commerce vier verschiedene Module:
Plugin | Beschreibung |
Category | Bearbeitung des Produktbaums |
Orders | Bearbeitung der Bestellung |
Systemdata | Pflege von Attributen, Lieferanten und Herstellern |
Statistics | Statistische Auswertung |
Integration
Das Modul „Orders“ gibt dem Redakteur die Möglichkeit, Bestellungen direkt im TYPO3-Backend zu verwalten und zu bearbeiten. Dazu installiert TYPO3 Commerce verschiedene Sysfolder als Speicherort für die Bestellungen. Die Verarbeitung der Bestellung geschieht durch das Verschieben der Bestellungen in andere Ordner. Dies kann sowohl separat für jede Bestellung als auch in einem Block für mehrere Bestellungen geschehen.
Die Entwickler haben hier bereits innerhalb von TYPO3 Commerce die Möglichkeit geschaffen, bei der Verschiebung der Bestellungen Aktionen über Hooks auszulösen. Dadurch können Aufträge in eine Warenwirtschaft exportiert oder weitere Aktionen ausgeführt werden. Auch ein Versand von E-Mails an Kunden und beliebige weitere Adressen ist in TYPO3 Commerce integriert.
Im Bereich Statistiken können Umsatz, Anzahl der Artikel sowie die Zahl der Bestellungen pro Sysfolder und für den Gesamtshop angezeigt werden. Da hier bei einem großen Shop zu viele Daten für eine „on-the-fly“-Auswertung zusammenkommen, ist bereits eine Aggregation der Daten als TYPO3-CLI-Skript implementiert.
Ausbaufähig und Zukunftssicher
Bereits während der Planungsphase sind viele Ideen, Anwendungsfälle und Spezialanwendungen diskutiert worden, bei denen TYPO3 Commerce möglicherweise eingesetzt werden könnte. Die notwendigen Grundlagen für Erweiterungen und Anpassungen sind bereits geschaffen worden. So sind die Klassen für die Anzeige so variabel gehalten, dass weitere Felder über Hooks hinzugefügt werden können. Nach einer Definition dieser Felder im TypoScript werden diese auch sofort im Frontend angezeigt. In der Kasse ist die Implementierung eigener Payment-Schnittstellen als eigenständige Extension hier genauso vorgesehen wie die Übergabe der Bestellung an externe Systeme.
TYPO3 Commerce ist bereits in vielen Projekten im Einsatz, wie die Liste unter [2] verdeutlicht. In diesen Projekten wurden teilweise spezielle Anforderungen an Commerce getestet und entwickelt. So verwaltet die Webseite von hpnielsen.dk über 40.000, heimwerker.de sogar über 60.000 Produkte. Bei www.kneipp.de ist eine Anbindung an Navision umgesetzt worden, weitere Anbindungen wie Übergabe an AfterBuy oder generische Übergabe an Payment-Dienstleister sind ebenfalls bereits erfolgreich im Einsatz. TYPO3 Commerce hat also bereits heute einen Stand erreicht, der produktiv eingesetzt werden kann.
Die Zukunft von TYPO3 Commerce
Das Entwicklerteam bearbeitet derzeit Bugs und Feature-Requests aus dem TYPO3-Bugtracker [3] und aus der englischsprachigen Mailingliste [4]. Die aktuellen Entwicklungen werden dabei zunächst im TYPO3xdev Subversion Repository [5] eingepflegt und auf Referenzinstallationen getestet. Danach werden Bugfixe und Features in die offizielle TER-Version aufgenommen. Wer nicht so lange warten möchte, kann bereits jetzt die Nightly Builds [6] testen. Auf der TYPO3-Wiki-Seite von Commerce werden die aktuellsten Entwicklungen zusammengefasst – hier gibt es auch eine Liste der bestehenden Onlineshops.
Auch in Zukunft soll TYPO3 Commerce intensiv weiterentwickelt werden. Als nächstes steht der Launch einer Webseite für das Projekt an. Hier sollen Dokumentationen gesammelt und ein Beispiel-Shop angelegt werden. Das Team hat einige Punkte auf der To-do-Liste und sucht für folgende Aufgaben noch Sponsoren:
- Erstellung einer Dokumentation
- Erstellung eines Affiliates-Systems
- Integration weiterer Payment-Dienstleister
- Erstellung eines Gutschein-Systems
- Integration in Workspaces
- Integration in IRRE
- Neue Konzeption des Kassenprozesses
- Erstellung von Frontendmodulen für einen Kundenbereich
Sponsoren
Die Entwicklung von Commerce wurde maßgeblich von den Firmen Marketing Factory Consulting GmbH aus Düsseldorf sowie e-netconsulting KG und n@work Internet Informationssysteme GmbH aus Hamburg unterstützt. Neben den Kernentwicklern Thomas Hempel, Volker Graubaum und Ingo Schmitt haben sich bereits jetzt viele weitere Entwickler an dem Ausbau der Extension beteiligt.