06.02.2024 | Lisa Kiesel
In unserem heutigen Blogbeitrag tauchen wir in den grundlegenden Prozessablauf der Preisberechnung in SAP OPP(S) ein. Dieser Prozess startet mit einer Preiskalkulations-Anfrage, die vom Service-Client über die Calculation API gesendet wird. Die eigentliche Berechnung erfolgt durch eine Preis-Engine, die insgesamt vier Schlüsselschritte durchläuft: Request Processing, Eligibility Loading, Promotion Calculation und Transaction Update. Nach diesen Berechnungsschritten gibt die Preis-Engine schließlich eine Antwort an den Service-Client zurück.
Diese Prozesse sind mehr als nur technische Vorgänge – die Effizienz Ihrer Preisgestaltung kann hierdurch maßgeblich positiv beeinflusst werden. SAP OPP(S) garantiert Ihnen konstante Aktionspreise, über alle Verkaufskanäle hinweg!
Die Berechnung des effektiven Preises wird initiiert durch eine Preiskalkulations-Anfrage, die von dem Service-Client über die Calculation API gesendet wird.
Die eigentliche Berechnung basiert auf der „Aktionspreiskalkulations-Engine“, welche anschließend 4 Schritte durchläuft:
Nachdem die Preis-Engine die Schritte durchlaufen hat, gibt sie eine Antwort an den Service Client zurück.
Im Allgemeinen benötigt die Engine Informationen bezüglich des Einkaufs und der Aktion, um den Rabatt für den Kunden zu berechnen und auf die entsprechenden Artikel anzuwenden. Die Kaufdetails werden in der Anfrage und der Antwort gespeichert, während die Preis- und Aktionsinformationen in den Preis- und Aktionsdaten von OPPS hinterlegt sind.
Der Zugriff auf die Preis- und Aktionsdaten erfolgt bei der Ermittlung der effektiven Verkaufspreise über das Data Access Modul von OPP. Diese Daten können mithilfe des Data Upload Service von OPP als IDocs erfasst und aktualisiert werden.
Die Anfrage zur Preisberechnung umfasst sämtliche erforderlichen Informationen zum Kauf, einschließlich Datum, Uhrzeit, Artikel im Warenkorb und etwaigen Gutscheinen des Kunden.
Die Antwort auf die Preisberechnung enthält alle zuvor erhaltenen Informationen, die für den Kalkulationsdienst notwendig sind. Hierzu zählen auch Änderungen an regulären Preisen sowie Informationen über die Ableitungsregeln für Aktionspreise, die diese Änderungen hervorgerufen haben. Dies gewährleistet die Rückverfolgbarkeit der vorgenommenen Modifikationen durch die Engine. Die hinzugefügten Informationen sind nach den beiden Haupttypen von Aktionen unterteilt: Rabatte und Prämien. Zudem enthält die Antwort natürlich auch den berechneten effektiven Verkaufspreis.
Im ersten Schritt wird die Anfrage für die Berechnung von Rabatten, Prämien und Treuepunkten vorbereitet.
Der Calculation Service empfängt die Anfrage vom Berechnungsdienst-Client über die Calculation-API. Die Anfrage enthält, wie bereits erwähnt, alle erforderlichen Informationen über den Kauf.
Die Engine parst die Anfrage dann in ein internes Format, die Transaktion. Die Transaktion stellt die Anfrage dar, die während des gesamten Prozesses schrittweise geändert wird. Wie die Anfrage enthält auch die Transaktion alle notwendigen Informationen über den Kauf.
Eines der wichtigsten Elemente der Transaktion ist die Belegposition, die Informationen über die gelieferten Waren enthält. Diese Einzelposten lösen die Regeln für die Ableitung von Aktionspreisen aus. In einer Transaktion stellt ein Einzelposten einen Artikel in einem Einkaufswagen oder einen Coupon dar und kann ein Produkt oder eine Ware sein, die ein Kunde gekauft hat. Ein Einzelposten gibt die Position eines Artikels in der Transaktion an und enthält relevante Informationen, z. B. wie viele Artikel eines Produkts der Kunde kauft.
Nach dem Parsen der Anfrage prüft die Engine, welcher Berechnungsmodus für die Transaktion aktiv ist. Der Berechnungsmodus kann entweder im Einzelpostenmodus oder im Warenkorbmodus durchgeführt werden. Im Einzelpostenmodus wird die Transaktion in Teile aufgeteilt, die nur einen Einzelposten enthalten, während im Warenkorbmodus der Warenkorb der Transaktion als Ganzes verwaltet wird. In beiden Fällen wird die Transaktion für die normalisierte Berechnung von Einzelposten vorbereitet.
In diesem Schritt werden die sogenannten „price derivation rule eligibilities“ (Kann mit „Preisableitungsregelberechtigungen“ übersetzt werden, im weiteren Verlauf des Blogs spreche ich lediglich von „Berechtigungen“) geladen, die von der gerade bearbeiteten Transaktion erfüllt werden. So werden die Voraussetzungen genannt, die nötig sind, damit eine Preisableitungsregel aktiv wird.
Nachdem die Transaktion vorbereitet ist, werden die Berechtigungen über das Data Access Modul geladen.
Wenn alle Berechtigungen geladen sind, prüft die Engine, welche erfüllt sind. Erfüllt sind diese dann, wenn bestimmte Trigger innerhalb einer Transaktion zutreffend sind. Die erfüllten Berechtigungen werden dann aktiviert. Bei bereits aktiven Berechtigungen prüft die Engine (rekursiv in Baumstruktur), ob eine übergeordnete Berechtigung existiert und, falls ja, ob diese ebenfalls aktiviert werden kann.
In diesem Schritt geht es darum, die Rabatte und Belohnungen zu berechnen. Dafür werden zunächst die Reduzierungen anhand der aktivierten Berechtigungen und den Transaktionsdaten ermittelt. Hierzu werden die spezifischen Regeln für die Preisableitung, die durch die erfüllten Bedingungen aktiviert wurden (Schritt zuvor), geladen. Die Promotion Calculation Engine überprüft dann, ob diese Regeln gültig sind, und ordnet sie nach ihrer Sequenznummer.
Die eigentliche Berechnung der Preise erfolgt in zwei Modi: auf der Ebene der Einzelpositionen und auf der Transaktionsebene. Im "line item"-Modus werden die Vorteile für jede einzelne Position unabhängig voneinander berechnet. Im "transaction"-Modus hingegen erfolgt die Berechnung für den gesamten Einkaufswagen.
Es ist wichtig zu erwähnen, dass die regelbasierten Reduzierungen auf der Transaktionsebene erst nach der Berechnung der Einzelpositionen berücksichtigt werden. Diese Transaktionsregeln stützen sich immer auf die zuvor berechneten regelbasierten Reduzierugen der Einzelpositionen. Auf diese Weise gewährleistet der Prozess eine kohärente und sinnvolle Berechnung von Rabatten und Belohnungen basierend auf den festgelegten Regeln und den vorliegenden Transaktionsdaten.
In diesem Schritt werden die berechneten Rabatte, Prämien und Informationen für den Calculation Service Client zu den entsprechenden Transaktionselementen hinzugefügt. Außerdem wird die Antwort erstellt und über die Calculation-API zurück an den Client übertragen.
Die in den vorherigen Schritten berechneten Rabatte und Prämien werden benötigt, um die Aktionsberechnung für die aktuell bearbeitete Transaktion zu aktualisieren. Die Aktualisierung enthält auch Informationen über die angewandten Aktionspreisreduzierungsregeln oder die Aktionsdaten. Wenn eine Aktion existiert und mehrere Positionen betroffen sind, wird die Aktion auf alle relevanten Positionen der Transaktion anteilig übertragen. Modifikatoren werden vorbereitet und zu den betroffenen Positionen hinzugefügt. Schließlich wird die Transaktion in die Antwort umgewandelt.
Die Antwort enthält alle Modifikationen, wie z. B. die Identifikatoren für die angewandten Aktionspreisreduzierungsregeln und die berechnete Leistung. Es gibt insgesamt vier Modifikatoren:
- Modifikator für den Verkaufspreis oder die Preisänderungsposition, die einen monetären Rabatt enthält
- Modifikator für Vielkäuferpunkte oder die Treueprämienposition, die Treuepunkte enthält.
Die Transaktion kann auch den Ausdruck eines Coupons, eines Geschenkgutscheins und Informationen für eine Aktion enthalten, die der Kunde anschließend durchführt.
In diesem Blogbeitrag haben wir einen umfassenden Blick auf den Preisberechnungsprozess in SAP OPP(S) geworfen und die Schritte im Detail beleuchtet. Das Herzstück der Berechnung des effektiven Verkaufspreises in SAP OPP(S) ist die Preis-Engine, welche 4 Schritte durchläuft. Jeder dieser Schritte haben wir in diesem Blogbeitrag detailliert betrachtet.
Wenn Sie durchgehend konsistente Aktionspreise über alle Verkaufskanäle hinweg haben möchten, dann ist SAP Omnichannel Promotion Pricing die richtige SAP-Anwendung für Ihr Unternehmen. Die Integration in Ihre individuelle Systemarchitektur kann sehr flexibel geschehen. Wie in unserem vorherigen Blogbeitrag zu SAP OPPS erläutert, gibt es verschiedene Deployment Möglichkeiten. Ob in der Cloud (z.B. auf der SAP BTP) oder lokal, bleibt dabei Ihnen überlassen.
Wir hoffen, Ihnen einen guten Überblick über den Calculation Service in SAP OPP(S) zu haben. Wenn Sie nun noch weitere Fragen zum Thema haben, dann melden Sie sich bei uns – Unsere SAP CAR Experten helfen Ihnen gerne!