studios in motionStand 01.10.2026 · Vorlage für den mitfit-Coding-Agenten

Scan- und Check-in-System: Prinzip aus SIMproducts, Vorlage für mitfit

In SIMproducts (simsales.de) bekommt jeder Käufer nach der Zahlung einen PDF-Gutschein per Mail. Darauf stehen ein individueller QR-Code und darunter derselbe Code als Zeichenfolge. Am Eingang scannt das Personal den QR-Code mit einem vorher registrierten Gerät, und der Gutschein wird im System entwertet.

Dieses Prinzip soll in mitfit nachgebaut werden, für Fitness- und Golfkurse: Die Teilnahme wird online gekauft, der Käufer bekommt seinen Voucher, vor Ort wird er eingescannt.

Der Unterschied in mitfit: Der Käufer ist dort bereits als Lead vorhanden. Der Scan soll deshalb nicht nur den Voucher entwerten, sondern am Lead vermerken, dass er teilgenommen hat, also vor Ort war.

Markdown-Datei laden

Die drei Bausteine

  1. Voucher mit Code: entsteht beim Kauf, gehört zu genau einem Anbieter (Studio oder Golfanlage).
  2. Registrierte Scan-Geräte („Stationen“): nur freigeschaltete Geräte dürfen Codes nachschlagen und entwerten.
  3. Check-in-App: eine Web-App im Browser des Geräts, mit Kamera-Scan und Handeingabe.

1. Voucher und Code

2. Geräte registrieren

Ziel: Ein Tablet oder Handy am Empfang wird einmalig freigeschaltet, ohne dass dort jemand Benutzername und Passwort eintippt.

Ablauf

  1. Der Admin des Anbieters klickt im Dashboard auf „Neues Gerät“ und vergibt einen Namen, zum Beispiel „Tablet Tresen“.
  2. Das Backend erzeugt einen Registrierungs-Token: zufällig, nur einmal verwendbar, 15 Minuten gültig, an Anbieter und Gerätenamen gebunden. Das Dashboard zeigt ihn als QR-Code mit dem Link https://<checkin-app>/setup?token=....
  3. Das neue Gerät scannt diesen QR-Code mit der normalen Kamera, die Check-in-App öffnet sich und schickt den Token ans Backend (POST /station/register, ohne Anmeldung).
  4. Das Backend prüft den Token (vorhanden, unbenutzt, nicht abgelaufen), legt die Station an, markiert den Token als verbraucht und gibt einen langlebigen, zufälligen Geräte-Token zurück, dazu Name, Logo und Farbe des Anbieters für die Oberfläche.
  5. Die App speichert den Geräte-Token lokal im Browser (LocalStorage). Ab jetzt schickt sie ihn bei jeder Anfrage im Header X-Station-Token mit.
  6. Direkt danach legt das Personal eine vierstellige PIN fest. Sie wird nur als Hash lokal gespeichert und ist eine reine Bildschirmsperre, damit nicht jeder am Tresen die App bedienen kann. Die eigentliche Sicherheit ist der Geräte-Token.

Verwaltung

3. Scannen und entwerten

  1. Personal öffnet die App, gibt die PIN ein und landet in der Scan-Ansicht: Kamera-Scan oder Code von Hand.
  2. Die App schlägt den Code nach (GET /station/voucher/:code). Das Backend ermittelt aus dem Geräte-Token die Station und deren Anbieter und sucht nur unter den Vouchern dieses Anbieters. Fremde Codes ergeben „nicht gefunden“.
  3. Angezeigt wird, was das Personal braucht: Status, Produkt beziehungsweise Kurs, Name des Käufers, Angaben aus dem Kauf, Gültigkeit, bisherige Einlösungen. Keine Preise oder Umsätze.
  4. Entwertet wird erst nach einem bewussten Tipp auf „Einlösen“ plus Bestätigung, nie automatisch beim Scan.
  5. Das Backend bucht die Einlösung atomar (ein einziges UPDATE mit den Bedingungen „aktiv, Limit nicht erreicht, nicht abgelaufen“), damit zwei gleichzeitige Scans nicht doppelt buchen. Der zweite bekommt „bereits eingelöst“.
  6. Jede Einlösung landet zusätzlich in einer Historie mit Zeitpunkt und Station. Daraus kann ein Fehlscan einzeln rückgängig gemacht werden. Der Eintrag wird dabei nicht gelöscht, sondern als storniert markiert.
  7. Optional je Produkt: eine kurze Info-Mail an den Käufer nach der Einlösung. Ein Fehler beim Mailversand darf die Einlösung nie blockieren.

Datenmodell in Kurzform

TabelleZweckWichtigste Felder
vouchersein Datensatz je EintrittskarteAnbieter, Bezug zur Bestellposition, Code, Status, erlaubte und verbrauchte Einlösungen, Ablaufdatum
station_registration_tokensEinmal-Token fürs Anmelden eines GerätsAnbieter, Token, Gerätename, Ablauf, benutzt ja/nein
redemption_stationsregistrierte GeräteAnbieter, Name, Geräte-Token, aktiv, zuletzt gesehen
voucher_redemptionsHistorie der EinlösungenVoucher, Station, Zeitpunkt, Notiz, storniert am / von

Schnittstellen in Kurzform

Für den Admin (mit normaler Anmeldung)

Für die Check-in-App

Was in mitfit anders ist

Offene Punkte, in mitfit zu klären