Prozessoptimiertes Auftragsmanagement für Hochzeit und Geburt: Automatisierte Glückwünsche mit TYPO3
Der Wunsch von babykarte.com, Kundenaufträge komplett online und ebenso schnell wie zuverlässig bearbeiten zu können, bedeutete für die Entwickler eine große Herausforderung. Es galt, ein System zu erstellen, in das Kunden, Grafiker, Druckereien und das Team selbst online eingreifen können. Vor der Projektvergabe an die Münchner Agentur S2 intermedia hatte das Unternehmen mehrere Lösungen in Betracht
gezogen. In Konkurrenz zu einer Website mit Shopsystem und
Datenbankschnittstelle zu einer individualisierten Warenwirtschafts- und Finanzbuchhaltungssoftware wie LX Office oder SQL
Ledger fiel schließlich die Entscheidung zugunsten einer
individuellen Programmierung komplett auf Basis von TYPO3.
Anforderungen an das Online-Auftragsmanagement-System: |
|
Argumente für das Auftragsmanagement auf Basis von TYPO3: |
|
Der Online-Workflow
Im Shop der TYPO3-Website, wird vom Kunden durch die Bestellung einer individuellen Karte der Workflow ausgelöst. Mit zahlreichen Produktmerkmalen und persönlichen Daten wird sie als Auftrag im Backend mit dem Eröffnungsstatus sichtbar. Der Produktpreis wird je nach Konfiguration der Karte entsprechend individuell kalkuliert. Die Auftragsverwaltung beginnt nun mit der Bearbeitung der Stamm- und Auftragsdaten, woraufhin automatisch eine PDF-Rechnung verschickt wird.
Je nach Bearbeitungsstand ordnet das System automatisch den entsprechenden Auftragsstatus zu. Der Status wiederum steuert die Sichtbarkeit des Auftrags in den unterschiedlichen Bearbeitungsfenstern der Backend Module. So sehen Grafiker nur dann die Karte in Ihrer Pipeline, wenn der Auftrag soweit fixiert ist und er im nächsten Schritt nun grafisch umgesetzt werden muss.
Nach Fertigstellung der individuellen Karten in Form einer Grafikdatei wird diese dem Auftrag hinzugefügt und auf dem Server hinterlegt. Der Kunde erhält automatisch eine E-Mail mit der Bitte um Freigabe der Karten in seinem Login-Bereich. Werden die Grafikdateien nach Einsicht bestätigt, gelangen Sie automatisch in die Warteschleife für die Druckerei.
Die Druckereien greifen unabhängig voneinander in das System ein und rufen alle druckfertigen und somit freigegebenen Daten komprimiert und automatisiert aus dem System ab. Die Kundendaten für den Versand werden gesondert als Tabelle in einer Datei ausgegeben. Nach Abschluss des Druckauftrags wird aus dem System der Druckerei die
UPS Trackingnummer in TYPO3 importiert und bezüglich des
Kunden-Auftrags der Status „versandt“ angezeigt. Die Zahlungseingänge wiederum werden den Aufträgen über einen Kontoauszugs-Import
automatisch zugeordnet.
Permanente Transparenz im Prozess
Der Kunde hat die Möglichkeit, während des gesamten Auftragsprozesses seine Stammdaten zu ändern, als auch den Bestellstatus oder die bereits vorhandenen Aufträge einzusehen. Nach Abschluss des Auftrags erhält der Kunde die Option, eine Beurteilung abzugeben, die durch eine Freigabe auf der Website automatisiert angezeigt wird. Für das Monitoring stehen der Verwaltung diverse statistische Auswertungen zur Verfügung. Im TYPO3-Auftragsmanagement-System werden mit Hilfe der PHP-Bibliothek „jpGraph“ [1] die gewünschten Statistik-Informationen für die gewünschten Zeiträume grafisch dargestellt.
Technische Realisierung
Schon zu Beginn der Projektplanung war klar, dass Umfang und Komplexität der Software wie so häufig mit der Zeit steigen würde. Es musste also eine flexible Basis geschaffen werden, mit der eine modulare Erweiterbarkeit garantiert ist. Besonders elementar war deshalb die Trennung von Programmlogik und Ausgabe – im Backend ebenso wie im Frontend. Da TYPO3 für die Entwicklung von Backend-Modulen keine oder nur sehr rudimentäre Templating-Mechanismen mitbringt, wurde die Template Engine „Smarty“ in das TYPO3-Framework integriert. Da Smarty eine auf PHP basierende frei erhältliche Templating-Engine ist, war sie für das Projekt sehr gut geeignet. Zudem bietet Smarty die Möglichkeit, eigene Template-Tags über Smarty-Plugins zu definieren und somit die Engine individuell zu erweitern.
Für die wichtigsten Frontend-Funktionen (Link, Thumbnail, Formular (piVars), Lokalisierung, RTE-Rendering) wurden darüber hinaus Wrapper-Plugins für Smarty entwickelt. Ebenso waren ähnliche Wrapper für einige Backend-Funktionen nötig, um unter anderem das von der TYPO3 Core Engine (TCE) bereitgestellte Formularhandling leicht nutzen zu können. Diese Vorarbeiten ermöglichten anschließend eine gesteigerte Flexibilität und Transparenz der Ausgabe-Schicht von entwickelten Backend-Modulen. Der zukünftige Aufwand für Erweiterungen oder zusätzliche Funktionen wird damit deutlich reduziert.
Die Extension „febe_smarty“
Eine überarbeitete Version der beschriebenen Entwicklung ist im TYPO3 Extension Repository unter dem Schlüssel „febe_smarty“ verfügbar. Sie richtet sich an Entwickler, die eine vollwertige Template-Engine in ihren eigenen Erweiterungen nutzen wollen und die Ausgabe-Schicht komplett im Template auslagern wollen. Die Bildgröße von Thumbnails beispielsweise ist auf diese Weise im Template definiert und nicht im PHP-Code. Die Extension „febe_smarty_example“ erleichtert den Einstieg mit Anwendungsbeispielen und Beispieltemplates.
Fazit
Die Kombination von TYPO3 mit Eigenentwicklungen war für den hier beschriebenen Anwendungsfall ideal. Gerade der Online-Zusammenfluss aus Website, Shop und Auftragsmanagment in einem System bringt viele Vorteile mit sich. Insbesondere die Zeitersparnis im gesamten Auftragsprozess ist durch die individuell programmierte Lösung enorm. Das System hilft dem Unternehmen, die Kunden wesentlich schneller und noch zuverlässiger zu bedienen und durch die Templateausgabe mit Smarty ist das System auch in Zukunft flexibel und erweiterbar. Dojo verbessert die Usability, indem es dabei hilft, die Anzeige der Auftragsdaten im Backend durch dynamisches Nachladen von Inhalten sehr übersichtlich zu gestalten. Der einfachen Integration weiterer Kartenarten in das System steht aufgrund der modularen Konzeption auch in Zukunft nichts entgegen. Das gesamte Projekt wurde auf Basis von TYPO3 4.1 mit Apache, PHP5, MySQL 4, ImageMagick und Ghostscript innerhalb von vier Monaten realisiert.
Technik | Zweck |
Smarty | Realisierung der Front- und Backend Darstellungen mit Hilfe der eigens entwickelten Smarty-Integration „febe_smarty“ |
Dojo | Nachladen von Inhalten innerhalb eines Datensatzes |
PEAR | Verwendung verschiedener PEAR-Pakete u. a. für die Komprimierung von Daten als ZIP-File |
fpdf | PHP-Klasse für die dynamische Generierung von PDFs. |
jpGraph | PHP-Bibliothek zur grafischen Darstellung der statistischen Auswertung. |