maesn

Odoo-Schnittstelle und API-Integration

Odoo ist ein Open-Source-ERP, das Unternehmen jeder Größe in mehr als 100 Ländern einsetzen, in der Cloud auf Odoo.sh oder selbst gehostet auf der eigenen Infrastruktur eines Kunden. Binden Sie es über Maesn an, und Sie erreichen es mit derselben REST API und demselben Datenmodell wie jedes andere unterstützte System.

IHR PRODUKT+28
Diese Software-Teams vertrauen uns
HubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicapHubSpotTipaltiPaywiseRallyQredNordhealthFindityFintoClockinHEROHolviLanes & PlanesAgicap
Warum es schnell geht

Eine Odoo-Anbindung in Tagen

Odoo ist kein schwieriges System, es ist ein ungewohntes: kein REST, hinter jedem Kunden eine andere Instanz und eine Session, die endet, wann sie will. Diese drei landen zuerst bei Ihren Entwicklern. Hier steht, was Maesn mit ihnen macht.

Odoo: Es gibt keine REST API

RPC hinein, REST heraus

Odoo läuft auf XML-RPC und JSON-RPC über einen einzigen Endpunkt, der Modellnamen, Methodenaufrufe und Zugangsdaten im Rumpf der Anfrage erwartet. Maesn spricht JSON-RPC mit ihm und antwortet Ihnen als REST, RPC-Wissen erreicht Ihr Team also nicht.

Odoo: Jeder Kunde ist eine andere Instanz

URL und Datenbank je Mandant

Ob Cloud oder selbst gehostet, jeder Kunde bringt seine eigene Basis-URL und seinen eigenen Datenbanknamen mit, und beide sind bei jeder Anfrage Pflicht. Maesn sammelt sie beim Onboarding ein und setzt sie ein. Ein Codepfad bedient damit jede Installation.

Odoo: Sessions laufen ohne Vorwarnung ab

Neu authentifiziert, bevor Sie es merken

Odoo authentifiziert je Sitzung statt über einen langlebigen Schlüssel, und eine Sitzung kann jederzeit ungültig werden. Maesn hält den ganzen Lebenszyklus, vom Login über die Verwahrung bis zur erneuten Authentifizierung. Ein Ablauf ist damit kein Ausfall.

In Ihrem Code kommen ein REST-Aufruf und ein Account-Key an. Teams gehen in Tagen live, und das System nach Odoo ist ein Konfigurationsschritt und kein zweites Projekt.

Ein kurzes Gespräch genügt meist, um zu klären, ob Maesn zu Ihrem Anwendungsfall passt.

Kundenstimme
40.000
Handwerksbetriebe auf der Plattform von HERO Software

HERO Software baut gegen klare Dokumentation und echte Sandboxes

HERO Software digitalisiert das Backoffice für Handwerksbetriebe, vom Angebot bis zur Rechnung.

“Die Unterstützung ist wirklich erstklassig, mit beeindruckend kurzen Reaktionszeiten. Die Dokumentation ist gründlich und leicht nachvollziehbar, und dadurch war die Integration für mich ein reibungsloser Ablauf.”
Ricardas Kauneckas
Full Stack Engineer, HERO Software
Warum Unternehmen Maesn wählen

Drei Gründe, die Odoo-Schnittstelle über Maesn anzubinden

Eine Odoo-Instanz anzubinden ist ein Projekt, das Sie abschließen können. Die Instanz des nächsten Kunden anzubinden, auf einem anderen Host und in einer anderen Version, ist die Stelle, an der eine direkte Integration jedes Quartal zu kosten beginnt.

01

Kein RPC, nur REST

Die RPC-Schicht bleibt auf unserer Seite der Linie. Ihr Team schreibt hier dieselbe Anfrage wie für jedes andere System, ohne Modellnamen und ohne Methodenaufrufe im Rumpf.

02

Jede Installation, ein Codepfad

Basis-URL, Datenbankname und die Sitzung dahinter werden je Mandant verwahrt. Ob ein Kunde Odoo.sh oder den eigenen Server betreibt, ändert an Ihrer Integration nichts.

03

Das nächste System kostet nichts

Sobald Odoo läuft, antwortet jedes andere unterstützte Buchhaltungs- und ERP-System auf derselben Schnittstelle. Ihre zweite Integration ist ein Konfigurationsschritt.

App-Marketplace und Partnerschaft

Gelistet im Odoo Apps Store, einem der größten überhaupt

Die meisten Anbieter hören bei der API auf. Maesn übernimmt die technische Seite und die Beziehung, und der Marketplace von Odoo ist eines der größten ERP-Ökosysteme überhaupt, mit Community- und Enterprise-Installationen dahinter.

Technische Unterstützung

Eine Integration gegen die Unified API und ein Datenmodell, identisch zu jedem anderen System, das Maesn unterstützt. Ihre Entwickler treffen hier auf dieselbe Schnittstelle wie beim nächsten System.

Unterstützung beim Eintrag

Maesn führt Sie durch die technische Vorbereitung und die Einhaltung der Richtlinien. Der Eintrag geht damit ohne Korrekturrunde live statt nach einer.

Wie ein Odoo-Eintrag funktioniert

Selbstbedienung, über GitHub

Der Eintrag läuft über ein GitHub-Repository, das mit Ihrem Odoo-Konto verbunden ist. Nichts wartet in einer Freigabeschlange, bevor Sie anfangen können.

Die Darstellung entscheidet über die Sichtbarkeit

App-Seiten werden nach der Qualität der Beschreibung, nach Screenshots und nach Vollständigkeit bewertet. Auf diesem Marketplace ist der Text keine Verpackung, sondern Platzierung.

Die Vorgaben bereiten wir mit Ihnen vor

An den Richtlinien bleiben Einträge in Selbstbedienung meistens hängen. Maesn geht sie mit Ihnen durch, bevor Sie veröffentlichen, und nicht nach einer Ablehnung.

Der Eintrag läuft unter Ihrer Marke, nicht unter der von Maesn. Ihr Name ist das, was der Kunde beim Verbinden sieht.

Maesn bereitet den Eintrag parallel zu Ihrer Integration vor.

Authentifizierung

Vier Felder von Ihrem Kunden, die Odoo-Session von uns

Odoo hat weder einen Redirect noch ein langlebiges API-Token. Ihr Kunde übergibt einmal vier Werte, und was danach gegen Odoo läuft, ist eine Session, die Maesn öffnet, speichert und erneuert.

Auth-Verfahren
Instanz-Zugangsdaten
Vier Felder je Kunde

Maesn hält die Session hinter diesen Feldern am Leben. Ein Ablauf wird damit nie zu Ihrem Störfall.

Die vier Felder, die Ihr Kunde mitbringt
Instanz-URL und Datenbank
Die Basis-URL des Kunden-Odoo, ohne /web und ohne weiteren Pfad, dazu der Datenbankname dahinter.
Benutzer und API-Schlüssel
Die Login-E-Mail-Adresse des Kunden plus ein API-Schlüssel aus Einstellungen, Benutzer, Sicherheit. Ein Passwort geht, ein Schlüssel ist die bessere Gewohnheit.

Hier lohnt es sich, zwei Schichten zu trennen. Was Ihr Kunde übergibt, sind Zugangsdaten. Was danach mit Odoo spricht, ist eine Session, und Sessions laufen ab und können ohne Vorwarnung ungültig werden. Maesn meldet sich dann neu an, statt Ihnen einen Fehler durchzureichen.

Wie Ihr Kunde sich verbindet
  1. 1

    Ihr Kunde sammelt die vier Werte

    Zwei davon kennt er bereits, der Datenbankname ist der Wert, für den er gelegentlich seinen Odoo-Administrator braucht. Bei Odoo Online steckt er meist als Subdomain in der URL, die er täglich benutzt.

  2. 2

    Die Felder erreichen Maesn

    Über Maesn Connect, ein Formular in Ihrem eigenen Erscheinungsbild: Ihr Kunde fügt die Werte ein und sendet ab. Die Zugangsdaten landen bei Maesn und laufen nie durch Ihr Produkt.

  3. 3

    Sie arbeiten mit einem Account-Key

    Maesn speichert die Verbindung und gibt einen Account-Key zurück. Ab da trägt jede Anfrage Ihren API-Schlüssel und diesen Account-Key, dieselben zwei Header, die Sie für jedes andere System im Katalog ohnehin schon senden.

Jedes System im Katalog authentifiziert anders, und Odoo steht am Ende der Skala, an dem es gar keinen Redirect gibt: Zugangsdaten, eine Instanzadresse und eine Session, die altert. Unified Authentication hält das von Ihrer Seite fern, der Ablauf, den Sie für ein OAuth-System bauen, ist also der Ablauf, den Sie hier wiederverwenden. Eine Schritt-für-Schritt-Anleitung für die Odoo-Seite steht im Leitfaden darunter.

Synchron bleiben

Keine Events von Odoo, Events in beide Richtungen

Kein Objekt trägt hier ein natives Event, und das ist normalerweise der Punkt, an dem eine Integration eine Abfrageschleife, eine Tabelle zur Änderungserkennung und einen Rückstand an Sonderfällen ansetzt. Über Maesn taucht diese Arbeit auf Ihrer Seite gar nicht erst auf.

Was Odoo sendet

Keine Events. Nichts in der Abdeckungsmatrix trägt einen nativen Webhook. Eine Änderung in der Instanz eines Kunden bleibt also unsichtbar, bis etwas nachsieht.

Was Ihren Endpunkt erreicht

Ein vereinheitlichtes Event mit demselben Rumpf, demselben Vokabular und derselben Signatur, die ein natives tragen würde. Maesn übernimmt das Abfragen und die Änderungserkennung. Ihr Handler merkt den Unterschied also nicht.

Weil die Erkennung ein Abfragelauf ist und kein Push, ist die Aktualität eine Frage des Intervalls und nicht von Millisekunden. Für eine Abstimmung oder zum Aufholen nach einem Ausfall ist ein geplanter Delta-Lesezugriff das bessere Werkzeug, und derselbe REST-Aufruf bedient ihn.

Ein System, das nichts sendet, ist der Grund, warum ein Event-Modell über den ganzen Katalog existiert: Der Handler, den Sie für eine Odoo-Rechnung schreiben, ist derselbe Handler, der ein natives Event von einem System annimmt, das sendet. Das Lesen funktioniert genauso, bis hin zur Paginierung, die Odoo an seine RPC-Schicht bindet und Maesn auf das gemeinsame Limit- und Seitenmodell vereinheitlicht.

Bevor Sie starten

Was Odoo vorab verlangt

Odoo verlangt vier Dinge, bevor eine Integration beginnt, und alle lassen sich leichter einplanen als auf halber Strecke entdecken.

Ein Odoo-Konto mit Administratorrechten
Nötig, um in die Benutzereinstellungen zu kommen, in denen der Schlüssel erzeugt wird. Ein kostenloses Testkonto genügt, wenn Sie Odoo nicht selbst betreiben.
Instanz-URL und Datenbankname, je Kunde
Nur die Basis-URL, ohne /web und ohne weiteren Pfad. Bei Odoo Online ist die Datenbank meist die Subdomain, bei einem selbst gehosteten Kunden kennt sie derjenige, der die Instanz betreibt. Beides ist bei jedem Kunden, den Sie anbinden, anders.
Ein Benutzer und, besser als ein Passwort, ein API-Schlüssel
Die Login-E-Mail-Adresse plus ein Zugangsmerkmal. Odoo erlaubt das Kontopasswort, aber ein Schlüssel, erzeugt unter Einstellungen, Benutzer, Sicherheit, ist die bessere Wahl: Er gilt nur für diesen Benutzer und lässt sich rotieren, ohne ein Login zu ändern.
Eine Umgebung zum Bauen, die nicht die Live-Instanz eines Kunden ist
Odoo veröffentlicht keine öffentliche Sandbox. Eine erste Integration zeigt sonst also auf ein Produktivsystem mit echter Buchhaltung darin. Ein eigenes kostenloses Odoo-Testkonto ist die übliche Antwort, und wo das nicht geht, richten wir Ihnen eines ein.

Wir gehen die Felder und die Sandbox mit Ihnen durch.

Das Datenmodell

Eine Form für Odoo, und für das nächste System

Odoo ist ein ERP mit Buchhaltungsmodul und kein Buchhaltungsprodukt. Hinter dem, was Sie lesen, steht deshalb mehr als bei einem reinen Hauptbuchsystem.

Sechs Objekte sind heute freigeschaltet

Konten, Kontakte, Rechnungen, Journale, Buchungssätze und Zahlungen sind lesbar, Konten, Kontakte und Buchungssätze auch schreibbar. Das ist der Standardsatz, und er ist die Grundlage für Ihre Planung, nicht die Länge der Tabelle.

Der größte Teil steht auf Anfrage

Das ist die ERP-Oberfläche. Die Objekte gibt es in Odoo, und die meisten davon sind auf Anfrage verfügbar statt standardmäßig, welche eine Verbindung trägt, folgt also aus Ihrem Anwendungsfall.

Keine Aktualisierungen und kein Löschen an Ort und Stelle

Für Aktualisieren und Löschen ist heute nichts freigeschaltet. Planen Sie Korrekturen als neue Belege, so wie die Buchhaltungspraxis es ohnehin erwartet, und sagen Sie uns früh Bescheid, wenn Ihr Produkt Datensätze bearbeiten statt buchen muss.

Was Sie lesen, kommt im gemeinsamen Common Data Model zurück, eine Rechnung aus Odoo hat also dieselbe Form wie eine Rechnung aus einem reinen Buchhaltungssystem, und der Code, den Sie hier schreiben, ist der Code, den Sie für das nächste wiederverwenden.

Sagen Sie uns, welche Objekte Ihr Anwendungsfall braucht, und wir bestätigen, was möglich ist.

Odoo FAQ

Odoo API-Fragen

Was ist Odoo?

Odoo ist eine Open-Source-ERP-Plattform, die in ganz Europa und weltweit für Buchhaltung, Rechnungsstellung, Lagerhaltung und CRM eingesetzt wird. Es gibt sie in zwei Editionen, Community und Enterprise, und sie läuft entweder in der Cloud auf Odoo.sh oder selbst gehostet auf der eigenen Infrastruktur eines Kunden. Für ein Softwareteam heißt das, dass jeder Kunde seine eigene Basis-URL, seinen eigenen Datenbanknamen und möglicherweise eine andere Odoo-Version mitbringt.

Hat Odoo eine REST API?

Nein. Odoo stellt XML-RPC und JSON-RPC über einen einzigen Endpunkt bereit, der Modellnamen, Methodenaufrufe und Zugangsdaten im Rumpf der Anfrage erwartet. Maesn spricht JSON-RPC mit Odoo und antwortet Ihnen als REST, auf Ihrer Seite ist also kein RPC-Aufbau nötig.

Was sind XML-RPC und JSON-RPC bei Odoo?

Das sind die zwei Protokolle für entfernte Prozeduraufrufe, die Odoo anstelle einer REST-API bereitstellt. Beide laufen über einen einzigen Endpunkt, der einen Modellnamen. Einen Methodenaufruf und Zugangsdaten im Rumpf der Anfrage erwartet, Sie sprechen also die internen Modelle von Odoo direkt an statt benannter Ressourcen. Das ist ein anderes Denkmodell als bei jeder REST-Integration, die Ihr Team bisher geschrieben hat, und genau diesen Teil übernimmt Maesn: Ihre Anfragen kommen hier als REST an, wir sprechen das Protokoll, das das Odoo des Kunden will, und zurück kommt dasselbe gemeinsame Datenmodell wie bei jedem anderen System auf der Plattform.

Ist die Odoo-API kostenlos nutzbar?

Zwei Antworten, denn es hat zwei Seiten. Auf der Seite von Odoo gibt es kein eigenes Preisschild, aber eine Hürde: Die eigene Entwicklerdokumentation von Odoo schreibt, dass der Zugriff auf Daten über die externe API nur in den Custom-Tarifen von Odoo verfügbar ist und nicht in One App Free oder Standard. Das ist ein Vertrag zwischen Ihrem Kunden und Odoo, und keine Integrationsschicht ändert daran etwas, und deshalb gehört die Tariffrage in die Qualifizierung und nicht in den Sprint. Auf der Seite von Maesn gibt es überhaupt keine zweite Rechnung: Der Zugang zu jeder Integration ist enthalten, und abgerechnet wird eine Pauschale je angebundenem Kunden statt je API-Aufruf, Odoo zu erreichen kostet Sie also nicht mehr als jedes andere System auf der Plattform. Was Sie nicht mehr bezahlen, ist die Arbeit hinter der Hürde: die RPC-Schicht, die Instanz-URL und die Datenbank, die sich je Kunde unterscheiden, und die Versionsunterschiede von einem Kunden zum nächsten.

Wie funktioniert die Authentifizierung bei Odoo?

Ihr Kunde liefert vier Werte: die Instanz-URL, den Datenbanknamen, seine Login-E-Mail-Adresse und ein Zugangsmerkmal, idealerweise einen API-Schlüssel, erzeugt unter Einstellungen, Benutzer, Sicherheit, statt des Kontopassworts. Odoo authentifiziert dann je Sitzung, und Maesn hält diese Sitzung, einschließlich der erneuten Authentifizierung, wenn sie abläuft.

Wie geht Maesn mit verschiedenen Odoo-Instanzen um?

Basis-URL und Datenbankname werden je angebundenem Kunden verwahrt und an jede Anfrage gehängt. Ob ein Kunde Odoo.sh oder den eigenen Server betreibt, macht für Ihren Integrationscode keinen Unterschied.

Unterstützt Odoo Webhooks?

Kein Odoo-Objekt trägt ein natives Event. Die Änderungserkennung ist hier also ein Lesezugriff, den Sie einplanen, und kein Abonnement, das Sie registrieren. Über Maesn ist dieser Lesezugriff derselbe Delta-Aufruf, den Sie gegen jedes andere angebundene System schon fahren, es ist also eine Schleife und nicht eine je System.

Gibt es eine Odoo-Sandbox?

Odoo veröffentlicht keine öffentliche Sandbox. Der übliche Weg ist deshalb ein eigenes kostenloses Odoo-Testkonto, gegen das Sie bauen. Wo das nicht geht, richten wir Ihnen eines ein, die erste Integration zeigt damit nie auf das Produktivsystem eines Kunden.

Welche Daten kann ich in Odoo lesen und schreiben?

Konten, Kontakte, Rechnungen, Journale, Buchungssätze und Zahlungen sind heute freigeschaltet, wobei Konten, Kontakte und Buchungssätze auch schreibbar sind. Odoo führt außerdem die meisten Objekte auf Anfrage von allen Systemen im Katalog. Die Abdeckung ist also ein Anfang und keine Obergrenze.

Kann ich in den Odoo App Marketplace aufgenommen werden?

Ja. Der Eintrag läuft in Selbstbedienung über ein GitHub-Repository, das mit Ihrem Odoo-Konto verbunden ist, und App-Seiten werden nach der Qualität der Beschreibung, nach Screenshots und nach Vollständigkeit bewertet. Maesn unterstützt die technische Vorbereitung und die Einhaltung der Richtlinien.

Warum Odoo über Maesn anbinden statt direkt?

Weil die Arbeit bei Odoo nicht aufhört. Direkt heißt, die RPC-Schicht zu tragen, eine Basis-URL und eine Datenbank je Kunde, eine Sitzung, die ohne Vorwarnung abläuft, ein Verhalten, das sich zwischen den jährlichen Hauptversionen verschiebt, und eine Änderungserkennung ohne Events, auf denen sie aufbauen könnte. Über Maesn bauen Sie einmal gegen ein Datenmodell, und jedes andere unterstützte Buchhaltungs- und ERP-System ist danach auf derselben Schnittstelle erreichbar.
Jede Integration, nach der Ihre Kunden fragen. In Tagen, nicht in Monaten.