DE · AT · CHAnleitung

Stammdaten für Odoo vorbereiten: Kunden, Artikel, Lieferanten

Aktualisiert:

Gilt für: Odoo 20.0, App Kontakte und Produktstamm; Community und Enterprise; Odoo Online, Odoo.sh, On-Premise; Data-Cleaning-Dublettensuche nur Enterprise

Kurz gesagt

Bereinigen Sie Stammdaten je Objekt: Duplikate entfernen, Adressen und Nummern in eigene Felder, Datumswerte als JJJJ-MM-TT. Geben Sie jeder Zeile eine eindeutige externe ID und importieren Sie verknüpfte Daten zuerst, etwa Produktkategorien vor Artikeln. Prüfen Sie die Zuordnung mit der Schaltfläche Test; ein Import lässt sich nicht zurücksetzen (Odoo 20.0).

Das Wichtigste

  • Odoo 20.0 nimmt Daten über Excel-Dateien (.xlsx) oder CSV-Dateien an; das gilt für alle Geschäftsobjekte, etwa Kontakte und Produkte.
  • Ein Import ist dauerhaft und lässt sich nicht zurücksetzen; erstellte oder geänderte Datensätze finden Sie über die Filter created on und last modified.
  • Die Spalte External ID (ID) gehört in jede Importdatei: eine eindeutige externe ID je Datensatz macht Wiederholungsimporte zu Updates und erlaubt Querverweise zwischen Objekten.
  • Verknüpfte Datensätze zuerst importieren: Produktkategorien vor Artikeln, Unternehmen vor Ansprechpartnern; je Feld nur eine Referenzart (Name, Database ID oder External ID).
  • Odoo schätzt Datumsformate aus den ersten zehn Zeilen der Datei; in CSV-Dateien ist ISO 8601 (JJJJ-MM-TT) zu verwenden, um vertauschte Tage und Monate auszuschließen.
  • Duplikate lassen sich in der App Kontakte zusammenführen; die Dublettensuche Deduplicate the other Contacts findet Duplikate anhand gewählter Kriterien und führt automatisch oder nach manueller Prüfung zusammen. Die Dublettensuche der App Data Cleaning ist nur in der Enterprise-Edition enthalten.

Kunden, Lieferanten und Artikel landen über denselben Weg in Odoo: eine Datei pro Objekt, hochgeladen im Listenfenster der jeweiligen App. Ob der Import sauber durchläuft, entscheidet sich vorher — in der Aufbereitung der Datei. Diese Anleitung zeigt die Bereinigung anhand einer Checkliste, die Spalten der beiden Importvorlagen und den Ablauf bis zum Testimport in Odoo 20.0. Den nachfolgenden Wiederholungsimport mit externen IDs behandelt der Artikel Daten in Odoo importieren: CSV, Excel und externe IDs.

Was Sie vorab brauchen

  • Zugriff auf eine Odoo-20.0-Datenbank mit der App Kontakte; Artikel pflegen Sie je nach Anwendung unter Verkauf, Einkauf oder Lager in der Produktliste.
  • Ein Export aus Ihrem Altsystem, je Objekt eine Datei im Format .xlsx oder .csv; beide Formate nimmt Odoo laut Dokumentation an.
  • Eine Tabellenkalkulation, die CSV mit wählbarem Trennzeichen speichert; die Dokumentation nennt LibreOffice und OpenOffice, weil sich dort Trennzeichen, Textbegrenzer und Kodierung einstellen lassen.
  • Eine Entscheidung, aus welchen Altdaten die externe ID je Datensatz gebildet wird; was eine externe ID ausmacht, definiert der Artikel Externe ID (Odoo).
  • Eine Liste der Produktkategorien und Stichwörter, die in Odoo bereits existieren; verknüpfte Datensätze müssen vor den Datensätzen liegen, die auf sie verweisen.

Checkliste: Stammdaten vor dem Import bereinigen

Die folgenden Punkte sind eine redaktionelle Checkliste; sie fasst Regeln zusammen, die die 20.0-Dokumentation für Importdateien nennt. Arbeiten Sie sie je Objekt ab, bevor Sie die Datei hochladen.

  1. Trennen Sie Datensatztypen: Je Unternehmen und je Ansprechperson ein eigener Datensatz; verknüpfen Sie die Personen über die Spalte Related Company/External ID mit dem Unternehmen, wie das SQL-Beispiel der Dokumentation es vorführt.
  2. Suchen Sie Duplikate in der Quelldatei anhand der Kriterien der Zusammenführungsfunktion: E-Mail, Name, Is Company, USt-IdNr. (VAT) und Parent Company. Wählen Sie mehrere Kriterien, schlägt Odoo laut Merge-Dokumentation nur Datensätze als Duplikate vor, die in allen gewählten Feldern übereinstimmen. Diese Dublettensuche (Deduplicate the other Contacts) gehört zur App Kontakte und ist laut Quellcode im Community-Modul base enthalten; nur die Dublettensuche der App Data Cleaning ist Enterprise-only.
  3. Verteilen Sie Adressen auf eigene Felder (Straße, PLZ, Stadt, Land). Führen Sie Telefonnummern mit Ländercode auf — das ist eine redaktionelle Empfehlung für die internationale Erreichbarkeit; die Kontaktedokumentation verlangt nur, die Telefonnummer einzutragen.
  4. Notieren Sie Datumswerte in CSV-Dateien als JJJJ-MM-TT (ISO 8601); in Excel-Dateien nutzen Sie Datumszellen, weil Odoo dort keine Formatierungsoptionen anbietet.
  5. Halten Sie Zahlen frei von Textanteilen: Währungssymbole und Tausendertrennzeichen erkennt Odoo selbst, ein unbekanntes Währungssymbol kann den Import laut Dokumentation abbrechen. Negative Werte trägt die Datei mit führendem Minuszeichen oder in Klammern ein (beides nennt die Dokumentation als unterstützte Formen); nur bei Klammern muss das Währungssymbol innerhalb der Klammern stehen, sonst erkennt Odoo den Wert nicht als negative Zahl.
  6. Legen Sie je Artikel eine Produktart fest: Güter, Dienstleistung oder Kombi. Dienstleistungen sind laut Produktdokumentation im Lager nicht verfolgbar; wer Chargen oder Seriennummern führen will, wählt Güter und die Bestandsverfolgung (siehe Chargen und Seriennummern in Odoo).
  7. Sortieren Sie verknüpfte Daten vor: Produktkategorien vor Artikeln, Unternehmen vor Ansprechpersonen — die Dokumentation fordert, verknüpfte Datensätze zuerst zu importieren. Stichwörter stehen in einer Spalte, durch Kommas ohne Leerzeichen getrennt.
  8. Vergeben Sie je Zeile eine externe ID, die über alle Objekte hinweg eindeutig ist, mit Präfix wie kunde_12 oder artikel_140; das ist eine Empfehlung aus der Dokumentation, um Kollisionen zwischen Objekten zu vermeiden.

Spalten der Importvorlage für Kontakte

Auf der Importseite der Kontakte lädt Odoo die Vorlage Import Template for Customers herunter; fertige Vorlagen lassen sich laut Dokumentation in einem Durchgang importieren, weil die Zuordnung vorkonfiguriert ist. Ergänzen oder entfernen Sie Spalten nach Bedarf — die Spalte External ID (ID) soll laut Dokumentation nicht entfernt werden. Die folgenden Spalten sind ein Vorschlag; entscheidend ist die Zuordnung auf das Odoo-Feld im Importdialog.

Spalte (Vorschlag) Odoo-Feld Was Sie eintragen
id External ID (ID) eindeutige ID mit Präfix, etwa kunde_12
name Name Firmenname oder Name der Person, Pflichtfeld
email E-Mail E-Mail-Adresse inklusive Domain
phone Telefon Nummer mit Ländercode (redaktionelle Empfehlung)
street, zip, city Adresse Straße, PLZ und Stadt in drei Spalten
country Land Name oder Code des Landes
vat USt-IdNr. (Tax ID) Steuer-Identifikationsnummer; bei nicht steuerpflichtigen Kontakten erlaubt die Dokumentation einen Schrägstrich
lang Sprache Sprache des Kontakts; Dokumente an ihn werden in dieser Sprache erzeugt
tags Stichwörter (Tags) mehrere Werte kommagetrennt ohne Leerzeichen, etwa Großkunde,Handel
parent Related Company/External ID externe ID des Unternehmens, nur bei Personen

Weitere Adressen, etwa Rechnungs- und Lieferadressen, legt die Kontaktedokumentation als zugehörige Kontakte mit Adresstyp an (Contact, Invoice, Delivery, Other); beim Import entspricht das dem Dokumentationsmuster „Kunden und zugehörige Kontakte”, bei dem zusätzliche Zeilen ohne Kundenfelder folgen. Beim Feld Land trägt die Datei je nach Bedarf den Namen (Country), die interne Nummer (Country/Database ID) oder die externe ID (Country/External ID); nur eine dieser Referenzarten je Feld.

Spalten der Importvorlage für Produkte

Für Produkte gibt es dieselbe Vorlagenfunktion; die deutsche Übersetzung des Verkaufsmoduls nennt sie „Importvorlage für Produkte”. Auch hier bleibt die Spalte External ID (ID) stehen. Vorschlag für die Spalten:

Spalte (Vorschlag) Odoo-Feld Was Sie eintragen
id External ID (ID) eindeutige ID mit Präfix, etwa artikel_140
name Name Produktname
ref Interne Referenz Ihre Artikelnummer
type Produktart Güter, Dienstleistung oder Kombi
sale_ok, purchase_ok Verkaufen / Kaufen Kontrollkästchen: True oder False je Feld
list_price Verkaufspreis Preis ohne Währungstext; Dezimaltrennzeichen aus den Formatierungsoptionen der CSV-Datei
standard_price Kosten Einkaufskosten, gleiche Regeln wie beim Verkaufspreis
categ_id Produktkategorie Name oder externe ID einer zuvor importierten Kategorie
uom Maßeinheiten (Unit of Measure) Einheit wie Stück oder kg; je Produkt ist eine Maßeinheit hinterlegt
barcode Barcode EAN oder Strichcode des Artikels
invoice_policy Abrechnungspolitik Bestellte Mengen oder Gelieferte Mengen; das Feld erscheint nur mit installierter App Verkauf und verkäuflichen Artikeln
is_storable Bestand verfolgen True, wenn Odoo den Bestand des Artikels führt; laut Dokumentation nur bei Gütern sinnvoll, da Dienstleistungen nicht verfolgbar sind

Beim Feld Bestand verfolgen bietet Odoo laut Produktdokumentation die Verfolgung per Seriennummer, per Los oder per Menge an. Bei mehreren Treffern gleichen Namens, etwa zwei Kategorien mit demselben Unternamen, hält die Validierung an oder ordnet die Datensätze laut Dokumentation der zuerst gefundenen Kategorie zu; lösen Sie das über die Spalte mit der Endung /ID oder über die externe ID des Ziels.

Schritt für Schritt: Import vorbereiten und ausführen

Schritt 1: Quelldaten je Objekt exportieren

Exportieren Sie aus dem Altsystem Kontakte und Artikel getrennt, jede Beziehung in der eigenen Datei. Ein fehlgeschlagener Test lässt sich so einer einzelnen Datei zuzuordnen.

Schritt 2: Dateien anhand der Checkliste bereinigen

Arbeiten Sie die Checkliste oben ab: Datensatztypen trennen, Duplikate markieren, Adressen und Nummern auf Felder verteilen, Datumswerte als JJJJ-MM-TT, Zahlen ohne Textanteile. Speichern Sie jede bereinigte Datei als eigene Version, damit Sie nach einem abgebrochenen Import an denselben Stand zurückkommen.

Schritt 3: Externe IDs vergeben

Tragen Sie in der Spalte External ID (ID) je Zeile eine eindeutige ID ein und füllen Sie die Spalte über alle Zeilen hinweg fort. Nutzen Sie Präfixe, die das Objekt nennen, etwa lieferant_08. Entfernen Sie die Spalte nicht; dieselbe externe ID für zwei Datensätze erzeugt laut Dokumentation einen Konflikt.

Schritt 4: Verknüpfte Objekte zuerst importieren

Importieren Sie die Dateien in Abhängigkeitsreihenfolge: zuerst Produktkategorien, dann Produkte; zuerst Unternehmen, dann Personen. Die Dokumentation verlangt, verknüpfte Datensätze zuerst zu importieren, und verweist die Verknüpfung über die Spalte Related Company/External ID auf die externe ID des ersten Imports.

Schritt 5: Importdialog öffnen

Öffnen Sie in Odoo die Liste des Zielobjekts, etwa die Kontakte, klicken Sie auf das Aktionensymbol und wählen Sie Import records. An dieser Stelle lädt auch die Vorlage Import Template for Customers.

Schritt 6: Datei hochladen und Zuordnung prüfen

Klicken Sie auf Upload Data File und wählen Sie Ihre Datei. Prüfen Sie in der Vorschau jede Spalte gegen das zugeordnete Odoo-Feld; Odoo schätzt den Feldtyp aus den ersten zehn Zeilen, eine Spalte nur mit Zahlen bietet deshalb zunächst nur Zahlenfelder an. Über die Option Show fields of relation fields (advanced) zeigt der Dialog die volle Feldliste.

Schritt 7: Formatierungsoptionen für CSV setzen

Bei CSV-Dateien stellen Sie unter Formatting options Trennzeichen, Textbegrenzer und Datumsformat ein; die erkannten Werte zeigt der Dialog. Bei Excel-Dateien erscheinen diese Optionen nicht, deshalb gelten dort die Zellformate aus Schritt 2.

Schritt 8: Testen und importieren

Klicken Sie auf Test und beheben Sie gemeldete Fehler in der Datei, nicht im Dialog. Zeigt der Test keine Fehler, klicken Sie auf Import. Ab diesem Punkt sind die Datensätze in der Datenbank. Optional bietet der Entwicklermodus unter Advanced die Optionen Track history during import und Allow matching with subfields; Erstere erzeugt beim Import Nachrichten und verlangsamt ihn laut Dokumentation.

So prüfen Sie das Ergebnis

Öffnen Sie die Liste des importierten Objekts und filtern Sie nach created on bzw. last modified; die Dokumentation nennt diese beiden Filter, um die von einem Import erzeugten oder geänderten Datensätze zu identifizieren. Vergleichen Sie die Trefferzahl mit der Zeilenzahl Ihrer Datei. Öffnen Sie stichprobenartig Datensätze mit Verknüpfungen und prüfen Sie, ob Kategorie, Unternehmen oder Land auf die erwarteten Ziele verweisen. Duplikate, die trotzdem entstanden sind, führen Sie in der App Kontakte über Aktionen ‣ Merge zusammen; das Zusammenführen ist laut Dokumentation unwiderruflich. Nach dem Zusammenführen bietet Kontakte die Dublettensuche Deduplicate the other Contacts an: Sie sucht weitere Duplikate nach den gewählten Kriterien und führt sie automatisch oder nach manueller Prüfung zusammen. Die eigenständige Dublettensuche der App Data Cleaning ist dagegen nach der Modulliste ihrer Dokumentation nur in der Enterprise-Edition enthalten.

Wenn etwas nicht klappt

Symptom Ursache Behebung
Import bricht mit Zeitüberschreitung ab Datei zu groß Datei in kleinere Stapel teilen und je Stapel importieren
Neuer Import erzeugt Duplikate Externe IDs fehlen oder wurden geändert Spalte External ID (ID) behalten und Werte unverändert lassen; geänderte IDs lassen Odoo neue Datensätze anlegen
Tag und Monat vertauscht Datumsformat aus den ersten zehn Zeilen falsch erkannt Datumswerte als JJJJ-MM-TT schreiben oder in Excel Datumszellen verwenden
Import bricht bei einer Zahl ab unbekanntes Währungssymbol Symbol aus der Zelle entfernen oder Tausendertrennzeichen in den Formatierungsoptionen prüfen
Spalte lässt sich keinem Feld zuordnen Spaltenbezeichnung passt zu keinem Feldnamen Feld in der Dropdown-Liste suchen oder Spalte wie das Feld benennen; für Beziehungen Show fields of relation fields (advanced) aktivieren
Artikel landen in der falschen Kategorie gleichnamige Kategorien Spalte mit der Endung /ID oder die externe ID des Ziels verwenden
Stichwörter nicht wie erwartet gesetzt Komma mit Leerzeichen als Trenner Werte ohne Leerzeichen kommagetrennt eintragen

Wann Sie Hilfe holen sollten

Holen Sie Hilfe, wenn mehrere Objekte über fremde Schlüssel verknüpft sind, etwa eine SQL-Datenbank mit Firmen- und Personentabellen; die Dokumentation zeigt das Muster über externe IDs, die Umsetzung im Altsystem macht ein Datenbankteam. Dasselbe gilt, wenn Eröffnungssalden und offene Posten denselben Import durchlaufen sollen — dazu behandelt der Artikel Datenübernahme aus dem Altsystem nach Odoo die Gesamtabfolge. Wer importieren darf, hängt von den Benutzerrechten Ihrer Datenbank ab; das klärt Ihre Odoo-Administration oder Ihr Odoo-Partner, bevor der erste Import in der Produktivdatenbank läuft.

Häufige Fragen

Kann ich einen fehlerhaften Import zurücknehmen?

Nein, die 20.0-Dokumentation markiert Importe als dauerhaft. Führen Sie deshalb zuerst einen Test durch. Erstellte oder geänderte Datensätze finden Sie anschließend über die Filter created on und last modified; korrigieren lassen sie sich über einen erneuten Import derselben Datei mit unveränderten externen IDs.

Was ist der Unterschied zwischen einer leeren Zelle und einer fehlenden Spalte?

Bei der Neuanlage weist Odoo Feldern, für die die Datei keine Spalte enthält, den Standardwert zu; steht in einer vorhandenen Spalte dagegen ein leerer Wert, setzt Odoo diesen Leerwert statt des Standardwerts. Beim Aktualisieren bestehender Datensätze schreibt Odoo nur die in der Datei übergebenen Felder; fehlende Spalten lassen die bestehenden Werte unverändert, eine leere Zelle schreibt den Leerwert ins Feld. Prüfen Sie die Wirkung je Spalte vor dem Import mit einem Testlauf.

Wie viele Datensätze kann ich auf einmal importieren?

Die Dokumentation nennt keine Obergrenze, warnt aber vor Zeitüberschreitungen bei zu großen Dateien und empfiehlt, Exporte und Importe in kleineren Stapeln abzuarbeiten. Teilen Sie Ihre Datei, sobald der Test oder der Import abbricht.

Brauche ich für den Import eine bestimmte Edition oder ein Hosting?

Nein. Der Import gehört zur Odoo-Basisfunktionalität, die die Editionsseite von Odoo S.A. als Kern beschreibt, auf dem Enterprise aufbaut; die 20.0-Dokumentation behandelt ihn ohne Editionseinschränkung. Die Dublettensuche in Kontakte (Deduplicate the other Contacts) gehört laut Merge-Dokumentation zur App Kontakte und ist laut Quellcode im Community-Modul base enthalten; eine Ausnahme ist die Dublettensuche der App Data Cleaning, die laut Modulliste der Data-Cleaning-Dokumentation nur in Enterprise enthalten ist.

Quellen

  1. Export and import data (Odoo 20.0 documentation)Odoo S.A., Dokumentation · abgerufen am
  2. Contacts (Odoo 20.0 documentation)Odoo S.A., Dokumentation · abgerufen am
  3. Merge contacts (Odoo 20.0 documentation)Odoo S.A., Dokumentation · abgerufen am
  4. Quellcode des Moduls base, Zweig 20.0 (odoo/addons/base/wizard/base_partner_merge.py): Zusammenführungsassistent mit Kriterienauswahl und automatischer ZusammenführungOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  5. Product type (Odoo 20.0 documentation)Odoo S.A., Dokumentation · abgerufen am
  6. Data Cleaning (Odoo 20.0 documentation), Modulliste data_recycle, data_cleaning, data_mergeOdoo S.A., Dokumentation · abgerufen am
  7. Compare Editions (Absatz „Odoo Community is the core upon which Odoo Enterprise is built“)Odoo S.A. · abgerufen am
  8. Quellcode des ORM, Zweig 20.0 (odoo/orm/models.py): Import aktualisiert bestehende Datensätze über _load_records_write und schreibt nur die übergebenen FelderOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  9. Deutsche Übersetzung des Moduls web, Zweig 20.0 (addons/web/i18n/de.po): Quelle der deutschen Feldnamen Externe ID, USt-IdNr., Stichwörter, E-Mail, Telefon, LandOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  10. Deutsche Übersetzung des Moduls product, Zweig 20.0 (addons/product/i18n/de.po): Produktart, Interne Referenz, Verkaufspreis, Kosten, Güter, Dienstleistung, KombiOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  11. Deutsche Übersetzung des Moduls sale, Zweig 20.0 (addons/sale/i18n/de.po): Abrechnungspolitik, Bestellte Mengen, Gelieferte Mengen, Importvorlage für ProdukteOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  12. Deutsche Übersetzung des Moduls stock, Zweig 20.0 (addons/stock/i18n/de.po): Bestand verfolgenOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  13. Deutsche Übersetzung des Moduls uom, Zweig 20.0 (addons/uom/i18n/de.po): MaßeinheitenOdoo S.A., öffentlicher Quellcode (Community) · abgerufen am