01Über den Preis entscheidet Ihr Server, niemals der Browser
Der Konfigurator zeigt eine Summe an, während der Kunde auswählt, aber die Zahl, mit der die Bestellung geschrieben wird, wird auf dem Server allein aus der Auswahl neu berechnet. Eine vom Browser gesendete Summe wird schlicht ignoriert. Geld wird in ganzen Untereinheiten gehalten, sodass eine lange Bestellung zwischen Rechnung und Auftrag nie um einen Cent abweicht.
02Hochgeladene Fotos sind keine Anhänge der Mediathek
Sie landen in einem Verzeichnis, dessen Name nicht zu erraten ist, vierfach zugleich geschützt: eine .htaccess-Regel, eine web.config für IIS, eine index.php und Dateirechte, die nichts außer der Website lesen lassen. Eine Datei wird danach angenommen, was ihre Bytes sind, nicht was ihr Name behauptet: eine in .jpg umbenannte ausführbare Datei wird an der Tür abgewiesen. Sie erhalten nie eine öffentliche URL.
03Ein einziger Ausgang – und er prüft, wer klopft
Jedes Foto und jede Vorschau wird über ein einziges Gateway ausgeliefert. Ihr Team kommt über seine WooCommerce-Bestellberechtigung durch; der Kunde über einen signierten Link, der gegen genau diese Bestellung und keine andere geprüft wird. Ein für eine Bestellung erzeugter Link kann die Datei einer anderen nicht öffnen, und ein manipulierter Link öffnet gar nichts.
04Der Kunde gibt frei, ohne ein Konto anzulegen
Die Freigabeseite öffnet sich direkt aus der E-Mail – ohne Login, ohne Passwort, ohne Warenkorb. Jemanden zur Registrierung aufzufordern, bevor er seine eigene Vorschau ansehen darf, ist der sicherste Weg, die Freigabe zu verlieren. Der Link trägt seine Berechtigung selbst, ist signiert und läuft ab; die Seite wird nie zwischengespeichert, sodass die Vorschau eines Kunden niemandem sonst ausgeliefert werden kann.
05Korrekturen bis zum Ja, dann Produktion und keine Änderungen mehr
Vor der Freigabe kann der Kunde so oft eine Korrektur verlangen, wie es nötig ist, und jede Anfrage wird zur Bestellung protokolliert. Nach der Freigabe verschwindet das Korrekturformular – und der Server weist die Anfrage ebenfalls ab, nicht nur der Bildschirm. Nach türkischem Fernabsatzrecht besteht bei einer personalisierten Ware nach der Herstellung kein Widerrufsrecht, deshalb wird der Moment, in dem der Kunde dem zustimmt, zusammen mit der Freigabe festgehalten.
06Vier Bestellzustände, die sich nur vorwärts bewegen
Modellierung, wartet auf Freigabe, im Druck, fertig. Was auf was folgen darf, steht als Liste der erlaubten Übergänge geschrieben, nicht als Liste der verbotenen: ein Schritt, an den niemand gedacht hat, wird standardmäßig abgelehnt statt stillschweigend erlaubt. Die Zustände sind echte WooCommerce-Bestellstatus, also erscheinen sie in der Bestellliste, in Berichten und in Ihren bestehenden Filtern.
07Eine Warteschlange, die sagt, was überfällig ist – nicht nur, was offen ist
Der Werkstattbildschirm sortiert offene Bestellungen danach, wie lange sie schon warten, und markiert die überfälligen rot – normalerweise vierundzwanzig Stunden, bei Eilaufträgen sechs. Der Mitarbeiter lädt die Vorschau vom selben Bildschirm hoch, und der Kunde erhält im selben Vorgang die E-Mail; es gibt keine zweite Stelle, an die man denken muss.
08Vier E-Mails, versendet von WooCommerce selbst
Bestellung eingegangen, Vorschau bereit, Freigabe erfasst, versandt. Sie werden durch die E-Mail-Vorlage Ihres eigenen Shops geführt, sehen also aus wie Ihre übrige Post und nicht wie etwas Angeflanschtes. Der Freigabelink steht zweimal in der Nachricht, als Schaltfläche und als reiner Text, weil manche Mail-Clients die Schaltfläche nicht darstellen.
09Die Fotos bleiben nicht für immer
Ein täglicher Job löscht die Uploads und Vorschauen abgeschlossener Bestellungen nach einer von Ihnen gesetzten Frist – ab Werk sechzig Tage. Die Bestellung, ihr Betrag und der Freigabeeintrag bleiben; das Foto des Kunden nicht. Das Foto eines Kindes unbegrenzt auf einem Shop-Server zu behalten, ist eine Haftung, kein Feature.
010Es kämpft nicht gegen Ihren Cache
Konfigurator und Freigabeseite schalten das Seiten-Caching für sich selbst ab, in der Sprache, die LiteSpeed, WP Rocket und W3 Total Cache gleichermaßen verstehen, und senden zusätzlich no-store-Header. Ein zwischengespeicherter Konfigurator sendet mit einem veralteten Token und scheitert lautlos; eine zwischengespeicherte Freigabeseite zeigt die Vorschau eines Kunden dem nächsten Besucher. Beides kann hier nicht passieren.