Zum Inhalt springen
Individualentwicklung

Was Odoo nicht kann,
bauen wir dazu

Odoo deckt viel ab, aber kein Unternehmen passt zu hundert Prozent in den Standard. Wo es hakt, bauen wir ein Modul, als saubere Erweiterung und nicht als Eingriff in den Kern.

So bauen wir Individualentwicklung

Drei Regeln, an die wir uns halten, auch wenn es ohne sie schneller ginge.

Als separates Modul

Nie eine Änderung im Odoo-Kern oder in einem Community-Modul. Alles steckt in einem eigenen Modul mit eigenem Namen, das Sie abschalten können.

Upgradefähig

Wir folgen den Konventionen von Odoo selbst, damit ein Versions-Upgrade nicht zum Neubau wird. Individualentwicklung, die Upgrades blockiert, ist ein aufgeschobenes Problem.

Mit Dokumentation und Tests

Jedes Modul bekommt eine funktionale Beschreibung und Tests. Auch wenn es uns eines Tages nicht mehr gibt, kann jemand anderes damit weiterarbeiten.

Wofür wir am häufigsten angefragt werden

Sechs Arten von Individualentwicklung, die immer wiederkehren, jeweils mit einem Beispiel aus der Praxis. Kundennamen lassen wir weg.

Eine Anbindung an einen externen Anbieter

Aufträge, Lagerbestände oder Status, die automatisch mit einem Lieferanten, Spediteur oder Marktplatz hin- und hergehen. Mit Fehlerbehandlung und Protokoll, damit Sie sehen, was schiefgelaufen ist.

Aus der PraxisBestellungen, die als XML auf einem SFTP-Server eingehen, direkt als Verkaufsauftrag einlesen. Und bei einem Kunden aus der Elektronik: Produktspezifikationen und aktuelle Einkaufspreise bei Lieferanten wie Mouser, DigiKey und Octopart abrufen.

Auswertungen, die Odoo standardmäßig nicht hat

Eine Übersicht, die genau so aufgebaut ist, wie Ihre Geschäftsführung sie sehen will. Als Bericht in Odoo selbst oder als Export, der jeden Monat automatisch bereitsteht.

Aus der PraxisEine Analyse der Lagerbewegungen mit PDF-Bericht und eine Prognose, die auf dem tatsächlichen Lagerbestand beruht statt auf allem, was noch offen ist, mit dem Rückstand separat ausgewiesen.

Ein Prozessschritt, der fehlt

Eine Freigaberunde, ein zusätzlicher Status, eine Prüfung, die stattfinden muss, bevor etwas das Haus verlässt. Eingebaut dort, wo die Leute ohnehin arbeiten.

Aus der PraxisBei Warenausgängen zuerst die Laderampe wählen und den Fahrer auf dem Bildschirm unterschreiben lassen. Die Lieferung geht erst weiter, wenn Verpackung und Spediteur beide stimmen.

Webshop-Funktionalität nach Maß

Staffelpreise je Kunde, geschlossene Bereiche des Shops, ein Konfigurator für zusammengesetzte Produkte. Alles, was Ihren Verkaufsprozess zu Ihrem macht.

Aus der PraxisIm Kundenportal mehrere offene Rechnungen auswählen und in einer Transaktion bezahlen statt jede einzeln. Und ein Buchungsassistent mit Zeitfenstern für Termine.

Individualentwicklung im Finanzbereich

Eine abweichende Umsatzsteuerbehandlung, ein Rechnungslayout, das der Steuerberater tatsächlich akzeptiert, oder eine Selbstkostenberechnung, die zu Ihrer Art zu produzieren passt.

Aus der PraxisAutomatisch das richtige Bankkonto auf die Rechnung setzen, abhängig von der Währung. Und ein Rechnungslayout, in dem Vorauszahlungen in den Summen mitlaufen und BIC/SWIFT bei der Kontonummer steht.

Automatisierung von Handarbeit

Der Handgriff, den jemand jeden Morgen macht und den niemand mag. Meist das günstigste Modul, das wir je bauen.

Aus der PraxisEin nächtlicher Job, der Verkaufsaufträge im Entwurf bestätigt, die zugehörigen Rechnungen bucht und die Beteiligten benachrichtigt. Und der Import von Stücklisten aus einer Tabelle, inklusive Anlage der Produkte, die es noch nicht gibt.

Zwei Beispiele im Detail

Was passiert, wenn man weiter schaut als “wir binden eine API an”. Zwei Module, die wir gebaut haben, und der Teil, der daran schwierig war.

Integration · Einkauf

Einkaufspreise live aus einer Bauteiledatenbank

Problem
Einkaufspreise in Odoo veralten, sobald sie erfasst sind. Bei Elektronikbauteilen ändert sich der Preis wöchentlich, und die Staffeln unterscheiden sich je Lieferant.
Gebaut
Eine Anbindung an die Nexar/Octopart-API, die je Artikel die aktuellen Lieferantenpreise abruft, Preisstaffeln inbegriffen, und sie auf die Lieferantenzeilen des Produkts schreibt.
Wo es interessant wurde
  • Herstellernamen stimmen zwischen zwei Systemen nie exakt überein. Dafür gibt es eine Alias-Tabelle: Schreibvarianten desselben Herstellers verweisen auf einen Datensatz.
  • Jede Synchronisation schreibt eine Logzeile: was aktualisiert wurde, was übersprungen wurde und warum. Ohne das wissen Sie bei 4.000 Artikeln nicht, was schiefgelaufen ist.
  • Preisstaffeln haben ein eigenes Modell bekommen, sodass ein Einkäufer sie sehen und korrigieren kann, ohne dass die nächste Synchronisation das überschreibt.

Über 3.700 Zeilen Python, mit eigenen Tests.

Prozessschritt · Lagerbestand

Ein Lager, das sich selbst neu einteilt

Problem
Schnelldreher liegen hinten im Lager, weil sie dort einmal abgestellt wurden. Kommissionierer laufen den halben Tag hin und her, und niemand kommt dazu, das neu einzuteilen.
Gebaut
Eine ABC-Analyse, die Produkte nach Kommissionierhäufigkeit ordnet und sie anschließend den günstigsten Lagerplätzen zuweist, gerechnet in Laufwegen, je Reihe, Ebene und Zone.
Wo es interessant wurde
  • Das Ergebnis wird als gewöhnliche Putaway-Regeln von Odoo weggeschrieben. So bleibt die Standardlogik maßgeblich und Sie sind nicht an unser Modul gebunden: abschalten, und das Lager arbeitet weiter.
  • Die Lagergeometrie (Reihen, Ebenen, Zonen) ist separat modelliert, sodass ein Meter im Erdgeschoss anders zählt als ein Meter im vierten Regal.
  • Die Berechnung ist durch Tests abgedeckt, die Geometrie eingeschlossen. Bei so etwas wollen Sie belegen können, dass eine Neuaufteilung stimmt, bevor jemand Tausende Paletten umräumt.

Über 3.000 Zeilen Python, mit Tests für die Geometrie und die Aufteilung.

Gebaut mit der Plattform von Smart AI Bizz

Unsere Individualentwicklung beginnt nicht auf einem leeren Blatt. Das Schwesterunternehmen Smart AI Bizz entwickelt die Technologie, mit der wir sie bauen, und die setzen wir in jedem Projekt ein.

Eine Wissensbasis mit dem gesamten Quellcode

Über 167.000 indexierte Fragmente aus Odoo: Codefragmente, Felddefinitionen und Domain-Muster. Bevor wir ein Feld verwenden, wissen wir, ob es existiert und was es tut.

Ein Generator für die Routinearbeit

Modelle, Views, Security-Dateien und Manifest kommen nach den Odoo-Konventionen heraus. Unsere Stunden gehen in die Logik, auf die es wirklich ankommt.

Und danach ganz normales Review

Nichts gelangt ungesehen in eine Kundenumgebung. Jedes Modul wird geprüft, getestet und funktional beschrieben; der Generator überspringt diesen Schritt nicht.

Zuerst prüfen, ob es wirklich nötig ist

Die günstigste Individualentwicklung ist die, die wir nicht bauen. Bevor wir etwas programmieren, prüfen wir, ob es mit dem Standard geht: mit einer anderen Einrichtung, einer automatisierten Aktion oder einer Einstellung, die Sie noch nicht kannten.

Erst wenn das wirklich nicht geht, schreiben wir Code. Das spart Ihnen jetzt Geld und später Wartung.

  • Zuerst der Standard: Geht es mit Konfiguration, dann machen wir das so.
  • Dann Konfiguration: automatisierte Aktionen, Serveraktionen, Berichtsvorlagen.
  • Erst dann Code: und dann gleich richtig, mit Tests und Dokumentation.
  • Immer Ihr Eigentum: Der Quellcode Ihrer Individualentwicklung gehört Ihnen, keine Blackbox.

Neugierig, was Ihr Odoo-Projekt kostet?

Ein Kennenlerngespräch von einer Stunde kostet nichts und bringt immer etwas: mindestens ein ehrliches Bild davon, was geht und was nicht. Eignet sich das Projekt dafür, bekommen Sie danach ein Angebot mit einem einzigen Betrag darunter.