Bestellprozess – für einen sauberen Ablauf

Im Sommer 2022 meldete sich unsere Familie für den Weihnachtsmarkt im Dorf an, um Flammkuchen zu verkaufen – ein mutiger Schritt, da wir abgesehen von einem Holzofen keinerlei Vorbereitungen oder Erfahrungen hatten. Mit Enthusiasmus und Abenteuerlust stellten wir uns der Herausforderung. Am Tag des Weihnachtsmarktes waren wir um 11:00 Uhr startbereit: Unser Stand war aufgebaut und unser Team von vier Personen organisiert. Eine Person nahm Bestellungen auf, zwei bereiteten die Flammkuchen mit selbstgemachtem Teig zu und eine weitere Person backte sie im Holzofen.

Beim Weihnachtsmarkt fiel mir schnell auf, dass eine Optimierung des Bestellprozesses unerlässlich ist. Stelle dir vor: Ein Kunde bestellt zwei Flammkuchen, einen normalen und einen vegetarischen. Der nächste Kunde bestellt drei Stück, zwei vegetarische und einen normalen. Der Dritte bestellt einen vegetarischen. Bei einem hohen Bestellaufkommen verloren wir so den Überblick über die Anzahl und Art der bestellten Flammkuchen. Jede Bestellung wurde mündlich weitergegeben, was bei steigender Nachfrage zu Verwirrung führte.

Trotz eines anstrengenden Tages machten wir es gerne und so kam es dazu, dass wir im letzten Jahr wieder teilgenommen haben. Nach der definitiven Anmeldung im August entwickelte ich einen eigenen Bestellprozess, um dieses Problem zu lösen.

Unter diesem Link findest du das Backend, dort wo die Bestellungen aufgegeben werden.

Hier findest du das Frontend, damit klar ersichtlich ist, welche Aufträge noch offen sind.

Wie ich dabei vorgegangen bin, findest du in der Kritik.

(eli)

Planung

Für mich war klar es muss ein Bestellprozess her, wie bei vielen Restaurants oder Fast-Food Ketten. Man tippt die Bestellung, wenige Sekunden später trifft die Bestellung in der Produktion ein. Nur so können wir die Verwirrung vom letzten Jahr vermindern. Die Planung war in diesem Projekt ein kurzer Teil, ich notierte mir in einem Dokument, was für Flammkuchen und Lebensmittel wir anbieten und welche Anforderungen bei der Website Pflicht, welche fakultativ sind.

Umsetzung

Nun zum grossen Teil, die Umsetzung. Wie bei vielen anderen Projekten auch, hat für mich der technische Aspekt die höhere Priorität, als das Design. Denn ein funktionierendes Bestellsystem kann noch so gut aussehen, wenn es nicht funktioniert, kann es trotzdem nicht verwendet werden. Ich begann mit dem Backend. Dabei erstellte ich eine erste Box für den Flammkuchen normal. Über ein Plus und Minus kann die Anzahl vergrössert resp. reduziert werden. Zudem wird der Preis direkt im Feld ausgegeben.

Als dies nach langer Zeit funktionierte kopierte ich dies für alle weiteren «Artikel» und erstellte dabei mit Zwischentiteln bereits eine erste Struktur des Backends. Als Nächstes ging es mit dem Gesamtpreis von allen Produkten weiter. Dieser Preis zählt alle Preise von allen Produkten zusammen. Die grosse Schwierigkeit dabei war, dass der Preis angepasst wird, wenn bei einem Produkt die Anzahl verändert wird. Als dies funktionierte machte ich mich an das Frontend. Bevor ich weitere Funktionen hinzufüge, wollte ich testen, ob mein Vorhaben mit einem Frontend überhaupt funktionieren kann. Das Frontend ist eine einfache Abfrage aus der Datenbank. Sobald eine Bestellung aufgegeben wurde, erhält diese den Status «in Bearbeitung». Dabei wird im Frontend alle drei Sekunden eine Abfrage gemacht. Sobald eine neue Bestellung «in Bearbeitung» ist, wird diese dementsprechend angezeigt. In einer solchen Box ist fett und direkt in der Mitte die Anzahl an Flammkuchen platziert. Unterhalb sehen wir, um welche Art es sich handelt. Wenn die Bestellung fertig ist, wir mit einem Klick auf das entsprechende Feld der Auftrag in den Status «Erledigt» gesetzt. Dadurch verschwindet diese Box resp. diesen Auftrag vom Frontend. Ein weiteres tolles Feature ist dabei, die Farberkennung. Die Box hat die dunkelbraune Farbe wenn es sich nur um normale Flammkuchen handelt, hellbraun für nur vegetarische. Gemischte Bestellungen sind zu 50% dunkelbraun, die andere Hälfte ist hellbraun.

Zu diesem Zeitpunkt war ich bereits sehr erleichtert, da ich wusste, dass das Bestellsystem so funktionieren kann.

Danach kümmerte ich mich um weitere Features. Dazu gehört der Bestand. Durch den selbstgemachten Teig wussten wir genau, wie viele Anzahl Flammkuchen wir maximal verkaufen können und wie viele Getränke wir haben. So konnte bis zu Beginn des Marktes der Bestand auf dieser Seite eingegeben werden. Damit konnte verhindert werden, dass wir keine Produkte verkaufen, die wir gar nicht mehr zur Verfügung haben. Des Weiteren gehört die Premium-Funktion. Mit dieser Funktion wird der Flammkuchen gratis herausgegeben, allerdings im Bestand abgebucht. Auf dem Backend werden die letzten zehn Transaktionen angezeigt, dabei ist es möglich Bestellungen innerhalb von einer Minute zu löschen. Zu den weiteren nützlichen Funktionen gehört die Addierung des Trinkgeldes sowie die Berechnung des Rückgelds bei Barzahlungen.

Da schon zu Beginn klar war, dass wir dieses Bestellformular (zumindest das Backend) auf einem Surface haben werden, war das Responsive Design für Mobile nie ein Thema.

Learnings

Ein Projekt, welches sehr viel Aufwand bereitete. Durch jede neue Funktion, gab es in einem anderen Bereich Probleme. So musste extrem viel Zeit auch in die Fehleranalyse investiert werden. Am Schluss des Tages war die ganze Familie sehr zufrieden. Es gab keine Verwirrungen, alles verlief reibungslos. Trotzdem es ist ein Bestellprozess welches funktioniert, aber trotzdem noch erweitert werden kann. Dazu in der Fortsetzung mehr. Für mich war dies ein sehr lehrreiches und spannendes Projekt. Von einem einfachen Bestellprozess wurde immer mehr, immer komplexer. Das macht mir allerdings sehr viel Spass, immer überlegen was könnte ich noch erweitern, was wäre noch sinnvoll. Zu Beginn habe ich mir dies nicht so gross und komplex vorgestellt. Zum Beispiel der Bestand oder auch die Premiumfunktion galt bei mir zu Beginn als Optional. Deshalb werde ich mir beim nächsten Projekt gezielter in der Planung überlegen, was ich alles wirklich machen will und wie der Ablauf dabei aussieht.

Fortsetzung

Es ist noch nicht so dynamisch. Ein Produkt muss noch manuell an der gewünschten Position mit dem gewählten Preis im Code eingetragen werden. Da möchte ich, dass die Produkte in den Einstellungen eingetragen werden, und dann im Backend ersichtlich sind. Ein Export der Transaktionen wäre auch eine Option. Es gab an unserem Marktstand auch den ein oder anderen Interessierten. Da wäre natürlich auch die Option mit einem Login für jeden User ein Thema sowie eine Mobile Version.