Rezept: Inventur per Smartphone
QR-Code scannen, Stückzahl per Sprache eintippen, Bestand wandert direkt ins Warenwirtschaftssystem.
Klassisches Mobile-First-Szenario: Mitarbeitende laufen mit dem Smartphone durchs Lager, scannen QR-Codes auf den Regalen, sagen die gezählte Menge — der Bestand landet ohne weitere Tipparbeit in der Warenwirtschaft.
Ziel
- Mitarbeitende öffnen die TaskMonkey-App, wählen den Assistant „Inventur"
- Pro Artikel: QR-Code scannen → das Modell weiß sofort, welche SKU
- Sprach-Eingabe: „15 Stück" → Bestand wird gesetzt
- Bestätigung mit Produktname und neuem Wert
Voraussetzungen
- Eine API zum Lesen und Schreiben von Beständen (Shopify, JTL, eigene WaWi)
- TaskMonkey-App installiert auf dem Mitarbeiter-Smartphone
1. API in apis.php
<?php
return [
'apis' => [
'wawi' => [
'base_url' => 'https://wawi.kunde.de/api/',
'headers' => [
'Authorization' => 'Bearer abc123',
'Accept' => 'application/json',
],
],
],
];
2. Tools
tools/wawi/getProductBySku.php:
<?php
return [
'tools' => [
'getProductBySku' => [
'description' => 'Produkt per SKU abrufen — auch wenn sie aus einem QR-Code kommt.',
'parameters' => [
'type' => 'object',
'properties' => ['sku' => ['type' => 'string']],
'required' => ['sku'],
],
'api' => 'wawi',
'method' => 'GET',
'path' => 'products/{sku}',
'mapping' => [
'sku' => 'sku',
'name' => 'name',
'currentStock' => 'stock.available',
'unit' => 'unit',
],
],
],
];
tools/wawi/setStock.php:
<?php
return [
'tools' => [
'setStock' => [
'description' => 'Bestand für eine SKU auf einen neuen Wert setzen.',
'parameters' => [
'type' => 'object',
'properties' => [
'sku' => ['type' => 'string'],
'quantity' => ['type' => 'integer'],
],
'required' => ['sku', 'quantity'],
],
'api' => 'wawi',
'method' => 'PUT',
'path' => 'products/{sku}/stock',
'body' => ['available' => '{quantity}'],
'mapping' => [
'sku' => 'sku',
'newStock' => 'stock.available',
],
],
],
];
3. Assistant
assistants/inventur.php:
<?php
return [
'assistants.inventur' => [
'name' => 'Inventur',
'description' => 'Bestände scannen und aktualisieren.',
'icon' => '📋',
'tools' => [
'getProductBySku',
'setStock',
'setSuggestions',
],
'greeting' => 'Scanne den ersten Artikel oder sag mir die SKU.',
'suggestions' => [
'Aktuellen Stand prüfen',
'Inventur abschließen',
],
],
'assistants.inventur.prompt' => <<<PROMPT
Du bist der Inventur-Assistent. Mitarbeitende sind im Lager
unterwegs und nutzen die Smartphone-App.
Ablauf pro Artikel:
1. SKU bekommst du entweder per QR-Scan (eingehender Text aus dem
Scanner) oder per Spracheingabe.
2. Rufe getProductBySku auf, um Name + aktuellen Stand zu prüfen.
3. Bestätige kurz: "Tomaten Rispen — aktuell 23 Stück. Wie viele
sind tatsächlich da?"
4. Wenn Antwort kommt (typisch per Spracheingabe als Zahl):
setStock aufrufen.
5. Bestätigen: "Aktualisiert: Tomaten Rispen, neuer Bestand 18 Stück.
Nächster Artikel?"
Wenn der Benutzer "fertig" sagt: kurze Zusammenfassung der heute
aktualisierten Artikel.
Antworte kurz und freundlich. Maximal 1-2 Sätze pro Schritt.
PROMPT,
];
4. Aktivierungs-Hinweis im Widget
QR-Scanner und Voice-Input werden in Assistant-Chats automatisch aktiviert (chat_id beginnt mit task_). Du musst sie nicht extra in widget.php einschalten — funktioniert ab Werk.
5. Mobile testen
- App öffnen, mit Mitarbeiter-Login einloggen
- „Inventur" aus dem Dashboard wählen
- QR-Code testen, dann Spracheingabe testen
- Im Server-Log prüfen, ob
setStockmit den richtigen Args läuft:
tm monitor # läuft im Hintergrund auf deinem Rechner
Erweiterungen
- Mehrlager-Support: zusätzlicher Tool-Parameter
location, Assistant fragt zuerst nach dem Lager - Differenz-Bericht: am Ende automatisch eine Zusammenfassung „so viele Stück abweichend von Vorbestand"
- Foto-Upload bei Auffälligkeit: „Auf dem Foto sehe ich beschädigte Verpackung" → das Modell erkennt es und legt Notiz an
- Offline-Buffer: Bei schlechtem WLAN im Lager — aktuell läuft alles online, geplante App-Erweiterung