 Universaltalent WordPress. Man hätte das Ganze eigentlich auch anders nennen können, die man WordPress am besten vergewaltigt, aber es hätte, glaube ich, nicht so gut auf den Sessionplanen gepasst. Darum Universaltalent WordPress. Es geht um Bestellkommissionierung, Returnmanagement und die Bestellaufnahme in einem Laden. Wer bin ich? Man sieht mich hier. 2006 mache ich das mit WordPress. Ich habe immer so ein bisschen mit Automatisierung, am Anfang noch ein bisschen Copy-Paste rumgehackt und mittlerweile 2010 verdiene ich mit mein Geld. Und wir fangen direkt an mit Bestellkommissionierung. Ich würde sagen, wenn ihr Fragen habt, dann fragt einfach direkt, weil es kann sein, dass ich was vergesse zu erklären oder irgendetwas unklar ist, was für mich einleuchtend ist. Also erstmal Bestellkommissionierung. Was ist das überhaupt? Das ist der ganze Prozess, der stattfindet, in einem Online-Shop eine Bestellung eintrifft bis zu dem Zeitpunkt, wenn die Bestellung an den Versammlungsleister übergeben würde, also DHL zum Beispiel. Und Kommissionierung, das ist das, was erledigt werden muss, damit der richtige Artikel in der richtigen Anzahl, in der richtigen Farbe, in der richtigen Größe, zum richtigen Zeit, am richtigen Ort, an den richtigen Kunden geschickt wird. Wenn man das ganze zehnmal am Tag macht, kann man das noch automatisch von Hand machen, das ist relativ simpel. Doch ab einem bestimmten Bestellaufkommen wird es dann zu komplex und man muss sich irgendwann so belegen, okay, wie bilde ich das Ganze in einem IT-System ab. Und das war meine Aufgabe im Rahmen von der Masterarbeit und dafür habe ich WordPress gewählt. Ich würde sagen, wir schauen uns das Ganze einfach mal an. Ich habe da hier ein bisschen was mitgebracht, und zwar Obst und Gemüse. Das ist jetzt alles, ich stelle es mal hier hin, da sieht man mich nicht. Wir stensieren. So, wo ist der iPod, wie das immer so ist. Okay, ihr könnt jetzt jetzt sehen, was ich hier mache. Ach so, ja. Das ist ein iPod, das gibt die Euren Lagermitarbeiter. Und das am Computer, das ist das, was das Backoffice sieht. Also das ist quasi hier, ja, in Form von dem MDE, was direkt WordPress anspricht. Wir gehen es einfach mal durch und dann schauen wir uns an, wie das Ganze im Hintergrund funktioniert. Also wir haben hier eine App, die heißt Pick. Picken ist der Prozess, wenn man durch das Lager läuft und die Ware einsammelt. Das machen wir jetzt einfach mal. Man muss das Ganze auch nicht erklären irgendwie dem Lagermitarbeiter. Man sagt einfach Pickliste abrufen, in unserem Fall Obst. Man entscheidet, wie viel man picken möchte und sagt jetzt 25 und fängt dann an, einfach hier anzufangen, zum Beispiel mit der Orange. So, in dem Moment muss natürlich alles gerade sein hier, sagt man, Artikel picken und bestätigt das Ganze. Nicht erschrecken, das ist WordPress, ist ein bisschen sehr umgebogen. Warum es halb und wie zeige ich dann. Was ihr hier seht, das sind alle einkommenden Bestellungen. Also stellt euch vor, ihr habt einen Online-Shop oder ihr habt zwei Online-Shops und ihr beginnt am Morgen eure Arbeit und seht, okay, diese Bestellungen sind alle eingetroffen. Und das Grün repräsentiert, okay, das wurde ja schon gepickt. Und wenn was rot ist, okay, Achtung, da muss man irgendwie aktiv werden. Und ja, das ist jetzt hier die Übersicht von allen offenen Bestellungen. Dann haben wir noch ein Dashboard. Da sieht man, wie ist der aktuelle Fortschritt, okay, 50%. Haben wir bereits gepickt, ganz einfach, damit die Leute im Backoffice immer einen schönen Überblick haben. Warum sollte man eigentlich dafür WordPress benutzen? Man könnte da jetzt viele Argumente erfinden oder wirklich auch finden dafür. Aber in der Realität ist es so einfach, ich kannte mich damit am besten aus und habe gedacht, hey, man versucht es einfach mal, eine Bestellkommissionierung aufzubauen, wo WordPress im Hintergrund steht. Aber wir haben verschiedene Probleme natürlich, wenn wir uns mit für WordPress entscheiden als Backend. Zum Beispiel, die Knitstellen. Es gibt ja natürlich jetzt schon was. Also das ist Stand 2014, muss ich sagen. Ich habe 2014 geschaut, okay, was gibt es da für Knitstellen? Wie bekomme ich meine Daten aus WordPress auf die iPods? Da gab es damals diese WP Rest-Schnittstelle, das waren Plug-in und auch noch zwei andere Plug-ins. Die habe ich mir angeschaut, haben aber alle nicht so ganz funktioniert, weil ab einer bestimmten Komplexitätsstufe war dann Schluss. Also musste ich hergehen und sagen, okay, ich entwickle selbst ein Knitstelle und das ist dann das, was dabei rausgekommen ist. Das ist ein Stück größer. Ihr habt hier rechts euren Online-Shop, in diesem Fall Magento. Das kann aber auch ein WordPress sein. Und das schickt in Form von einem Chasen die ganzen Bestellungen an die Bestellerbewicklung. Das macht das periodisch, in einer Minute. Und die Bestellerbewicklung spricht dann mit den iPods oder iPads oder was auch immer und überträgt die Bestellungen und bildet quasi auch die Geschäfts, also die Logik ab, die Kommissionier-Logik. Und die Endgeräte sind ziemlich dumm. Die Bilder werden zum Beispiel geladen. Man kann sich Bilder anzeigen lassen von den Produkten noch einmal und die werden dann direkt aus dem Online-Shop gezogen. Das zweite Problem, was es gab, war die Performance. Wir müssen 50.000 Bestellungen innerhalb von 10 Sekunden als Chasen ausgeben. Eine Bestellung ist ein Custom-Post-Type im Endeffekt und da wir auch die Offline-Funktionalität brauchen, also so die Lagermitarbeiter laufen durch das Lager und wir können nicht sicherstellen, dass es immer Internet-Empfang gibt. Also müssen wir alle Bestellungen vorher auf den iPod laden, um stets arbeiten zu können. Also, die Anforderung war 50.000 Bestellungen in weniger als 10 Sekunden übertragen und das muss eine Möglichkeit geben, sehr realisierte Artikel-Daten zu durchsuchen. Angenommen 1000 Bestellungen in weniger als 2 Sekunden. Das braucht man dann, wenn man jetzt zum Beispiel einen Artikel hat und möchte, den eine Bestellung zu ordnen, dann muss man natürlich suchen, okay, wo wird dieser Artikel zuerst gebraucht und darum muss ich im Endeffekt die Metadaten durchsuchen. Ich habe ein bisschen rumexperimentiert, wie man da immer so anfängt, ja, mit dem Shared Hosting. Es hat nicht funktioniert. Also musste ich dann etwas anderes überlegen und bin auf Engings umgestiegen. Ich denke, es ist richtig ausgesprochen, oder? Enginix. Enginix. Naja, und 2Gb Memory Limit erhöht und das 2Mb SQL Tuner eingesetzt. Also das ist auch ziemlich hilfreich. Selbst wenn man sich mit Server-Achministrationen nicht so auskennt, aber damit kommt man schon relativ weit. Dann ein Load Test für Dummys, ja, gemacht. Ich habe mir einfach 6 iPods nebeneinander gelegt und gleichzeitig die 50.000 Bestellungen abgerufen und geschaut, was passiert und das hat funktioniert. Und damit war mein Load Test beendet. Eines relativ selten vorkommt, wenn das 6 Leute genau im selben Zeitpunkt alle Bestellungen abrufen. In dem Moment, wo die Pickliste, die abrufst, wird geblockt. Also wird einfach ein neues Metafeld erzeugt und dann mit dem Timestamp drin geblockt, sodass das dann nicht wieder ausgegeben wird an den nächsten. Also für die Pickliste abrufen brauchst du Internetzugang. Nee, das sind 50.000. Und die wurden parallel abgerufen. Ja. Okay, die 50.000, die brauchen jetzt zum Beispiel, wenn man Rettoren bearbeitet. Dann ist es so, die Rettore kommt rein und es könnte sein, dass sie schon 99 Tage alt ist, weil in dem Fall man hat 100 Tage Rückgaberecht bei dem fiktiven Online-Shop. Und das ist so, dass ich dann die alle Bestellungen der letzten 100 Tage auf dem iPod brauche. Dafür ist das. Genau, wenn die Pickliste abgeschossen wird, brauche ich wieder Internet. Ja, also das fand ich damals noch irgendwie beeindruckend, aber mittlerweile nicht mehr. In meinem Hintergrund ist ja einfach nur eine MySQL-Datenbank und das sollte es da keinen Limits geben. Mittlerweile sind die Zahlen größer. Okay, das dritte Problem, die Nutzerfreundlichkeit. Ich war irgendwie gezwungen, die Oberfläche etwas nutzerfreundlicher zu gestalten, weil hätte ich das präsentiert, den Leuten, die im Online-Shop arbeiten, die hätten sich nicht so recht gefunden, weil nicht jeder natürlich mit WordPress so sich da auskennt. Also musste ich mir überlegen, okay, ich muss es irgendwie runterbrechen und einfacher machen. Und auch oben rechts gibt es eine universelle Suchfunktion, weil das war immer so ein Problem, wo kann ich hier suchen eigentlich? Das heißt, oben rechts eine universelle Suchfunktion, die über alle Bestellungen sucht und auch über alle Meterfelder. So sieht das Ganze dann aus. Das ist die Fächerübersicht. Also es gibt dann verschiedene Lagerfächer, wo die Bestellungen zwischengepuffert werden, wo die Artikel reingelegt werden. Und das ist dann einfach eine Übersicht, wo man sagt, okay, ich lasse mir alle Bestellungen ausgeben und man sieht, okay, grün muss ich nichts machen, gelb müsste ich vielleicht tätig werden und roten muss ich unbedingt tätig werden. Ein Tipp, womit ich lange gehadert habe, wo ich ein Problem hatte, es gibt nicht nur Bestellungen, sondern es gibt auch die Entität-Retoures, was dann im Prinzip, es gibt eine Bestellung und dazu gibt es eine oder mehrere Rettoren und es gibt auch ein Lagerfach. Es ist so, ich möchte von einer Rettore auf die Bestellungen kommen. Bloß, wie mache ich das? Also diese Beziehung herzustellen, hat lange gedauert. Ich habe dann einfach immer über die Metadaten mir ein Cravery gemacht. Also suche mir die Bestellungen raus, wo die Bestellnummer so und so ist. Das dauert aber zu lange. Das klappt, wenn man 1000 Bestellungen hat, ist das okay, aber irgendwann wird es halt einfach unperformance. Und da habe ich dann halt geschaut, okay, dann gibt es halt auch Plugins, die Beziehung herstellen zwischen Custom Posts. Aber es war auch ganz einfach, man kann auch einfach die ID einer Bestellung in das Metafeld eine Rettore packen und so hat man auch ganz schnell die Beziehung hergestellt. Also das war was, was ich ein bisschen gebraucht habe, das rauszufinden. Meine erste Erkenntnis, das funktioniert, ist seit zwei Jahren, wir haben jetzt 100.000 Artikel damit verschickt und ja, keine Probleme. Es stellt jetzt auch niemand mehr an Frage, ob man WordPress dafür benutzen könnte oder nicht. Und meine zweite Erkenntnis, dass die REST-RP noch zu beschränkt war. Also man hätte sie so weit anpassen müssen, dass sie nicht mehr updatefähig gewesen wäre und das wäre so viel Aufwand gewesen, dass ich gesagt habe, okay, man kann es direkt auch selber bauen. Müsste ich jetzt nochmal schauen, wie es jetzt ist. Zu dem Thema, wenn jemand da mehr dazu erfahren möchte, da gibt es auch ja ein bisschen was niedergeschrieben, das ist Amazon, einfach nach Daniel Goebbelsuch und da findet man das. Genau, gibt es zu dem Thema erst mal Fragen. Im Plakium stiegen und dann gesagt, ich bin nie bei irgendwelchen wie weitregeln oder Fahre oder was, unter dem ich dann in der Afrika mache. Genau. Kannst du ein bisschen wieder im Herbst entziehen? Ich habe angefangen, habe alles in die Functions.pap gepackt. Ist schlecht. Und ich bin dann dazu übergegangen, das Ganze als Plakinen zu entwickeln und der Plakinenfall war dann auch der AP Endpoint. Also dementsprechend. Aber ja, per Rewrite wäre natürlich noch sauberer. Aber in dem Fall war das Plakinen der AP Endpoint. Ich habe eigentlich gar keine Be-Mail-Distanzien oder kann ich ja vielleicht, ja so was wie du in Ajax sozusagen verwendet bist, statt da irgendwie erst mal durch den kompletten Set durchzulaufen. Hast du gar nicht gemacht? Nein. Und trotzdem bist du eben auf diese Ladezeiten Ja, ich habe, wenn ich mich recht erinnere, ein paar Actions rausgenommen. Aber, ja, ich kann mich nicht mehr genau erinnern, was es war, aber definitiv geschaut. Das Dashboard, das Dashboard, genau. Ich habe das Dashboard wieder auch insenziiert und das habe ich vorher halt de-registriert und dann wieder das Dashboard, genau. Also die ganzen Online-Shops, die haben sich irgendwo auf eine gemeinsame Datenstruktur geeinigt. Man sieht zum Beispiel, dass WooCommerce sich vielleicht sehr stark an Magento orientiert hat. Müsste man schauen, vielleicht die anderen. Aber man sieht da sehr große Schnittmengen auch teilweise in der Bezeichnung der Felder. Von nebenher kann man das für Magento und WooCommerce. Aber prinzipiell ist es einfach ein Chasen, was man entweder pusht oder pullt und dann, genau. Das heißt, den Picker pusht, das heißt, also das ist nicht die anderen 28, sondern was passiert? Nee, aktuell noch nicht, nee. Das ist dann auch so eine Überlegung gewesen, inwieweit möchte ich dem Picker Vorgaben machen. Zum Beispiel, dass man sich selbst raussuchen kann, wie viel möchte man jetzt picken, ist auch eine Sache, die man hätte vielleicht verhindern müssen, um die Effizienz zu steigern. Aber ich habe das gezielt so gemacht, damit derjenige entscheiden kann, okay, ich habe noch zehn Minuten bis zu meiner Pause, ich mache nur noch zehn Artikel. Natürlich, die höchste Effizienz hat man, wenn man jetzt 50, 100 Artikel auf einmal pickt, die höchste Ersparnesterlaufwege. Ist möglich, ja. Also, in dem Kies, man konnte sich entscheiden zwischen Obst und Gemüse. In der Realität, wenn das in verschiedene Lager, also jetzt in den Klamotten laden, werden es Herren und Damen, zum Beispiel, genau. Das kann der Picker sich aber selbst raussuchen. Also das ist konfigurierbar diese Filter, die man da macht. Das ist nativ, das ist nativ. Als Wettbeinwendung hätte es leider nicht funktioniert, wegen dem Barcodescan. Der muss schnell sein. Es ist auch so, am Anfang, man hätte vielleicht, man hätte es hinbekommen als Wettbeinwendung. Die Sache ist, es muss ganz schnell gehen und da geht es um Sekunden Bruchteile. Sobald man zweimal hingeht und das iPod schon drehen muss, nervt das, wenn man das ganze hundertmal am Tag macht. Darum muss es sehr schnell sein und darum nativ. Erstmal gibt es eine 2-Factor-Authentifizierung. Ich habe festgestellt, das Plug-in, was geschrieben wurde, das ist von dem Frank Stauder, der hier auch invoviert ist. Genau, das ist das Erste. Das Zweite, das gibt eine ganz einfache HTTP-Authentifizierung. Und das Dritte ist einfach halt mit Cookies. Ich identifiziere den Picker. Der hat Benutzerkonten, die müssen im WordPress angelegt werden und er meldet sich dann mit seinem Benutzerkonto an. Und einmalig, also jedes Mal, wenn er sich anmeldet, muss er natürlich dann, der kommt eine E-Mail zugeschickt oder hat eine SMS und muss den Code eingeben. Plus, es ist IP beschränkt, also auf einem... Genau. Und hier ist kein dediziertes Netz. Das ist im Internet, auf einem Server. Ja, genau. Noch nicht, nee. Noch nicht. Also, die Qualität, die wurde erst vor Kurzem erreicht, dass ich sagen könnte, okay, man könnte das auch anderen. Es ist ja auch so, dass jedes... jeder Onlineshop ist anders aufgebaut. Man muss erst so eine gewisse Generalisierungsebene, eine gewisse Generalisierung erreichen, dass man sagen könnte, okay, man gibt das an anderen auch heraus. Darum. Okay, würde ich sagen, machen wir im nächsten Thema weiter, das Returnmanagement. Ja, das machen wir unter Returnmanagement verstehen. Returnmanagement hat in diesem Fall nichts mit einem Onlineshop zu tun, sondern wirklich mit einem Laden, mit einem richtigen Shop in der Stadt. Und hier haben wir das Problem. Zum Beispiel, ihr kauft euch eine Hose und die Hose ist defekt nach einem Jahr und ihr geht hin und möchte sie reklamieren. Das heißt, ihr geht mit eure Hose in den Shop. Ihr kriegt eine neue Hose und die Hose bleibt natürlich dann im Laden. Und was macht dann der Laden mit den ganzen Hosen? Er versucht sich natürlich, dem Lieferanten zuzuschicken, der die Hose wieder ersetzt oder eine Gutschrift dafür erstellt. In der Realität sieht das dann ganz so aus. Es gibt unzählig viele Lieferanten, bei denen sich auch ständig die mehr Adressen ändern. Es gibt natürlich, wenn man in so einen Klamottenladen hat, der hat 100 verschiedene Hersteller. Das heißt, es gibt 100 Lieferanten, dazu ganz viele defekte Ware und auch Gutschriften, die man überwachen muss, die jetzt schon eingetroffen sind oder nicht. Und dann liegt es in der Tour der Sache, dass auch mal was vergessen wird. Man könnte das natürlich mit Axel lösen, aber es hat nicht funktioniert. Also muss sich mir auch irgendwie ein IT-System überlegen, was natürlich dann gewisse Schnittmengen hat, auch mit der Bestellabwicklung, die wir gerade gesehen haben. Also das erste Problem, das war komplex, 1000 Artikel, 100 Lieferanten, die Effizienz gering, und es gab viele Arbeitsschritte. Also die erste Lösung, wir brauchen erst mal wieder ein Dashboard. Dashboards sind immer ganz toll. Ich würde die Leute, die was zu entscheiden haben und auch Farben sind noch viel besser. Und was man hier sieht, diese einzelnen Kästchen, die Farbe verändert sich je nachdem, wie hoch der Betrag ist. Wir sehen uns da 100 Euro, alles, was höher ist, wird rot. Das ist so die letzte Iterationsstufe von einem Dashboard, die ich jetzt so gemacht habe. Außerdem brauchen wir Farben. Das ist jetzt hier die Postlist im WP Admin. Und wir sehen nicht nur die Kästchen, sondern auch die hinten, man sieht es weniger gut, aber auch die Hintergrundfarben der einzelnen Zeilen passt sich an. So dass man weiß, okay, das ist grün, da muss sich nicht tätig werden, das ist rot, hier muss ich langsam tätig werden. Oder das ist gelb. Die dritte Lösung, kurze Wege. Also ich habe direkt Buttons, mit dem man jetzt zum Beispiel sagen kann, okay, ich möchte die Frist verlängern oder ich möchte die Retore zum Versandfreie geben, gleich in die Liste eingesetzt, ohne dass man den Post öffnen muss. Weil er hat sich herausgestellt, dass es einfach zu aufwendig ist. Warum? Rechts die Buttons. Das zweite Problem, es gibt viele Felder und viele Informationen. Und die muss man irgendwie abbilden. So. Das ist auch die Atmenansicht von dem Custom Post Retore. Ich habe hier das Plug-in Advanced Custom Fields eingesetzt und auch ein bisschen noch den WP Atmen mit CSS angepasst, damit er noch ein bisschen übersichtlicher wird. Ich versuche mal ein Stück Kran zu suchen. Hier oben sieht man Fortschrittsbalken. Hier oben sind die Aktionsfelder, die Aktionsbutton, die man durchführen muss. Der wichtigste ist immer grün. Hier hat man Super. Hier hat man die Möglichkeit, direkt E-Mess zu schicken aus der Atmenansicht heraus. Wir lassen es lieber. Ja. Also das Advanced Custom Field hat sich da eher nützlich herausgestellt. Rechts unten ist vielleicht noch interessant. Das sind die Kommentare zu jedem Post. Das habe ich ein bisschen missbraucht als Transaktions-Vlog. Also alle Transaktionen, die geschehen sind und alle E-Mess tauchen da auch auf. Und genau. Das dritte Problem, das ist man externe Genehmigung. Also es läuft so ab, man meldet eine Rhetore mit allen Artikeln beim Lieferanten an und der muss diese Rhetore genehmigen. Einfach kurz sagen, ist okay, schickt sie uns zu. Hier habt ihr das DHL-Edicket, wir warten darauf. Wir haben hier die E-Mess statt oder über Telefon. Es wäre natürlich schön, wenn es da einen großen Knopf geben würde in der E-Mail genehmigen. Das habe ich genau versucht, hier zu realisieren. Links seht ihr die E-Mail. Es ist egal, was drin steht, aber ihr seht, da ist ein großer, blauer Knopf. Der heißt genehmigen. Auf diesem Knopf drückt er drauf und hat dann direkt die Möglichkeit, die Rhetore genehmigt zu werden. Genau. Gibt es hier zu Sicherheitsfragen? Stellen sich dabei jemand die Nackenhaare auf? Also das ist mit einer Nonce gelöst. Genau. So dass wirklich nur das Ganze einmal angeklickt werden kann und nur über den Link in der E-Mail die Rhetore genehmigt werden kann. Okay. Erst mal ein kurzes Zwischenfahrtnis. Ich habe ein paar Wünsche und Wünsche. Ich habe gesehen, es ging jetzt viel um Workflows und Arbeitsprozesse abzubilden und um automatisieren. Das klappt gut, aber es ist ein bisschen verzweigt mit WordPress. Der Grund dafür ist, dass ich dieser Standard Workflow, der in den Core eingebaut ist, also das Posts als Straft abgespeichert werden können oder als Pending oder Publish, und das ist eine Sache, die kann man nicht deaktivieren. Vielleicht möchte ich es gar nicht haben, vielleicht gibt es kein Traft. Ich habe noch keine Möglichkeit gefunden, das direkt zu deaktivieren, sondern immer nach hinein den Poststatus zurückzusetzen. Das sind noch so ein paar Sachen, die nicht so schön sind. Aufnahme von Kundenbestellung im Laden. Das dritte Thema ist, dass man in den Schuhgeschäft und eure Größe ist nicht mehr da. Es ist normalerweise so, dass diejenigen an den Computer gehen und da an der Warnwirtschaft die Bestellungen eingeben und ihr dann vielleicht benachrichtigt werdet, wenn die Bestellung da ist oder vielleicht auch nicht. Die Lösung, die es da so gibt, die sind alle nicht so ganz sexy. Wie ihr rechts seht und rechts und links, das ist das Image, das heißt, da gibt es iPads und da muss es einfach eine schöne Lösung vergeben. Das heißt, das erste Problem, das muss sexy sein und schnell. Und das, was man hier unten sieht, das sind dann so die Lösungen, die man angeboten bekommt, wenn man fragt, was habt ihr für Kundenbestellungen. Es ist dann halt in Windows Mobile 6.5 mit so einem Gret, was da auch in Euro kostet und ohne SMS-Benachrichtigungen nix. Das ist einfach dieses Ninja Form und bilden das Formulator ab. Ist ja nix kompliziertes dabei im Endeffekt. Nur ein bisschen Logik dahinter, dass Felder eingeblendet werden, wenn jemand per SMS benachrichtigt wird, dass man auch die Mobilfunknummer abfragt, zum Beispiel. Das zweite Problem Kundenbenachrichtigungen. Also es ist so, wir müssen die Möglichkeit haben, direkt SMS aus WordPress heraus schicken zu können damit der Kunde stets informiert ist. Ja, also jetzt ist dein Studa, hol ihn ab oder wir brauchen noch 14 Tage Entschuldigung oder erst nicht mehr lieferbar, aber wir haben eine Alternative für dich. Das sind so halt die drei Cases, die anfallen. Also einfach knopffreien gesetzt in den in die WP Admin-List und dahinter ein SMS-Gateway angesprochen. Ziemlich simpel. Also links die Knöpfe das seht ihr dann auch noch den Benachrichtigungsverlauf. Das dritte Problem war, den Wirkfloor abzubilden. Wir haben im Prinzip vier Akteure. Der erste ist der Verkauf. Einfach die Leute, die im Laden arbeiten. Der Einkauf, die im Büro sitzen und dann den Artikel nachbestellen. Das Lager, die dann überwachen, ok, ist Artikel angekommen und die Kasse, die dann letztendlich den Artikel dem Kunden verkauft. Das sind die vier Akteure und die müssen allesamt mit dem System arbeiten. Und es gibt Fristen. Also wir wollen eine Kundenbestellung auch gezielt da durchdrücken, so dass der Kunde halt nie warten muss. Und dafür gibt es eine Lösung und da können wir uns einfach jetzt mal das in der Demo anschauen. In dem wir jetzt einfach mal so eine Kundenbestellung aufnehmen. Ihr seht hier ein iPad. Das ist jetzt noch nicht WordPress. Das ist jetzt eine ganz normale PHP-Seite. Ohne großartigen Framework dahinter. Die alle Artikelattribute dann WordPress übergibt, welches dann das in die Ninja Forms einfügt. Zeigen es einfach mal, kurz eine Artikelnummer, eine Telefonnummer, für alle die Leute, die sie haben wollen. Man weht sich hier die Größe aus, die er bestellen möchte. Wir sagen jetzt eine M und klickt hier auf diesen Button. Und in dem Moment öffnet sich WordPress und alle Felder sind voraus gefüllt. Das ist natürlich ein großer Zeitersparnis. Wenn man im Laden ist, muss alles schnell gehen. Da möchte der Kunden jetzt nicht warten. Warten Sie, ich muss die Artikelnummer abtippen. Ich muss den Namen, die Farbe abgeben, sondern abtippen, es wird alles automatisch eingefügt. Also, wir fingen uns nur noch unseren Namen hier ein. Oh, das schreibt nicht mehr. Warten wir zum Browser. Und noch meine Mobilfunknummer. Hier sieht man jetzt direkt, dass wir eine SMS verschickt haben an den Kunden, weil es kommt ganz oft vor, dass man im Eifer des Gefechts einfach ein Tippfehler macht, die Nummer falsch übernimmt. Weiter. Hier gibt man noch seine Personalnummer ein. So sagt absenden. Okay. Schauen wir uns die Bestellung mal an. Das ist die oberste, 17.04. Ja. Okay. Und wir stellen uns jetzt vor, wer in der Einkauf, also die Person, die das jetzt beim Lieferanten bestellen muss, er geht her und sagt okay. Ich habe noch zehn Tage Zeit. Das ist eigentlich noch viel, aber ich mache es jetzt trotzdem schon. Gehe her und sagt, wurde bestellt. In dem Moment ist die Bestellung auf Wartel, auf Lieferung gegangen. Und wir sehen sie hier. Und das ist jetzt der Punkt, dass die Bestellung eingetroffen ist. Und wenn es so ist, sagt der Beleg drucken und die Bestellung öffnet sich quasi als Post in der Post.php und die dann ausgedruckt werden. Und dieser Laufzettel wird jetzt an die Kasse gelegt. Fertig und an Kasse. Und damit sind wir auch verkauft und haben die ganze Kundenbestellung abgeschlossen. Das ist halt so ein Prozess. Denen kann man da ganz gut durchlaufen und das hat jetzt auch schon gut funktioniert seit zwei Jahren. Genau. Es gibt eine gewisse Frist, die wird dem Kunden so kommuniziert. Das sind 14 Tage, in der er den Artikel abzuholen hat. Intern ist das ein bisschen länger. Wenn er nach 15 Tagen kommt, möchte man nicht sagen den Kunden, okay, er ist schon weg. Und danach ist der Artikel wieder freigegeben. Also müsste man dann von Hand machen. Da steht auf dem Laufzettel drauf, da sind dann so Einzelfälle, die nicht so oft vorkommen. Darum macht es keinen Sinn, das jetzt abzubilden als Funktion. Das erste Erkenntnis, das funktioniert auch problemlos. Ja, damit sind wir durch. Haben wir jetzt noch Fragen? Generelle. Meine Telefonnummer habt ihr jetzt alle, ne? Ja. Die Bilder werden ganz einfach als Space64, also auf dem iPod, schon auf bestimmte Dimensionen untergesetzt, untergerechnet, dann als JPEG und dann als Space64 und dann ganz einfach per Post in einem JSON, dann wird das geschickt. Ja. Also die Bilder kann man erfassen generell oder für Bestellerwicklung, für Riturenmanagement oder für Kundenbestellungen. Das größte Problem sind die Prozesse. Das ist das größte Problem. Ja, das ist das größte Problem. Und dann die Menschen, damit nicht zu überrennen. Man kann sicherlich noch viel besser machen, aber muss man halt schrittweise machen. Aber das war so für mich das größte Problem und technisch gab es eigentlich keine großen Probleme, außer Fehler, aus denen man dann gelernt hat. Genau. Ja, natürlich. Ne, genau. Ich habe einfach mitgearbeitet, habe angefangen, Kisten zu packen und habe das dann quasi so mitbekommen und dann halt schrittweise. Genau. Ich habe angefangen, wirklich Kisten dort zu packen und dann später halt erst im Laufe der Zeit dazu übergegangen. Ja. Es gibt nichts Gutes. Es hört sich blöd an. Es gibt was, es ist einfach eine Kosten-Nutzen-Frage. Es gibt so gewisse Software-Lösungen aus München. Die kosten 50.000. Also es ist dann halt und da ist man dann darin festgehalten. Das war halt der Grund. Es war eine Masterarbeit, genau. Ja. Aber man hat natürlich vorher geschaut, was gibt es? Das ist nicht zu finden im Internet. Oder es ist zu finden und ich habe gesagt, es ist schlecht. So. Oder es ist zu komplex. Oder es ist gut. Oder es ist gut, aber es ist zu komplex. Und oft braucht man so eine komplexen Sache dann gar nicht. Aktuell ja noch. Okay, es sind drei Fragen. Die erste, ob ich wieder so entscheiden würde, ja, ob ich noch eine Frage in den WordPress machen. Aber vielleicht ist die Entscheidung und zwei eine andere. Ich hatte Angst, dass es halt nicht performant bleibt. Auch jetzt nicht nur die Arbeit mit den iPods, die Schnittstellen, sondern auch die Oberfläche von WordPress, die Atmen-Oberfläche. Aber da gibt es halt so ein paar gewisse Tricks, die man da, was man beachten sollte. Und dann bleibt das ganz auch performant und da spricht für mich nichts dagegen. Aber vielleicht finde ich was Besseres und das kann man ja auch nicht wechseln. Genau. Und die zweite Frage, ob man Magento ablösen könnte durch den WooCommerce. Die Fragestellung hatte ich auch. Also ich habe jetzt einen Online-Shop gebaut, einen Markenshop für Frauenjeans. Komplett auf WooCommerce. Ja, und es funktioniert. Also meines Erachtens ist es sogar einfacher für die Leute, die da mitarbeiten müssen. Aber erhose mit Herz. Kann man sich anschauen. Genau. Da gibt es eigentlich nichts, was dagegen spricht. Außer, dass sobald man ein Update macht zum Beispiel bei WooCommerce und es ist nicht sichergestellt, dass danach alles wieder funktioniert. Also ein Beispiel, es wurde ein Attribut hinzugefügt. Eines Produktes und das fehlendes Attributs sind halt so Sachen dabei, man merkt, dass noch viel, noch viel im Gange ist und viel gebaut wird. Nee. Also jetzt ganz unüberlegt, würde ich aus dem Bauch heraus sagen, nein. Nee. Glaube ich nicht. Glaube ich nicht. Ja, da fällt jetzt zwar kein Argument ein, aber es fängt schon bei ganz basic Sachen an, zum Beispiel, was sie ist. Da muss man erstmal jeder Buchhaltung erklären, ja, sie ist fortlaufend, aber hat halt Sprünge von 1000. Weiß ich ja auch andere. Ja, ein Bild ist auch eine Post-ID und damit hat eine Bestellung zunächst ein Sprung von 300. Ja. So eine Sache, die eigentlich gar nicht gehen. Genau. Also jetzt bei den WooCommerce-Shops sind das ja dann die Bestellung und die Kundendaten, was übergeben wird. Ja, genau. Ja, also die Besteller-Wicklungen, das war das, was wirklich sechs Monate gedauert hat und das war WordPress 4.1. Damals noch 4.1. Aber ganz einfach, da habe ich halt erst viel gelernt damit. Dann die Return-Verwaltung, das hat zwei Monate gedauert, aber da habe ich auch wieder sehr viel gelernt und davon würde ich jetzt die Besteller-Wicklung neu machen mit den Erkenntnissen, die ich aus der Return-Verwaltung habe. Aber ich denke so, ja, zwischen zwei und sechs Monaten. Aber nicht vollzeit. Ja, keine Fragen mehr. Und können wir jetzt alle zur Community-Party gehen.