WENTUS

Features

Detaillierte Feature-Übersicht von Los Santos Eats.

Bestellungszyklus

Bestellungen folgen einer Statemachine:

PLACED → PREPARING → READY → COURIER_SEARCH → ACCEPTED → PICKED_UP → EN_ROUTE → DELIVERED
  • Abbruch ist von jedem nicht-terminalen Zustand möglich.
  • Wird innerhalb von CourierSearchTimeout kein Kurier gefunden, wird die Bestellung automatisch storniert und erstattet.
  • Lässt ein Kurier die Bestellung fallen, kehrt sie zu COURIER_SEARCH zurück.

Store-Management

Store-Registry

Stores werden in Config.Stores definiert und in eats_stores.metadata persistiert. Laufzeitänderungen (Liefergebühr, Aktivierungszustand) werden über die Phone-App gespeichert.

Menü-Management

  • Seed-Menü definiert Anfangsprodukte und Preise.
  • Manager können Preise innerhalb von 75%-125% des Seed-Preises bearbeiten.
  • menuCatalog definiert genehmigte Produkte zum Hinzufügen zum Menü.
  • Max. Artikel und Preisänderungsprozentsatz pro Store konfigurierbar.

Store-Zustände

  • Geöffnet/Geschlossen — Über Phone-App umschalten.
  • Auto-ready — Bestellungen überspringen den READY-Zustand.

Kurier-Lieferung

Bestellungen akzeptieren

  • Kuriere sehen verfügbare Bestellungen in der Phone-App.
  • Musten die konfigurierte Jobrolle haben (Config.CourierJobs).
  • Begrenzt auf MaxConcurrentDeliveries gleichzeitig.

Abholung & Zustellung

  1. Kurier reist zum Store-Standort. Holt Bestellung innerhalb von PickupDistance ab.
  2. Reist zum Kundenstandort.
  3. Zustellt innerhalb von DropoffDistance.

Liefermodi

  • Direkt — Food wird bei Zustellung automatisch zum Kundeninventar hinzugefügt.
  • Kurier — Kurier erhält Food bei Abholung, übergibt manuell (RP-Modus).

Venue Self-Delivery

Wenn aktiviert, können Venue-Mitarbeiter ihre eigenen Bestellungen zustellen, wenn kein Kurier annimmt.


Zahlungssystem

Zahlungsmethoden

  • Bargeld — Vom Spielerkonto abgezogen.
  • Bank — Vom Bankkonto abgezogen.
  • Karte — Per tgg-banking-Kartengebühr.
  • Gesellschaft — Vom Gesellschaftskonto abgezogen (mindestens Grad erforderlich).

Gesellschaftszahlungen

Einnahmen fließen auf das Gesellschaftskonto des Stores. Unterstützt:

  • Renewed-Banking
  • tgg-banking
  • qb-banking / qb-management
  • okokBanking
  • codem-bank

Erstattungen

  • Automatische Erstattung bei Bestellungsstornierung.
  • Erstattungsmethode entspricht Zahlungsmethode.
  • Nachnahme-Bestellungen werden per Payouts.pay erstattet.

Aktionen

Store-Manager können Aktionen erstellen:

  • Prozentrabatt — Bis zu MaxPromoPercent (Standard: 30%).
  • Pauschalrabatt — Bis zu MaxPromoFlat (Standard: $500).
  • Aktionen gelten für den Bestellwert vor Liefergebühr.

Kunden-Features

Favoriten

  • Lieblingsstores für schnellen Zugriff speichern.
  • Pro Spieler in Datenbank gespeichert.

Adressen

  • Lieferadressen speichern.
  • Benannte Standorte für einfache Auswahl.

Bewertungen

  • Stores nach Lieferung bewerten.
  • In Datenbank gespeichert.

Phone-Apps

npwd

  • Externe App-API-Integration.
  • React-basierte UI mit Hot-Reload-Unterstützung.

lb-phone

  • Benutzerdefinierte App-Integration.
  • Vue.js-basierte UI.

qb-phone

  • iframe-basierte UI-Integration.
  • Patched qb-phone, um die App zu hosten.

Merchant-Onboarding

Mitarbeiter können neue Stores über die Phone-App erstellen:

  1. Mitarbeiter greift auf Onboarding zu.
  2. Gibt Store-Details ein (Name, Standort, Menü).
  3. Store wird mit Standardeinstellungen erstellt.
  4. Manager kann dann über App anpassen.

Erfordert Config.MerchantOnboarding.Enabled = true.


Nachnahme (COD)

Wenn aktiviert:

  1. Kunde wählt Nachnahme-Zahlung.
  2. Kurier sammelt Bargeld bei Zustellung.
  3. Kurier zahlt Bargeld auf Gesellschaftskonto ein.

Serverseitig validiert zur Exploit-Verhinderung.


Sicherheit

  • Alle Preise serverseitig validiert.
  • Items gegen Inventar verifiziert.
  • Berechtigungen bei jeder Aktion geprüft.
  • Rate-Limiting bei Kurier-Suche und Venue-Akzeptanz.
  • Max. Artikelpreis und Menügrößen-Obergrenzen.