In diesem Beitrag
Odoo-Import mit KI: Lieferantenpreise richtig zuordnen
Angenommen, eine Lieferantendatei nennt 1.200,00 € für einen Karton mit 24 Stück. Der Mapping-Vorschlag berechnet daraus die gültige Zahl 50,00, lässt die Einkaufseinheit im Ziel aber auf „Karton“. Die Rechnung stimmt. Der gespeicherte Preis würde trotzdem eine andere Lieferkondition beschreiben.
Lass KI eine Odoo-Importzuordnung vorschlagen und prüfe sie anschließend gegen unabhängig freigegebene Quellbeschreibungen und Referenztabellen. Erhalte die Kennungen bestehender Preiszeilen und den Preisbezug der jeweiligen Einkaufseinheit. Ungeklärte Bedeutungen gehen an den Datenverantwortlichen. Vor der Importfreigabe folgt ein kontrollierter Test in Odoo.
Recherche geprüft: 5. November 2026. Produktangaben beruhen auf offiziellen Odoo-20-Dokumentationsquellen. Wir haben zwölf synthetische Mapping-Fälle mit Python und Dezimalarithmetik ausgeführt. Die Vorschläge wurden von Hand erstellt, nicht von einer KI. Ein Odoo-Import und die native Einheitenumrechnung wurden nicht ausgeführt. Die vorgesehenen Odoo-Abnahmetests stehen auf NOT_RUN.
Welche Aufgabe hat KI bei einer Odoo-Importzuordnung?
KI kann vorschlagen, welche Quellspalten zu welchen Zielfeldern passen, und erklärungsbedürftige Zeilen markieren. Ob dieser Vorschlag zulässig ist, entscheidet eine separat geprüfte Mapping-Vereinbarung. Der Datenverantwortliche muss die Quellbedeutungen, erlaubten Umrechnungen und Zielkennungen klären, bevor eine plausibel wirkende Feldzuordnung zur Anweisung wird, Geschäftsdaten zu verändern.
Bei einer Lieferantenpreisaktualisierung reicht die Angabe „Preis“ nicht. Du musst wissen, welche Menge dieser Preis abdeckt und welche bestehende Preiszeile geändert werden soll. Füllt ein Vorschlag diese Lücken stillschweigend, geht er über die belegte Bedeutung der Quelldatei hinaus.
Die offizielle Importanleitung verwendet externe IDs zur Datensatzidentifikation und zur Wiederherstellung von Beziehungen. Unsere Abnahmevereinbarung ergänzt die fachlichen Bedeutungen, die eine Kennung allein nicht liefern kann.
Hier geht es um die Entscheidung vor dem Import. Der Leitfaden zur Migrationsabnahme behandelt den späteren Abgleich übertragener Datensätze und Abläufe. Für laufende Lieferterminänderungen beantwortet Odoo-Regeln, n8n oder ein KI-Agent die separate Architekturfrage.
Welche Quellbedeutungen musst du zuerst festlegen?
Lege Kennungen und Wertkonventionen fest, bevor du Lieferantenpreise umwandelst. Erhalte Identifikatoren als Text, definiere den Bezug von Preis und Mindestmenge und löse Artikel- sowie Lieferantenreferenzen anhand freigegebener Zuordnungen auf. Belegt die Quelle weder Datumsformat noch Packungsgröße eindeutig, braucht das Mapping zuerst eine Entscheidung des zuständigen Datenverantwortlichen.
Unsere fiktive Datei enthält zwei Zeilen. Beide verwenden den Lieferantencode 0042 für Gesellschaft A. Ein weiterer Eintrag in der Referenztabelle verwendet denselben Code für Gesellschaft B. Die Artikelnummern 00123 und 00124 sind Zeichenfolgen; ihre führenden Nullen gehören zur vereinbarten Kennung.
| Quellangabe | L01 | L02 |
|---|---|---|
| Artikelnummer | 00123 | 00124 |
| Lieferant / Gesellschaft | 0042 / A | 0042 / A |
| Kartonpreis aus der Quelle | 1.200,00 | 48,00 |
| Freigegebene Währung und Preisbasis | EUR, Nettopreis je Karton. | EUR, Nettopreis je Karton. |
| Stück je Karton | 24 | 12 |
| Mindestabnahme | 2 Kartons. | 3 Kartons. |
| Gültig-ab-Datum der Quelle | 01/03/2026, Tag/Monat/Jahr. | 01/03/2026, Tag/Monat/Jahr. |
| Kennung der bestehenden Preiszeile | catalog.offer_a_00123 | catalog.offer_a_00124 |
Die Quellvereinbarung erlaubt ausdrücklich ein Dezimalkomma und optional einen Punkt als Tausendertrennzeichen. Sie verlangt genau zwei Nachkommastellen. Damit wird 1.200,00 zum Dezimalwert 1200.00. Dieser Parser ist bewusst eng gefasst und erkennt nicht beliebige Zahlenformate aus Tabellenkalkulationen.
Auch die Datumskonvention kommt aus einer unabhängig festgelegten Regel. Mit freigegebenem Tag/Monat/Jahr wird 01/03/2026 zu 2026-03-01. Fehlt diese Konvention, hält der Validator den Fall zur Klärung an. Die bevorzugte Interpretation eines Modells löst keine Mehrdeutigkeit in der Quelle.
Trenne die Kennung einer bestehenden Preiszeile von der Artikelkennung. Ein Lieferant kann in einem echten Katalog mehrere Preiskonditionen für denselben Artikel haben. Die freigegebene Referenztabelle benennt hier genau zwei bestehende Zeilen. „Lieferant plus Artikelnummer“ wird damit nicht zum universellen Schlüssel für jede Mengenstaffel oder Gültigkeitsperiode.
Warum gehören Preis und Einkaufseinheit zusammen?
Lieferantenpreis und Einkaufseinheit beschreiben gemeinsam eine kaufmännische Bedeutung. Änderst du nur den Betrag oder nur die Einheit, kann daraus eine andere Kondition werden. Auch die Mindestabnahme muss denselben festgelegten Mengenbezug verwenden. Gib diese Kombination als eine Mapping-Entscheidung frei, bevor du Werte auf eine andere Einheit umrechnest.
Die Odoo-Dokumentation zu Mengeneinheiten ordnet Einkaufseinheiten den Lieferantenzeilen zu und unterscheidet sie von Lagereinheiten. Welche Zieleinheit richtig ist, hängt deshalb von der tatsächlichen Artikel- und Lieferantenkonfiguration ab.
Für L01 gilt: 1.200,00 € ÷ 24 Stück = 50,00 € je Stück. Die Mindestabnahme von 2 Kartons entspricht 48 Stück. Unsere freigegebene Zuordnung behält den Kartonbezug bei: Einkaufseinheit 24er-Karton, Preis 1.200,00 und Mindestmenge 2.
| Mapping-Vorschlag | Bedeutung | Entscheidung nach dieser Vereinbarung |
|---|---|---|
| 24er-Karton / 1.200,00 / Mindestmenge 2 | Die erklärte Lieferkondition bleibt erhalten. | Für einen kontrollierten Test geeignet. |
| Stück / 1.200,00 / Mindestmenge 2 | Der Kartonpreis wird zum Stückpreis. | Ablehnen. |
| 24er-Karton / 50,00 / Mindestmenge 2 | Der Stückpreis wird einem Karton zugeordnet. | Ablehnen. |
| 24er-Karton / 1.200,00 / Mindestmenge 48 | Aus einer Grenze von 48 Stück werden 48 Kartons. | Ablehnen. |
Für L02 ergeben 48,00 € ÷ 12 einen Preis von 4,00 € je Stück; 3 Kartons enthalten 36 Stück. Mit diesen Rechnungen kann der Prüfer die Quellbedeutung kontrollieren. Sie liefern keine zusätzlichen Preisfelder, die neben dem beibehaltenen Kartonpreis importiert werden sollen.
Eine unabhängig freigegebene Umrechnung auf Einzelstücke kann ebenfalls richtig sein. Dafür müssen Preis und Mindestmenge zusammenpassen, und der Zielablauf muss diesen Bezug nachweislich korrekt verwenden. Der mitgelieferte Validator prüft eine bestimmte Vereinbarung. Er verbietet nicht grundsätzlich andere Zuordnungen.
Wie prüfst du die Feldzuordnung unabhängig?
Prüfe den Vorschlag gegen Quellregeln und Referenztabellen, die unabhängig davon freigegeben wurden. Vergleiche jede einbezogene Zeile mit ihren erwarteten normalisierten Feldern und kontrolliere vollständige Zeilenabdeckung sowie genaue Zielkennung. Ein Konfidenzwert, eine Erklärung oder die Behauptung einer Selbstprüfung entscheidet nicht darüber, ob diese Vergleiche stimmen.
Die herunterladbare Testdatei enthält Quellzeilen, freigegebene Regeln und vorgeschlagene Zielzeilen als getrennte Eingaben. Der Validator leitet die Sollwerte aus der Quellvereinbarung ab, löst Lieferantenreferenzen im Kontext der Gesellschaft auf und vergleicht Feld für Feld. Abweichungen enthalten den Schlüssel der Quellzeile, damit du sie wiederfindest.
Unabhängigkeit betrifft hier die Verantwortung für die Entscheidung. Erfindet dasselbe Modell einen Packungsfaktor und trägt ihn sowohl ins Mapping als auch in die vermeintliche Referenztabelle ein, beruhen zwei übereinstimmende Ergebnisse auf derselben unbelegten Annahme. Der Datenverantwortliche sollte die Packungsdefinition mit einer Lieferantenspezifikation oder einem freigegebenen Artikeldatensatz belegen.
Bevor du echte Lieferantendaten an einen KI-Dienst gibst, wende die für diesen Dienst freigegebene Entscheidung zum Datenweg an. Der Beitrag zur Datenresidenz von Odoo-KI behandelt diese separate Frage. Unsere Testdatei enthält ausschließlich erfundene Daten.
Was zeigen die zwölf Mapping-Prüfungen?
Alle zwölf konstruierten Mapping-Fälle erhielten die erwartete Einstufung: einmal READY_FOR_REHEARSAL, achtmal REJECT und dreimal HOLD. Das belegt das Verhalten des mitgelieferten Validators für die festgelegten Testdaten. Es misst weder die Zuverlässigkeit von KI-Zuordnungen noch weist es einen erfolgreichen Odoo-Import nach.
| Fall | Bewusst gesetzte Bedingung | Erwartet / beobachtet |
|---|---|---|
| M01 | Die freigegebene Zuordnung mit Kartonpreisen bleibt erhalten. | READY_FOR_REHEARSAL / READY_FOR_REHEARSAL |
| M02 | Aus Artikelnummer 00123 wird 123. | REJECT / REJECT |
| M03 | Aus dem Quellwert 1.200,00 wird Preis 1.20. | REJECT / REJECT |
| M04 | Der Kartonpreis bleibt, die Einheit wird Stück. | REJECT / REJECT |
| M05 | Der Preis wird durch 24 geteilt, die Einheit bleibt 24er-Karton. | REJECT / REJECT |
| M06 | Die Mindestmenge wird 48, die Einheit bleibt 24er-Karton. | REJECT / REJECT |
| M07 | Lieferantencode 0042 verweist auf die Referenz für Gesellschaft B. | REJECT / REJECT |
| M08 | Beide Preiszeilen verwenden dieselbe externe ID. | REJECT / REJECT |
| M09 | Die Datumskonvention der Quelle ist nicht freigegeben. | HOLD / HOLD |
| M10 | Für den Artikel fehlt eine freigegebene Referenzzuordnung. | HOLD / HOLD |
| M11 | Der Packungsfaktor des Lieferanten fehlt. | HOLD / HOLD |
| M12 | Die externe ID einer bestehenden Preiszeile wird durch eine neue ersetzt. | REJECT / REJECT |
Lade den Validator und die Testdatei in dasselbe Verzeichnis und führe diesen Befehl aus:
python3 mapping-validator.pyVergleiche die Ausgabe mit den aufgezeichneten Ergebnissen. Ein erfolgreicher Prozessabschluss bedeutet, dass alle zwölf Einstufungen übereinstimmen, einschließlich der bewusst abgelehnten und angehaltenen Fälle. Er ist keine Importfreigabe.
Das Skript verarbeitet die festgelegte JSON-Struktur und die vereinbarten Quellkonventionen. Es öffnet keine beliebigen Tabellen, ermittelt keine nativen Felder und bildet nicht sämtliche Steuer-, Währungs- oder Preisregeln ab. Die normalisierten Schlüssel sind ein Zwischenformat für die Prüfung und keine direkt hochladbare Odoo-CSV.
Wann braucht das Mapping eine fachliche Klärung?
Halte ein Mapping an, wenn die maßgebliche Quellbedeutung oder Zielreferenz fehlt. Lehne es ab, wenn die Bedeutung bereits freigegeben ist und der Vorschlag ihr widerspricht. Daraus ergibt sich der nächste Schritt: Ein falsch zugeordneter Preis braucht eine Korrektur; eine unbekannte Packungsgröße braucht belastbare Angaben vom Datenverantwortlichen.
Die mitgelieferte Vorlage für die Mapping-Prüfung trennt den Umwandlungsvorschlag von seinem Freigabenachweis. Erfasse die Quelldatei und die Mapping-Revision. Benenne anschließend für jedes offene Feld die Person, die dessen Bedeutung klären kann. Formuliere die konkrete Frage, etwa: „Bedeutet Mindestmenge 2 Kartons oder Stück?“
Mach aus einer fehlenden Artikelreferenz keine automatische Artikelanlage, solange das nicht zum freigegebenen Importumfang gehört. Unser Beispiel aktualisiert bestehende Lieferantenpreiszeilen. Ein neuer Artikel oder ein neuer Preisdatensatz verändert die Aufgabe und braucht eigene Abnahmekriterien.
Der Prüfer kann auch nicht feststellen, ob eine freigegebene Referenztabelle inhaltlich stimmt. Wurde die Lieferantenreferenz für Gesellschaft A bereits falsch freigegeben, kann der Vorschlag sie trotzdem exakt treffen. Prüfe die Referenzdaten, bevor du dich auf einen grünen Vergleich verlässt, und bewahre den Nachweis für die gewählte Beziehung auf.
Was muss der Test in Odoo nachweisen?
Der Test in Odoo muss zeigen, dass das geprüfte Mapping die tatsächlichen Zielfelder verwendet und das gewünschte Verhalten der Lieferantenpreise erzeugt. Kontrolliere Referenzen und Einheiten in der konfigurierten Installation. Prüfe danach die vorgesehenen Änderungen und einen repräsentativen Einkaufsentwurf. Der synthetische Validator belegt nur, dass der Zwischenschritt zur festgelegten Vereinbarung passt.
Odoos Anleitung zu Lieferantenpreislisten empfiehlt bestehende Datensätze als Exportvorlage und unterscheidet Preis von Mindestmenge. Beginne mit dieser zielspezifischen Struktur. Benenne nicht die Testschlüssel um und unterstelle, sie seien gültige Importspalten.
Das Odoo-Abnahmepaket enthält vierzehn vorgeschlagene Prüfungen. Alle stehen auf NOT_RUN, die Abnahme auf PENDING. Tatsächliche Nachweise und Prüfer sind noch nicht eingetragen.
| Prüfbereich | Nachweis aus Odoo | Abnahmefrage |
|---|---|---|
| Zielfelder | Aktueller Export und geprüfte Feldzuordnung. | Erreicht jeder Zwischenwert das vorgesehene Feld? |
| Beziehungen | Aufgelöste Artikel-, Lieferanten- und Gesellschaftsreferenzen. | Gehören die Preiszeilen zu den vorgesehenen Geschäftseinheiten? |
| Einkaufseinheiten | Konfigurierte Einheit mit freigegebenem Faktor. | Haben Preis und Mindestmenge den richtigen Bezug? |
| Bestehende Kennung | Datensätze vor und nach einem kontrollierten, wiederholten Import. | Werden die richtigen Zeilen ohne unbeabsichtigte Duplikate aktualisiert? |
| Einkaufsverhalten | Geprüfter Entwurf einer Angebotsanfrage zur relevanten Menge und zum relevanten Datum. | Wirkt die vorgesehene Preiskondition wie erwartet? |
| Umfang und Ausnahmen | Importierte und angehaltene Zeilen sowie geschützte Datensätze. | Sind Ausschlüsse beabsichtigt und unerwartete Änderungen untersucht? |
Ein geprüfter Einkaufsentwurf berechtigt nicht dazu, eine Bestellung zu senden oder zu bestätigen. Lass diese Aktionen außerhalb des Tests, sofern der fachlich Verantwortliche sie nicht separat einbezieht. Hier sollen die Folgen des Mappings vor einer Produktivänderung sichtbar werden.
Bewahre die im Test verwendete Datei und die freigegebene Transformationsrevision auf. Ändert der Lieferant im nächsten Monat die Bedeutung einer Spalte, beweist eine vertraute Überschrift nicht, dass die bisherige Regel weiter gilt. Bewerte die betroffene Zuordnung erneut und wiederhole die erforderlichen Prüfungen.
Was würden wir vor einem Import freigeben?
Wir würden eine konkrete Mapping-Revision erst freigeben, wenn Quellbedeutungen und Zielkennungen geklärt sind, die bekannten Gegenbeispiele abgewiesen werden und der Test in Odoo die beabsichtigte Aktualisierung belegt. Eine ungeklärte Zeile bleibt angehalten. Der Nachweis muss den fachlichen Freigebenden für die Lieferantenkondition ebenso benennen wie den Verantwortlichen für den Import.
Beginne mit der Kombination aus Preis, Einheit und Mindestmenge sowie der genauen Kennung der bestehenden Preiszeile. Daran entscheidet sich, ob eine erfolgreich wirkende Transformation die Lieferantenkondition erhält und den richtigen Datensatz aktualisiert. Ergänze Format- und Beziehungsprüfungen und halte die Quelldatei für die Kontrolle verfügbar.
Für die übergreifende Freigabe hilft die Software-QA-Checkliste. Mit Wavects Software-Qualitätssicherung kannst du die Abnahmenachweise für einen Importablauf definieren und unabhängig prüfen lassen. Bring die Quellspezifikation und die Zuordnungen mit, deren Bedeutung noch strittig ist.
