Bestellkatalog und Kasse – Systembeschreibung

Positionsregeln des Katalogs, der Sitzungswarenkorb, die Planung von Tarifwechseln, Guthabenaufladung sowie Kassenvorschau und Bestellabgabe.

Überblick

Eine durchsuchbare Kachelliste aus Tarifen, Funktionen, Produkten, Dienstleistungen und Zusatzpaketen mit Warenkorb, Tarifwechselleiste und Tarifmatrix; der Warenkorb führt zur Kasse. Die Kasse hat keinen Menüpunkt. Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.

Katalog

  • Endpunkte: catalog.list (Seitengröße 12, 24, 48, 96, alle), catalog.matrix, catalog.matrixblock, catalog.planblock, catalog.cartadd, cartremove, cartclear.
  • Angezeigt werden: aktive Tarife (mit Definitionsverknüpfung), Funktionen nur mit access_type = 'SUBSCRIPTION' und list_price > 0, aktive Produkte und Dienstleistungen, aktive Zusatzpakete mit Preis. Bei gewähltem Shop nur ihm zugeordnete Positionen.
  • Der Warenkorb liegt in der Sitzung; die Positionsdaten lädt der Server aus dem Katalog, nicht vom Client.
  • catalog.order: Fehler bei leerem Warenkorb; ohne Kassen-view error_checkout_permission; sonst Weiterleitung zur Kasse. catalog.topup: Fehler unter dem Mindestbetrag; Dlbtbilling::payInWallet(..., 'testpay') lädt das Wallet des Mandanten auf und stellt Rechnung und Belegentwurf aus.
  • catalog.changeplan: gleicher Tarif → Fehler; Herabstufung → schedulePlanChange() (zum Ablauf, angewendet von subscription_lifecycle); Hochstufung → Tarif in den Warenkorb. catalog.cancelplan: löscht den anstehenden Wechsel. Dem Super-Admin wird die Schaltfläche nicht angezeigt.

Kasse

  • checkout, checkout.recalc, checkout.cartedit: Die Mandantenauswahl listet die Firmen in der Inhaltsberechtigung des Benutzers (Standard: Heimatmandant); Verkäufer Dlbtorder::sellerClientId; Übersicht Dlbtorder::preview() (Positionen, abgelehnte mit Grund, Zahlbetrag, Rabatte).
  • checkout.place (client_id, payment_method, use_wallet, store_id, note): Dlbtorder::create() (Begünstigter, Rechnungsempfänger und Zahler ist der gewählte Mandant; Dlbtpricing rechnet den Preis neu), danach Dlbtorder::pay(); bei Karte Weiterleitung; bei erfolgreicher Belastung bereitgestellt, sonst Proforma; bestellte Positionen verlassen den Warenkorb.

Berechtigungen und Einschränkungen

  • Katalog list: SYSTEM; order: BASE; changeplan, debug: nicht eingestuft.
  • Kasse view und place: nicht eingestuft und auch nicht im alten Katalog, daher ist canAction für Nicht-Super-Benutzer falsch, bis der Scan sie aufnimmt und sie zugewiesen werden. clientAllowed() prüft die Inhaltsberechtigung.
Related topics: Bestellung Tarif Berechtigungen