www.artgrafica.de
Kunde
ArtGrafica - Eine Marke der EXCLUSIVCARDS GmbH, erstellt Weihnachts- und Grußkarten für den gewerblichen Bedarf. Firmen können über Artgrafica Karten zu bestimmten Anlässen, wie Weihnachten oder Fimenjubiläen, mit individuellen Inhalten bestellen und an Ihre Geschäftpartner, Kunden oder Mitarbeiter versenden.
Unter anderem weil die zur Verfügung stehenden Möglichkeiten bei dem Karteneindruck recht komplex sind, war dieser Prozess bislang recht Personalintensiv, da die Kunden meist individuelle telefonische Unterstüzung beim Bestellen Ihrer Karten benötigten. Um hier Abhilfe und dem Kunden neue Möglichkeiten zu schaffen wurde bei uns ein Konfigurationssystem zur personalisierten Kartenkonfiguration beauftragt.
Auftrag
Es sollte ein Konfigurationssystem für Weihnachts- und Grußkarten geschaffen werden, welches alle möglichen Bestelloptionen der Firma komplett abdeckt. Alle sichtbaren Optionen sollten "On-the-fly" in eine Kartenvorschau gerendert werden, dass der Kunde schon einen Eindruck seiner Karte während der Bestellung erhält. Um den Konfigurator musste eine Website für das Unternehmen geschaffen werden. Zusätzlich zu den Karten sollte ein Shop für nicht konfigurierbare Artikel des Unternehmens geschaffen werden, in dem Zusatzartikel wie Weihnachts-CDs, Briefpapier, Kuverts und vieles anderes verkauft werden sollte.
Details zur technischen Umsetzung
Für den Konfigurator wurde die Struktur der Konfigurationsoptionen in logische, atomare Schritte zerlegt. Diese atomaren Elemente wurden als Klasse modelliert und über Vererbung von einer gemeinsamen Basisklasse "ConfigurationElement" abgeleitet, so dass ein gemeinsamer, durch ConfigurationElement vorgegebener Methondenvorrat vorhanden ist. Die einzelnen Konfigurationsoptionen, welche Reihenfolge und welche Hierarchie die Elemente haben, wo - wenn es sich um ein grafisches Element handelt - es auf der Karte ausgegeben wird, wie teuer es ist etc. wird in der Datenbank gespeichert. In der Klasse "Configurator" wird beim laden einer Karte mit dazugehöriger Konfiguration aus der Datenbank gelesen. Für jeden Konfigurationsschritt wird ein Objekt der zugehörigen Konfigurationselementklasse instantiiert und an einen Array von Konfigurationelementen in der Konfiguratorklasse angehängt.
Der Vorteil dieses Vorgehens ist einfach. Für alle Operationen welche die gesamte Kartenkonfiguration betreffen, wie "Ermittlung des Preises", "Generierung der Grafik" etc. kann über den Array iteriert werden und die entsprechenden Methoden aus den Konfigurationsobjekten geholt werden. Hierbei kann das Konfigurationsobjekt nach den aus der DB geladenen Informationen entscheiden ob es die Ausführung einer Methode abbricht oder nicht.
Die Komplexität der Konfigurationsoptionen konnte somit runtergebrochen werden auf die einzelnen Elemente und ist somit gut überschaubar und bewältigbar geworden.
Weiter können durch die Struktur sämtliche benötigten Ausgaben, wie Navigation etc. einfach generiert werden. Jedes Konfigurationselement muss ein paar abstrakte, in ConfigurationElement deklarierte, Get-Methoden, welche Inhalte für die anzeigbaren Bereiche zurück geben überschreiben. public function getChoicePane(): String gibt Beispielsweise den Inhalt für den Auswahlbereich neben der Vorschau zurück oder public function getSelectBox():String gibt die Selectbox für die Hauptnavigation zurück. In den Formularelementen der jeweiligen Bereiche sind die CE-Identifikationsmerkmale als Parameter mit eingearbeitet, sodass Requestverarbeitende Methoden im Konfiguration die Möglichkeit haben die Parameter automatisiert auszuwerten und die richtigen Folgeschritte einzuleiten. Man erhält sozusagen eine sich selbststeuerndes System.
Bei Ansicht Hauptnavigation kann die Struktur der einzelnen Konfigurationoptionen gut erkannt werden.
Website






