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'undlist_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-viewerror_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 vonsubscription_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äuferDlbtorder::sellerClientId; ÜbersichtDlbtorder::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;Dlbtpricingrechnet den Preis neu), danachDlbtorder::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
viewundplace: nicht eingestuft und auch nicht im alten Katalog, daher istcanActionfür Nicht-Super-Benutzer falsch, bis der Scan sie aufnimmt und sie zugewiesen werden.clientAllowed()prüft die Inhaltsberechtigung.