CapabilitiesFunktionen

Everything a promotion
needs to live.
Alles, was eine Promotion
zum Leben braucht.

From the first rule to the final report: eight capability areas, one engine. Everything below is in the product today — and documented in the public manual. Von der ersten Regel bis zum letzten Report: acht Funktionsbereiche, eine Engine. Alles hier ist heute im Produkt — und im öffentlichen Handbuch dokumentiert.

01 · Promotion Builder

Every rule you've ever asked for. No code.Jede Regel, die Sie je gebraucht haben. Ohne Code.

Promotions are IF / THEN rules with AND / OR / NOT logic — built visually in Fiori by the people who own the promotion, not by a development team.Promotions sind IF/THEN-Regeln mit AND/OR/NOT-Logik — visuell in Fiori gebaut, von denen, die die Promotion verantworten. Nicht vom Entwicklungsteam.

  • Promotion types: article, article group, receipt and bundle promotions — including free items (buy 5, get 2).Promotion-Typen: Artikel-, Warengruppen-, Bon- und Bundle-Promotions — inklusive Gratisartikel (5 kaufen, 2 gratis).
  • Conditions on articles, article groups, quantities, receipt totals, customer groups, loyalty cards, manufacturers — combinable with AND / OR / NOT.Bedingungen auf Artikel, Warengruppen, Mengen, Bonsummen, Kundengruppen, Kundenkarten, Hersteller — kombinierbar mit AND / OR / NOT.
  • Validity windows: date ranges, recurring patterns, happy hour by time of day.Gültigkeitsfenster: Zeiträume, wiederkehrende Muster, Happy Hour nach Uhrzeit.
  • Targeting: scope promotions to POS groups — one store, a region, or every channel at once.Targeting: Promotions auf POS-Gruppen zuschneiden — ein Markt, eine Region oder alle Kanäle gleichzeitig.
Promotion Builder UI
The builderDer Builder
02 · Conflict Resolution02 · Konfliktauflösung

When promotions collide, you decide who wins.Wenn Promotions kollidieren, entscheiden Sie, wer gewinnt.

Four exclusivity levels and two grouping mechanisms resolve any pile-up of supplier deals, coupons and house promos — deterministically, before the POS ever rings.Vier Exklusivitätsstufen und zwei Gruppierungsmechanismen lösen jedes Knäuel aus Lieferanten-Deals, Coupons und Haus-Promos auf — deterministisch, bevor die Kasse klingelt.

Level 01NoneCombines with everything. Never blocks, never blocked.Kombiniert mit allem. Blockt nie, wird nie geblockt.
Level 02PromotionFires alone among Promotion- and Group-level rules at its priority.Greift allein unter Promotion- und Gruppen-Regeln seiner Priorität.
Level 03GroupExclusive inside its priority group; outside, others fire freely.Exklusiv innerhalb seiner Prioritätsgruppe; außerhalb greifen andere frei.
Level 04GlobalIf it fires, nothing else applies.Greift es, greift sonst nichts.
  • Priority groups: each promotion belongs to at most one. Higher tiers evaluate first — supplier-funded promos beat house promos.Prioritätsgruppen: jede Promotion gehört zu höchstens einer. Höhere Tiers werden zuerst ausgewertet — lieferantenfinanzierte Promos schlagen Haus-Promos.
  • Mutual exclusion groups: rival promos duel, the better discount wins. One promotion can sit in several exclusion groups at once.Ausschlussgruppen: konkurrierende Promos duellieren sich, der bessere Rabatt gewinnt. Eine Promotion kann in mehreren Ausschlussgruppen gleichzeitig sitzen.
  • Deterministic: the same basket gives the same answer — every time, on every channel.Deterministisch: derselbe Korb liefert dieselbe Antwort — jedes Mal, auf jedem Kanal.
03 · Simulator & Upsell

Test the basket before the customer brings it.Testen Sie den Warenkorb, bevor der Kunde ihn bringt.

The simulator runs any basket through the exact same evaluation logic as the live endpoint — read-only, with zero side effects. No coupon burned, no budget consumed, no audit entry written.Der Simulator schickt jeden Warenkorb durch exakt dieselbe Bewertungslogik wie der Live-Endpunkt — read-only, ohne Nebenwirkungen. Kein Coupon verbraucht, kein Budget belastet, kein Audit-Eintrag geschrieben.

  • Same logic, guaranteed: /v2/simulate and /v2/evaluate share one engine. What you simulate is what fires.Garantiert dieselbe Logik: /v2/simulate und /v2/evaluate teilen sich eine Engine. Was Sie simulieren, ist was greift.
  • Recommendations & nudges: the response tells the POS when one more item would unlock the next promotion — including the potential saving.Empfehlungen & Nudges: die Antwort sagt der Kasse, wenn ein Artikel mehr die nächste Promotion freischaltet — inklusive der möglichen Ersparnis.
  • Near-Misses: "€8.40 away from the €10-off coupon" — as structured data your POS or shop can display.Near-Misses: „Noch 8,40 € bis zum 10-€-Coupon" — als strukturierte Daten, die Kasse oder Shop anzeigen können.
  • Missed promotions: on request, the engine explains which promos almost fired, and why they didn't.Verpasste Promotions: auf Wunsch erklärt die Engine, welche Promos fast gegriffen hätten — und warum nicht.
Simulator UI
Simulator with recommendationsSimulator mit Empfehlungen
04 · Coupons

A full coupon lifecycle, not a code field.Ein kompletter Coupon-Lebenszyklus, kein Codefeld.

Validate, reserve, redeem, cancel, activate, issue — coupons move through a real state machine with an API operation for every step of the transaction.Validieren, reservieren, einlösen, stornieren, aktivieren, ausgeben — Coupons durchlaufen eine echte State Machine, mit einer API-Operation für jeden Schritt der Transaktion.

  • Reserve-then-redeem: the POS reserves a coupon during checkout and redeems it on confirmation — no double spending between two lanes.Reserve-then-redeem: die Kasse reserviert den Coupon im Checkout und löst ihn bei Bestätigung ein — kein Doppeleinsatz zwischen zwei Kassen.
  • Batch generation: generate coupon code batches for campaigns; pools refill automatically via background jobs.Batch-Generierung: Coupon-Codes stapelweise für Kampagnen erzeugen; Pools füllen sich per Hintergrundjob automatisch nach.
  • Personalized & digital: coupons can be activated by the customer in a mobile app (CREATED → ACTIVE) before first use.Personalisiert & digital: Coupons können vom Kunden in einer Mobile App aktiviert werden (CREATED → ACTIVE), bevor sie gelten.
  • Coupon-triggered promotions: a coupon can be the condition that unlocks any promotion the builder can express.Coupon-getriggerte Promotions: ein Coupon kann die Bedingung sein, die jede im Builder modellierbare Promotion freischaltet.
  • Post-purchase coupons: hand the customer a single-use “come back” coupon at checkout — then track comeback redemptions: issued, redeemed and redemption rate per campaign.Nachkauf-Coupons: dem Kunden beim Bonabschluss einen einmaligen „Komm-zurück“-Coupon mitgeben — und Comeback-Einlösungen messen: ausgegeben, eingelöst und Einlösequote je Kampagne.
05 · Budgets & Stakeholders

Promotions that stop at the budget line.Promotions, die an der Budgetgrenze halten.

Attach budgets to promotions and the engine enforces them at evaluation time. When the money is spent, the promotion stops firing — by itself.Hängen Sie Budgets an Promotions, und die Engine setzt sie zur Laufzeit durch. Ist das Geld verbraucht, hört die Promotion auf zu greifen — von selbst.

  • Budget consumption on confirm: only confirmed transactions consume budget — simulations never do.Budgetverbrauch bei Bestätigung: nur bestätigte Transaktionen verbrauchen Budget — Simulationen nie.
  • Budget-limited responses: the API tells the POS when a promotion was capped by budget, and why.Budget-limitierte Antworten: die API sagt der Kasse, wenn eine Promotion durch Budget gedeckelt wurde — und warum.
  • Stakeholder costs: split who pays for a promotion — supplier, marketing, store — and report on it per stakeholder.Stakeholder-Kosten: aufteilen, wer eine Promotion bezahlt — Lieferant, Marketing, Markt — und pro Stakeholder auswerten.
06 · Reporting & Audit

Numbers your controller can take apart.Zahlen, die Ihr Controlling auseinandernehmen kann.

Every discount the engine grants is recorded, attributable and explainable — from campaign dashboards down to the single basket.Jeder Rabatt, den die Engine gewährt, ist erfasst, zuordenbar und erklärbar — vom Kampagnen-Dashboard bis zum einzelnen Warenkorb.

  • Performance per promotion: redemptions, discount volume, results over time — analytical Fiori reports.Performance pro Promotion: Einlösungen, Rabattvolumen, Verlauf — analytische Fiori-Reports.
  • Budget & coupon reports: utilization, redemption rates, remaining pools.Budget- & Coupon-Reports: Auslastung, Einlösequoten, verbleibende Pools.
  • A/B results: compare promotion variants on real transaction data.A/B-Ergebnisse: Promotion-Varianten auf echten Transaktionsdaten vergleichen.
  • Calculation log: a per-basket audit trail — which rules fired, which were blocked, and by what. Line by line.Berechnungsprotokoll: ein Audit-Trail pro Warenkorb — welche Regeln griffen, welche geblockt wurden und wodurch. Zeile für Zeile.
  • Export: reporting data flows to your BW or data lake via OData.Export: Reporting-Daten fließen per OData in Ihr BW oder Ihren Data Lake.
Reports UI
AnalyticsAnalytics
07 · Master Data & Integration07 · Stammdaten & Integration

Your articles, your groups — imported, not retyped.Ihre Artikel, Ihre Gruppen — importiert, nicht abgetippt.

DRE holds the master data a promotion needs — articles, article groups, POS groups, priority groups — and takes it from wherever it already lives.DRE hält die Stammdaten, die eine Promotion braucht — Artikel, Warengruppen, POS-Gruppen, Prioritätsgruppen — und bezieht sie von dort, wo sie ohnehin liegen.

  • SAP-native sources: SAP Retail, CAR, S/4 — articles, groups and prices flow in via DRFOUT / SOAP or REST.SAP-native Quellen: SAP Retail, CAR, S/4 — Artikel, Gruppen und Preise fließen per REST hinein.
  • Any ERP or MDM: the same import APIs work for non-SAP backends.Jedes ERP oder MDM: dieselben Import-APIs funktionieren für Nicht-SAP-Backends.
  • Bulk imports as jobs: large imports run asynchronously with a status URL to poll — no timeouts, no partial mysteries.Massenimporte als Jobs: große Importe laufen asynchron mit Status-URL zum Abfragen — keine Timeouts, keine halben Rätsel.
  • Maintained in Fiori: master data apps for everything you'd rather edit by hand.Pflege in Fiori: Stammdaten-Apps für alles, was Sie lieber von Hand pflegen.
08 · Operations & Security08 · Betrieb & Security

Boring on purpose: tenancy, auth, observability.Mit Absicht langweilig: Tenancy, Auth, Observability.

The unglamorous parts are where engines fail in production. DRE treats them as product features, not afterthoughts.An den unglamourösen Stellen scheitern Engines in der Produktion. DRE behandelt sie als Produkt-Features, nicht als Nachgedanken.

  • Multi-tenant isolation: every customer gets an isolated tenant with its own data — onboarding and offboarding are managed lifecycle operations.Multi-Tenant-Isolation: jeder Kunde erhält einen isolierten Tenant mit eigenen Daten — On- und Offboarding sind verwaltete Lifecycle-Operationen.
  • Role-based access via XSUAA: admins, promotion managers, budget managers and POS readers see exactly what their role allows.Rollenbasierter Zugriff via XSUAA: Admins, Promotion Manager, Budget Manager und POS-Reader sehen genau das, was ihre Rolle erlaubt.
  • mTLS for POS terminals: they authenticate with mutual TLS certificates.mTLS für POS-Terminals: Kassen authentifizieren sich mit Mutual-TLS-Zertifikaten.
  • Health & metrics endpoints: live DB/cache connectivity checks and Prometheus metrics for your monitoring.Health- & Metrics-Endpunkte: Live-Checks für DB/Cache-Konnektivität und Prometheus-Metriken für Ihr Monitoring.
  • Caching layer: a Redis cache keeps evaluation latency flat under load.Caching-Schicht: ein Redis-Cache hält die Bewertungslatenz auch unter Last flach.

Performance figures — 35,700 requests, 0 failures, 121 ms P95 on the smallest tier — live on the numbers section.Die Performance-Zahlen — 35.700 Requests, 0 Fehler, 121 ms P95 auf dem kleinsten Tier — stehen im Zahlen-Abschnitt.