Zum Hauptinhalt springen

Warengruppen-Profile

Zweck

Warengruppen-Profile (ProductGroupProfile) sind die zentrale Mechanik, mit der pro Mandant gesteuert wird, welche Warengruppen und Hersteller-spezifischen Konditionen sichtbar sind. Ein Mandant ist über Client.productGroupProfileId mit genau einem Profil verknuepft — und sieht ausschliesslich Produkte aus den Warengruppen dieses Profils.

Voraussetzungen

- Mindestens eine Warengruppe (`ProductGroup`) ist vorhanden. - Berechtigung `create:ProductGroupProfile`.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_ProductGroupProfile, ProductGroupProfileListe/Details aufrufbar
create/update/deleteProductGroupProfilePflegenAPP_SPEAMCORE_CREATE/UPDATE/DELETE_PRODUCT_GROUP_PROFILE
viewProductGroupProfileProductGroupTab Warengruppen sichtbarAPP_SPEAMCORE_VIEW_PRODUCT_GROUP_PROFILE_PRODUCT_GROUP
viewProductGroupProfileProductGroupManufacturerSub-Liste Hersteller pro WarengruppeAPP_SPEAMCORE_VIEW_PRODUCT_GROUP_PROFILE_PRODUCT_GROUP_MANUFACTURER

Schritt-für-Schritt-Anleitung

Profil anlegen

  1. Warengruppen-Profile (/product-group-profiles) → + Neu.
  2. Name vergeben (z. B. „Brandschutz-Errichter Standard").
  3. Im Tab Warengruppen die freigegebenen Warengruppen ergaenzen.
  4. Pro Warengruppe optional die Liste der Hersteller mit individuellen Discount-Werten (Sub-Route /product-group-profiles/:id/product-groups/:pgId/manufacturers).

Mandanten zuordnen

Client.productGroupProfileId zeigt auf das Profil. Änderung erfolgt typischerweise über die Mandanten-Verwaltung (administrative Operation).

Listenansicht — product-group-profiles

Toolbar (Detail-Seite)

Schlanke Toolbar oben rechts:

IconAktion (aria-label)CASLWirkung
ZurückgehenZurück zur Liste.
🏠Zur Startseite gehenSpringt auf das Dashboard / /.
⏮/◀/▶/⏭PaginationNavigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung.

Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:

  • KAL. (Mini-Kalender)
  • ZEIT (Persoenliche Wochen-Arbeitszeit)
  • ARBEIT (Eigene bevorstehende Aufträge)

UI-Elemente

Tab: „Warengruppen"

Sub-Liste aller ProductGroupProfileProductGroup-Einträge für dieses Profil. Pro Warengruppe wiederum eine Sub-Liste der Hersteller-Einträge.

Felder und Eingaben

FeldnamePflichtDatentypBeschreibungWirkung beim AusfuellenVoraussetzung
namejaStringBezeichnung des Profils.Erscheint in Mandanten-Verwaltung und Reports.

Sub-Felder pro ProductGroupProfileProductGroupManufacturer

FeldnameDatentypWirkung
manufacturerIdUUIDHersteller, dessen Produkte mit Discount belegt sind.
discountFloatMandanten-spezifischer Rabatt pro Produkt-Kontext.
discountTypeEnumpercentage oder fixed.

Anlege-Pattern

ProductGroup und ProductGroupProfile strukturieren Produkte hierarchisch für Filter, Reports und Sonderkonditions-Regeln.

  • ProductGroup — flache oder hierarchische Klassifikation (z. B. „Brandmelder", „Sirenen", „Ventile").
  • ProductGroupProfile — kunden-/branchen-spezifische Sicht auf eine Gruppe (z. B. „Bestseller für Industriekunden").

Zuweisung Produkt → Gruppe(n) erfolgt am Produkt-Stamm (/products) über productGroupIds (Multi-Select).

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

  • Mandant (Client) — productGroupProfileId.
  • Produkte — Filter Product.productGroupId IN (allowedProductGroupIds) über beforeFind-Hook.
  • Hersteller — pro Warengruppe individuelle Discount-Werte.

Häufige Fehler und Lösungen

FehlerLösung
Mandant sieht keine ProdukteProfil hat keine Warengruppen — im Tab Warengruppen ergaenzen.
Discount greift nichtmanufacturerId und discountType muessen passend zu Produkt-Kontext sein.

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/product-group-profilesListeview ProductGroupProfile
GET/api/product-group-profiles/:idDetailview ProductGroupProfile
POST/api/product-group-profilesAnlegencreate ProductGroupProfile
PATCH/api/product-group-profiles/:idÄndernupdate ProductGroupProfile
DELETE/api/product-group-profiles/:idSoft-Deletedelete ProductGroupProfile

Versionshinweise

  • 2026-04-29: Initiale Veroeffentlichung.