Zum Hauptinhalt springen
Entwicklung · Odoo App Store

Ein Modul im Odoo App Store veröffentlichen: die geschriebenen Regeln und die, die man nach 117 Veröffentlichungen lernt

Wir haben 105 Module im Odoo App Store veröffentlicht, für Odoo 19, 18 und 17. Das steht in der Dokumentation, das steht nicht darin, und so gehen wir vor, damit eine Veröffentlichung auf Anhieb gelingt und über drei Versionen gepflegt bleibt.

Odoo-Apps-Ansicht mit der Liste der installierten Module in einem echten Backend

Der Odoo App Store ist der einzige Kanal, über den sich ein Odoo-Modul ohne Vertrieb verkauft: Jemand sucht es, kauft es und installiert es. Das Veröffentlichen ist kostenlos, und jeder kann es mit einem Git-Repository und einem sauber geschriebenen Manifest tun. Nirgends steht, warum eine Veröffentlichung Tage braucht, bis sie erscheint, warum eine Beschreibung fehlerhaft angezeigt wird oder warum ein Modul, das auf Ihrem Rechner kompiliert, sich im Odoo des Käufers nicht installieren lässt. Das haben wir beim Veröffentlichen von 105 Modulen und bei deren Pflege in Odoo 19, 18 und 17 gelernt.

Kernidee: Der App Store installiert Ihr Modul nicht, um es zu prüfen. Er liest das Manifest, die Beschreibung und die Bilder und veröffentlicht. Lässt sich das Modul in einem echten Odoo nicht installieren, merkt es der erste Käufer. Die ganze Disziplin beim Veröffentlichen besteht darin, das nicht zuzulassen.

Die geschriebenen Regeln: Repository, Branch und Manifest

Der Mechanismus ist einfach und sollte buchstabengetreu befolgt werden. Sie legen in Ihrem Konto bei apps.odoo.com ein Git-Repository an; der App Store scannt es und veröffentlicht jedes Modul, das er darin findet. Der Branch ist wichtig: Der Branch 19.0 speist die Einträge für Odoo 19, 18.0 die für 18, 17.0 die für 17. Derselbe technische Name in den drei Branches ergibt einen einzigen Eintrag mit drei Versionen, und genau das wollen Sie: eine URL, eine Bewertungsseite, drei Download-Schaltflächen. Unterschiedliche technische Namen pro Version sind drei Einträge, die sich die Besuche teilen.

Aus dem Manifest liest und zeigt der App Store Folgendes:

  • name, summary und category: der Titel des Eintrags, die Zeile darunter und die Stelle, an der er im Katalog erscheint. Der Name muss im gesamten Store eindeutig sein.
  • version mit dem Präfix der Odoo-Version (19.0.1.0.0): Ohne dieses Präfix weiß der Eintrag nicht, zu welchem Odoo er gehört.
  • license: OPL-1 für kostenpflichtige Module, LGPL-3 oder AGPL-3 für kostenlose. Ein kostenpflichtiges Modul mit freier Lizenz ist ein Geschenk, das Sie nicht machen wollten.
  • price und currency: der Preis des Eintrags. Odoo behält einen Anteil jedes Verkaufs ein und zahlt Ihnen den Rest aus; das Verhältnis steht in den Bedingungen des App Store.
  • images: die Liste der Screenshots, beginnend mit dem Banner, das im Katalog zu sehen ist. Ohne Banner erscheint der Eintrag mit einer grauen Lücke neben den Einträgen, die eines haben.
  • static/description/index.html: die lange Beschreibung. HTML ohne Skripte, relative Bilder innerhalb des Moduls und, aus Erfahrung, ASCII-Zeichen: Ein falsch kodierter Akzent oder typografische Anführungszeichen können den Eintrag mit fehlerhaften Symbolen zurücklassen, die Sie erst sehen, wenn er veröffentlicht ist.

Die Regeln, die nirgends geschrieben stehen

Der Re-Scan bestimmt, und er lässt sich nicht mit einer ZIP-Datei erzwingen

Nach einem Push ändert sich der Eintrag nicht sofort: Der App Store scannt das Repository in seinem eigenen Rhythmus erneut, das können Stunden oder Tage sein. Die Versuchung ist, von Hand eine ZIP-Datei hochzuladen, um «zu beschleunigen». Tun Sie das nicht: Eine von Hand hochgeladene Version und eine aus dem Repository gescannte Version vertragen sich schlecht, und am Ende haben Sie einen Eintrag, dessen Herkunft Sie nicht kennen. Unsere Regel lautet: eine einzige Quelle, das Repository, und Geduld. Wenn der Scan eine Änderung erkennen soll, erhöhen Sie die Versionsnummer im Manifest: Eine inhaltliche Änderung bei gleicher Version wird manchmal nicht erfasst.

Kompilieren ist nicht Installieren

Der Scan installiert das Modul nicht. Dass das Manifest gültig ist und der Code fehlerfrei importiert wird, heißt nicht, dass sich das Modul installieren lässt. In Odoo 19 ist das besonders tückisch geworden: Die Sicherheitsgruppen haben ihr Modell gewechselt (res.groups.privilege), ir.cron akzeptiert das Feld numbercall nicht mehr, und Listenansichten heißen list, nicht tree. Ein für 17 geschriebenes Modul besteht den Scan von 19 ohne Beanstandung und scheitert bei der Installation im Odoo des Käufers. Wir beschreiben das ausführlich in Warum ein Odoo-19-Modul kompiliert, sich aber nicht installieren lässt.

Drei Versionen sind drei Module, die sich ähneln

Dasselbe Modul in 19, 18 und 17 zu pflegen heißt nicht, den Ordner in drei Branches zu kopieren. Jede Version hat ihre API-Unterschiede, und die einzige Möglichkeit, sicher zu sein, dass alle drei funktionieren, ist die Installation in einem echten Odoo jeder Version. Wir machen das auf Odoo.sh: ein Build pro Version, saubere Installation, Tests und erst dann der Push in den Branch, den der App Store scannt. Und mit Odoo 20, das im September 2026 erschienen ist, bleibt der Ablauf gleich, nur mit einem Branch mehr. Ein Modul, das nur in der Version getestet wurde, für die es geschrieben wurde, wird dreimal verkauft und scheitert zweimal.

Der Ablauf, den wir befolgen, der Reihe nach

  1. Eindeutiger und endgültiger technischer Name. Er wird im App Store gesucht, bevor die erste Zeile geschrieben wird; ihn später zu ändern bedeutet, den Eintrag und seine Bewertungen zu verlieren.
  2. Vollständiges Manifest ab dem ersten Commit: Version mit Präfix, Lizenz, Preis, Kategorie, Bilder, exakte Abhängigkeiten.
  3. Saubere Installation auf echtem Odoo.sh für jede Version, die veröffentlicht wird, mit grünen Tests. Ohne das gibt es keinen Push.
  4. Beschreibung in ASCII mit echten Screenshots des installierten Moduls, keine Mockups. Der Käufer vergleicht, was er im Eintrag sieht, mit dem, was er installiert.
  5. Push in den Versions-Branch und den Scan abwarten. Keine ZIP-Dateien. Muss etwas korrigiert werden, wird die Version erhöht und erneut gewartet.
  6. Den veröffentlichten Eintrag prüfen in allen drei Versionen: Banner, Beschreibung ohne fehlerhafte Symbole, Preis, Download-Schaltfläche.

Was die Veröffentlichung nicht für Sie erledigt

Veröffentlichen ist nicht Verkaufen. Ein gut gemachter Eintrag erscheint, wenn jemand genau nach diesem Problem sucht, und mehr nicht. Installiert wird ein Modul, wenn es auf Anhieb funktioniert, wenn die Beschreibung sagt, was es tut und was nicht, und wenn Support-Fragen beantwortet werden. Deshalb behandeln wir jedes veröffentlichte Modul als Produkt mit Wartung, nicht als hochgeladene Datei. Und deshalb gehört die Veröffentlichung im App Store zur Arbeit und ist kein Extra, wenn ein Softwareunternehmen bei uns einen Konnektor für sein Produkt in Auftrag gibt: Dort werden seine Odoo-Nutzer danach suchen.

Häufig gestellte Fragen

Wie lange dauert es, bis ein Modul nach dem Push erscheint?

So lange, wie der nächste Scan des Repositorys braucht, den Sie nicht steuern: Das können Stunden oder Tage sein. Hat sich nach einigen Tagen nichts geändert, prüfen Sie zuerst, ob der Branch stimmt, und erhöhen die Versionsnummer im Manifest; erst zuletzt laden Sie von Hand eine ZIP-Datei hoch.

Lässt sich dasselbe Modul für Odoo 17, 18 und 19 in einem einzigen Eintrag veröffentlichen?

Ja, und es ist empfehlenswert: Derselbe technische Name in den Branches 17.0, 18.0 und 19.0 desselben Repositorys ergibt einen Eintrag mit den drei Versionen. Jeder Branch muss sich tatsächlich in seiner Version installieren lassen; der App Store prüft das nicht für Sie.

Welche Lizenz verwende ich, wenn das Modul kostenpflichtig ist?

OPL-1, die proprietäre Lizenz von Odoo, die den Verkauf des Moduls erlaubt und die Weitergabe untersagt. Mit LGPL-3 oder AGPL-3 darf der Käufer es frei weitergeben, was Sie bei einem kostenlosen Modul wollen und bei einem kostenpflichtigen nicht.

Nützliche Links bei FlexigoTech

Die 105 veröffentlichten ModuleDer vollständige Katalog nach Familie, in Odoo 19, 18 und 17Ein Konnektor für Ihre Software, im App Store veröffentlichtFür Technologiepartner: bauen, testen und veröffentlichenEin Odoo-19-Modul kompiliert, lässt sich aber nicht installierenDie API-Fallen von 19, die der Scan nicht siehtGrüne Tests und der Konnektor scheitert in der ProduktionWarum nur die echte Installation als Test zählt

Haben Sie ein Modul, das Sie veröffentlichen möchten, oder ein veröffentlichtes, das sich nicht verkauft?

Wir sagen Ihnen, was dem Manifest, der Beschreibung oder der Installation fehlt und wie Sie es in alle drei Versionen bringen. Schreiben Sie an comercial@flexigobe.com oder rufen Sie +34 616 809 504 an.

Mit einem Ingenieur sprechen