Zusammenfassung
In
diesem Artikel wollen wir zeigen, wie man mit Bordmitteln
Rahmenverträge im Verkauf nutzen kann, obwohl es die Funktion in
Odoo Standard offiziell nicht gibt.
Dabei
gehen wir von der Anlage des Vertrags bis zur Auswertung.
Schritt 1: Anlage als Angebot
Schritt 2: Generieren der Preisliste als
Konsequenz aus den Preisen und als Darstellung des Rahmenvertrags
Schritt 3: Anlage der Abrufe über
Duplizieren, Excel oder Angebotsvorlagen
Schritt 4: Soll-Ist-Vergleich und
Darstellung der Menge, die vom Rahmenvertrag bereits abgerufen wurde
Wir
werden dabei feststellen, dass die Anzahl der Anforderungen und der
Funktionen nicht immer 1:1 in einem System vorhanden sein muss.
Manchmal helfen Systemkenntnis und etwas Einfallsreichtum, um zum
selben Ziel zu kommen.
Ausgangssituation
In
nahezu jedem Unternehmen mit Fokus auf B2B kommt irgendwann die
Anforderung, kundenseitige Rahmenverträge im System abzubilden. In
der Regel geht es um die Darstellung von vier grundlegenden
Funktionen:
1)
Preise
Im
Rahmen des Abrufs wurden abweichende Preise / Rabatte vereinbart, die
künftig berücksichtigt werden sollen.
2)
Mengen
Die
in (1) vereinbarten Preise sind an einen zeitlichen Rahmen und eine
Abnahmemenge gebunden. Beides muss natürlich regelmäßig geprüft
werden, um festzustellen, ob die Vereinbarung wie geplant eingehalten
wird oder eine Anpassung notwendig ist.
3)
Schneller Abruf
Um
einen effektiven Prozess zu gewährleisten, sollte eine schnelle
Erfassung Teil der Umsetzung sein, allein, um Fehlerpotentiale so
weit wie möglich zu minimieren. Daher sollten die im Rahmenvertrag
enthaltenen Produkte rasch abgerufen werden können. Gegebenenfalls
gibt es sogar einen Lieferplan, dessen Mengen in den Bedarf
eingeplant werden müssen.
4)
Reporting
Unabhängig
davon geht es nicht nur um die Frage, wie viele Rahmenverträge
vorhanden und wie diese strukturiert sind, sondern auch um den
Soll-Ist-Vergleich für die Umsatzplanung.
Jeder
erfahrene Odoo Nutzer weiß, dass im Einkauf / Purchase Modul unter
den Einstellungen die Erweiterung “Purchase Agreements“ (also
„Kaufverträge“) aktiviert werden kann.
(Abb.1)

Nach der Aktivierung lassen sich unterschiedliche Kaufvertragsarten, wie Ausschreibungen oder Rahmenverträge (Blanket Orders), erstellen und konfigurieren. Wichtig dabei ist, dass wesentliche Informationen in einem Bildschirm verwaltet und eingesehen werden können:
(Abb.2)

Die zentralen Punkte hier sind wohl die Zuordnung zu einem Lieferanten (“Vendor“), die Laufzeit des Agreements (“Agreement Deadline“), die Gegenüberstellung der im Vertrag vereinbarten Menge (hier als “Quantity“ dargestellt) und natürlich die bereits beim Lieferanten abgerufene Menge (“Ordered Quantities“).
Natürlich ist es schön, die Chatterbox und Dateiablage zur Verfügung zu haben, über die wie gewohnt versioniert und kommuniziert werden kann. Außerdem können hier alle vorgangsbezogenen Dateien abgelegt werden und sind damit direkt abrufbar.
Ein separates Berichtswesen gibt es jedoch nicht. Im Endeffekt sind hier die Punkte 1-3 dargestellt. Punkt 3 wird über die Konfiguration der Vertragstypen abgebildet; hier kann das Verhalten bei Neuanlage eines RfQs festgelegt werden (siehe rechter Bereich):
(Abb.3)
Hintergrundinformationen
Eine vergleichbare Funktion gab es im Modul Verkauf noch nie. Wir können nur spekulieren, warum sie in dieser Form nicht so explizit eingeführt wurde.
Die Hauptaufgabe des Einkaufs ist es, den bestmöglichen Preis auszuhandeln. Dies lässt sich meist über eine entsprechende Menge erzielen. Die Festlegung eines Einkaufsrahmens und die Durchführung einer damit verbundenen Ausschreibung sind daher eigentlich Standardprozesse und bedürfen damit auch einer Abbildung in einem integrierten System.
Zu den Aufgaben eines ERP-Systems gehören darüber hinaus die Ermittlung eines Mengenbedarfs aus dem Verkauf sowie die Umrechnung und Weitergabe an den Einkauf, unter Berücksichtigung der Lieferzeitpunkte. Dabei gilt es, mehrere Anwendungsfälle zu unterscheiden:
Einkaufsartikel oder Komponenten, deren Konditionen bereits feststehen
Artikel und Mengen, deren Preise und Konditionen ermittelt werden müssen (unabhängig davon, ob diese aus einem Projekt kommen oder über einen festgelegten Zeitraum eingeplant sind)
Damit
muss es auch die Möglichkeit geben, zwei unterschiedliche Prozesse
steuern zu können.
Im
Odoo Verkauf ist zur Darstellung der Rahmenbedingungen lediglich die
Abbildung von Preislisten verfügbar. Diese sind vielseitig
einsetzbar und nicht nur zur Steuerung von individuellen Preisen
gedacht. Sie können darüber hinaus im Rahmen von Kampagnen
eingesetzt werden, um entsprechend unterschiedliche Vertriebskanäle
preislich zu regulieren oder um unterschiedliche Vertragsarten zu
signalisieren. Warum Odoo hier nicht weiter gegangen ist, kann man
nur vermuten. Doch jede Vermutung ändert nichts an der Tatsache,
dass es keine weiteren spezifischen Funktionen gibt.
Abbildung im Verkauf
Natürlich
stellt sich die berechtigte Frage, was mit den restlichen Punkten
ist. Immerhin ist der Preis ja nur ein, wenn auch ein wesentlicher
Teil einer Verkaufsvereinbarung.
Mengen
Kommen
wir zur Gegenüberstellung der im Rahmenvertrag hinterlegten und der
bereits abgerufenen Menge, also zum Vergleich, den man direkt in
Abb.2 sehen kann.
Schritt 1
Die Lösung ist im Grunde ganz einfach. Schauen wir uns dazu mal an, was im wahren Leben geschieht:
Wir erhalten eine Anfrage. Diese wäre im CRM wahrscheinlich eine Verkaufs-Chance / Opportunity.
Von dort kommen wir in ein Angebot, das die Kalkulation bzw. den Rahmenvertrag darstellt. Hier können wir die volle Bandbreite des Angebotswesens in Odoo nutzen, sprich Kalkulation und Kommunikation und damit die vollständige Versionierung an einer Stelle.
Sollte es notwendig werden, unterschiedliche Kalkulationen zu erstellen, könnten die Angebote dupliziert und entsprechend separate Berechnungen erstellt werden. Blendet man das „Cost“-Feld mit ein, lassen sich hier auch kalkulatorische Einkaufspreise hinterlegen. Dies hätte zwei Vorteile:
Wir sehen die geplante Marge für den Gesamtauftrag ausgewiesen (prozentual und monetär).
Es gibt einen Vergleichsparameter zum späteren IST oder einen Ausgangswert zum Einkauf.
Wichtig dabei: Sollte es zur Unterschrift des Vertrags kommen, darf das Angebot nicht bestätigt werden: Es muss im Status „Angebot“ bzw. „Angebot versendet“ bleiben, andernfalls erscheint unsere Kalkulation in der Umsatzstatistik. Obendrein würde sie eine Lieferung auslösen und vermutlich sogar deutlich mehr (wie z.B. Meldebestände, Einkaufsanfragen, etc.).
Damit stellt sich die grundsätzliche Frage, wie eine kaufmännische Beauftragung festgehalten wird. Da wir die technische Beauftragung nicht auslösen können, bleibt eine rein kommunikative Lösung, nämlich eine manuelle Bestätigung per E-Mail und eine entsprechende interne Notiz in der Chatterbox.
Sollte
es mehrere Versionen des Rahmenvertrags (sprich Angebote) gegeben
haben, müssen natürlich alle nicht gezeichneten Vorgänge
abgebrochen werden, sonst wird das Bild im Report deutlich
verfälscht.
Schritt 2
Der nächste Schritt ist die Überführung der preislichen Bedingungen in eine Preisliste, da alle Abrufe ja die entsprechenden Konditionen enthalten sollten.
Um eine zeitraubende manuelle Anlage zu vermeiden, kann man das Angebot exportieren, in das Importformat einer Preisliste umwandeln und dann als solche importieren.
Das Format erhält man recht einfach durch Export einer bestehenden Preisliste. Das könnte dann so aussehen:
(Abb.4)
Wenn es weniger Positionen sind, ist ein manueller Übertrag allerdings womöglich schneller. Dies gilt auch, wenn man noch nicht so oft mit dem Export und Import von Odoo gearbeitet hat.
Wichtig dabei sind zwei Punkte:
die Preisliste muss die Vertragsnummer enthalten und dazu einen sprechenden Namen.
dem Angebot, das den Rahmenvertrag symbolisiert, muss nun als erstes die Preisliste zugewiesen werden. Eine Neuberechnung der Preise sollte NICHT durchgeführt werden.
Der schnelle Abruf von …
Dieser Schritt ist für den einen oder anderen vielleicht optional und kann in unterschiedlicher Form durchgeführt werden. Hier muss man entscheiden, was für die jeweilige Situation die effizienteste und effektivste Lösung ist. Und vielleicht gilt auch hier, dass es nicht die eine Lösung für alle gibt.
Es geht darum, die Abrufe aus dem Rahmenvertrag schnell und möglichst fehlerfrei zu erfassen und zu terminieren.
Die
Lösungsoptionen wären Duplizieren des Angebots, Excel-Import und
Angebotsvorlagen.
Duplizieren
Der einfachste Weg ist natürlich, das Angebot, das den Rahmenvertrag symbolisiert, aufzurufen und zu duplizieren. Hier werden dann entsprechend die Mengen und Positionen sowie der Liefertermin angepasst.
Die Abrufe können selbstverständlich auch über eine Exceltabelle geladen werden. Dies kann in zwei Anwendungsfällen sogar hilfreich sein:
Fall 1) Die Lieferzeitpunkte und Abrufmengen sind Teil des Rahmenvertrags. Dann würde es Sinn machen, sie in Excel anzulegen und darüber ins System zu laden. Damit wären sie gut sichtbar und die Mengen planbar. Mit einer Aktivität versehen, lägen die Termine dem Vertrieb zur Wiedervorlage vor, könnten rechtzeitig noch einmal bestätigt werden und würden damit kontrolliert in die Bedarfsplanung gehen.
Fall 2) Die Exceldatei liegt dem Kunden vor und er schickt darüber die benötigten Mengen zu den jeweiligen Produkten. Dies kann nun einfach in Odoo geladen werden. Ebenfalls vorteilhaft an diesem Ansatz ist, dass der Kunde über seinen Portalzugriff die Abrufe schon vorab einsehen und dazu kommunizieren kann.
Angebotsvorlagen
Die letzte Alternative schließt ein wenig am Ansatz des Duplizierens an. Bei dieser Lösung kann eine Angebotsvorlage mit demselben Namen des Rahmenvertrags angelegt werden. Über einen (ähnlich wie die Preisliste aufgebauten) Import könnten die Produkte in die Vorlage geladen werden.
Dies hätte den Vorteil, dass es hier weitere interessante Konfigurationsdetails gibt, die ebenfalls genutzt werden können.
Wie im Bildschirm erkennbar, ist eine abweichende Angebotsgültigkeit, eine Bestätigung über das Portal sowie eine anders formulierte Auftragsbestätigungsmail möglich:
(Abb.5)
Der wohl wesentlichste Punkt findet sich jedoch im letzten Reiter: Diese Option ist kombinierbar mit dem Excel Import.
In Bezug auf die Nutzbarkeit ist dies sicher eine recht komfortable Version. Der Vertrieb sieht auf diese Weise ebenfalls, welche Produkte Teil des Rahmenvertrags sind und welche nicht, nämlich die, die geladen werden.
Hinzu
kommt, dass in puncto Nutzerführung das Entfernen von Positionen
grundsätzlich schneller und einfacher ist als das Hinzufügen.
Allgemein
Auf jeden Fall wäre zu empfehlen, die Rahmenvertragsnummer und/oder Kostenstelle des Vertrags in die Benennung der Preisliste bzw. Angebotsvorlage zu übernehmen
Damit wären alle
Objekte einfacher unter beiden Nummern auffindbar. Sollte der Kunde
nicht pro Abruf eine eigene Vorgangsnummer generieren, kann der
Vertrieb recht einfach die externe Vertragsnummer sehen und via Copy
& Paste in das Feld der Kundenreferenz übernehmen. Damit wäre
die Rechnungszuordnung in der Buchhaltung des Kunden ebenfalls
einfacher.
Reporting
Kommen wir nun zum letzten Punkt, nämlich der Gegenüberstellung geplanter und bereits abgerufener Mengen innerhalb des Vertrags.
Hierzu geht man im Modul Verkauf / Sales in die Sales Analysis (zu finden unter dem Menüpunkt “Reporting“). In meinem Beispiel bin ich auf die Pivot-Ansicht gewechselt und habe die X-Achse nach “Order Date“ aufgebaut. Auf der Y-Achse finden wir den Kunden, danach die Preisliste und die Produkte.
Beim Status sollten wir einen Filter auf die Aufträge und versendeten Angebote setzen.
Dann schaut das Ganze exemplarisch so aus:
(Abb.6)
Wir sehen, dass die Umsätze des Kunden „Azure Interior“ aufgegliedert sind in Verkäufe ohne Rahmenvertrag (“Public Price List“) und Verkäufe innerhalb des Rahmenvertrags, hier exemplarisch als “BC-Custome1-1234“ dargestellt.
Die Mengen im Status “Quotation Sent“ sind die Mengen des Rahmenvertrags, die unter “Sales Order“ die abgerufenen Mengen.
Natürlich ist das schon ziemlich vereinfacht abgebildet. In der Realität wäre dies wohl eher die Datenbasis und man würde den nächsten Schritt gehen und das Ganze in ein Spreadsheet überführen. Dies ist seit Odoo 15 problemlos möglich (siehe Reiter “INSERT IN SPREADSHEET“). Von dort ist jede weitere Analyse möglich, wie z.B. die Auswertung nach dem noch zu erwartenden Auftragsvolumen aus dem Vertrag, vielleicht ein prozentualer Vergleich zwischen verbleibender Zeit bis Bindefrist des Vertrags und abgerufener Menge, etc.