Zum Inhalt springen

Das Produkt.template Modell: Odoos Produktarchitektur Verstehen

Ein vollständiger Leitfaden zum Produktvorlagenmodell von Odoo für Entwickler und funktionale Berater
10. März 2026 durch
Das Produkt.template Modell: Odoos Produktarchitektur Verstehen
Dasolo
| Noch keine Kommentare

Einführung


In Odoo definieren Modelle, wie Daten strukturiert und in der Datenbank gespeichert werden. Jedes Stück Geschäftsdaten, mit dem Sie arbeiten, von Verkaufsaufträgen über Rechnungen bis hin zu Produkten, lebt in einem Modell.


Das Verständnis von Odoo-Modellen ist sowohl für Entwickler als auch für funktionale Berater unerlässlich. Modelle sind das Fundament der Odoo-Datenarchitektur. Sie definieren Odoo-Felder, Beziehungen und Geschäftslogik. Jedes Modell in Odoo folgt denselben Mustern.


Dieser Artikel konzentriert sich auf eines der wichtigsten Modelle in Odoo: product.template. Egal, ob Sie benutzerdefinierte Module erstellen, externe Systeme integrieren oder Produktkataloge konfigurieren, Sie werden mit diesem Modell arbeiten.

Was ist das Produkt.template-Modell


Das Produkt.template-Modell repräsentiert eine Gruppe ähnlicher Produkte, die sich nur in wenigen Eigenschaften wie Größe oder Farbe unterscheiden. Anstatt separate Produktdatensätze für jede Variation zu erstellen, werden Produkte in Vorlagen mit Varianten organisiert.


Dieses Modell in Odoo wird in den Bereichen Verkauf, Einkauf, Lager, E-Commerce und Fertigung verwendet. Wenn Sie ein Produkt im Katalog erstellen, erstellen Sie einen Produkt.template-Datensatz. Wenn Sie eine Kundenbestellung erstellen, wählen Sie aus Produktvarianten, die von der Vorlage erben.


Das Modell ist im Produktmodul definiert. Andere Module erweitern es durch die Odoo-Modellvererbung. Der Verkauf fügt Preisgestaltung und Rechnungsstellung hinzu. Der Einkauf fügt die Verwaltung von Lieferanten hinzu. Das Lager fügt die Bestandsverfolgung hinzu. Jedes Modul fügt hinzu, was es benötigt, ohne die Kernstruktur zu duplizieren.

Das Verständnis des Unterschieds zwischen product.template und product.product ist entscheidend. Die Vorlage enthält gemeinsame Daten. Die Variante (product.product) enthält variantspezifische Daten wie Barcode und SKU.

Wichtige Felder im Modell


Hier sind die wichtigsten Odoo-Felder im Produkt.template-Modell. Das Verständnis dieser Felder wird Ihnen helfen, effektiv mit Produkten zu arbeiten.


1. name

Typ: Char. Dieses Feld speichert den Namen des Produkts. Es wird in vielen Odoo-Ansichten angezeigt und ist der primäre Identifikator für die Produktvorlage.


2. create_date

Typ: Datetime. Speichert das Datum und die Uhrzeit, zu der der Datensatz erstellt wurde. Wird automatisch von Odoo verwaltet. Nützlich für Berichterstattung und Audits.


3. write_date

Typ: Datetime. Speichert das Datum und die Uhrzeit der letzten Änderung. Wird ebenfalls automatisch verwaltet. Hilft dabei, nachzuvollziehen, wann die Daten zuletzt aktualisiert wurden.


4. active

Typ: Boolean. Soft-Delete-Flag. Wenn False, wird der Datensatz archiviert und von den Standardansichten verborgen. Datensätze werden nicht physisch gelöscht.


5. Sequenz

Typ: Integer. Anzeigeordnung für die Sortierung. Wird in Produktlisten und Dropdowns verwendet. Niedrigere Werte erscheinen zuerst.


6. Typ

Typ: Auswahl. Produkttyp: Verbrauchsmaterial, Dienstleistung oder lagerfähiges Produkt. Verbrauchsmaterialien werden nicht im Lager verfolgt. Dienstleistungen haben keinen physischen Bestand. Lagerfähige Produkte werden im Inventar verfolgt.


7. categ_id

Typ: Many2one (product.category). Die Produktkategorie. Beeinflusst Berichterstattung, Standardrouten und Katalogorganisation. Kategorien können hierarchisch sein.


8. list_price

Typ: Float. Der Verkaufspreis. Wird als Standard verwendet, wenn Angebote erstellt werden. Kann durch Preisliste oder variantenspezifische Preisgestaltung überschrieben werden.


9. standard_price

Typ: Float. Der Kostenpreis. Wird für Margenberechnungen und Lagerbewertung verwendet. Beeinflusst Rentabilitätsberichte.


10. currency_id

Typ: Many2one (res.currency). Die Währung für list_price und standard_price. Wird normalerweise von der Firma geerbt.


11. uom_id

Typ: Many2one (uom.uom). Die Maßeinheit für den Verkauf. Definiert, wie Mengen ausgedrückt werden (z.B. Stück, Kg, Liter).


12. uom_po_id

Typ: Many2one (uom.uom). Die Maßeinheit für Einkäufe. Kann sich von uom_id in Umrechnungsszenarien unterscheiden.


13. default_code

Typ: Char. Interne Referenz oder Code. Nützlich für die Zuordnung zu externen Systemen und für benutzerdefinierte Nummerierungen. Oft als SKU verwendet.


14. barcode

Typ: Char. Barcode zum Scannen. Wird im POS, Lager und Inventar verwendet. Bei Varianten ist der Barcode typischerweise auf product.product.


15. description

Typ: Char. Interne Beschreibung. Nur für interne Benutzer sichtbar. Wird für interne Notizen über das Produkt verwendet.


16. description_sale

Typ: Text. Verkaufsbeschreibung. Wird auf Angeboten und Rechnungen angezeigt. Kann HTML zur Formatierung enthalten.


17. beschreibung_einkauf

Typ: Text. Einkaufsbeschreibung. Wird auf Bestellungen und Lieferantenrechnungen angezeigt. Hilft Käufern, mit Lieferanten zu kommunizieren.


18. verkauf_ok

Typ: Boolean. Gibt an, ob das Produkt verkauft werden kann. Wenn False, wird das Produkt in Verkaufs- und Angebotsformularen ausgeblendet.


19. einkauf_ok

Typ: Boolean. Gibt an, ob das Produkt gekauft werden kann. Wenn False, wird das Produkt in Bestellformularen ausgeblendet.


20. gewicht

Typ: Float. Produktgewicht. Wird für Versandberechnungen und Logistik verwendet. Einheit hängt von den UoM-Einstellungen des Unternehmens ab.


21. volumen

Typ: Float. Produktvolumen. Wird für Logistik und Lagerkapazitätsplanung verwendet.


22. produkt_varianten_ids

Typ: One2many (product.product). Die Liste der Produktvarianten. Jede Variante erbt vom Template.


23. produkt_variant_count

Typ: Ganzzahl. Anzahl der Varianten. Berechnet aus product_variant_ids. Wird für die Anzeige und Filterung verwendet.


24. image_1920

Typ: Binär. Produktbild. Odoo speichert mehrere Größen. Wird in Formularen, Berichten und auf der Website verwendet.


25. responsible_id

Typ: Many2one (res.users). Der verantwortliche Benutzer. Wird für das Produktmanagement und die Zuweisung von Aktivitäten verwendet.


26. company_id

Typ: Many2one (res.company). In Multi-Company-Setups zeigt dies an, zu welchem Odoo-Unternehmen das Produkt gehört.


27. tax_ids

Typ: Many2many (account.tax). Kundenspezifische Steuern für Verkäufe. Werden auf Rechnungen und Angeboten angewendet.


28. supplier_tax_id

Typ: Many2many (account.tax). Lieferantensteuern für Einkäufe. Anwendbar auf Lieferantenrechnungen.


29. attribute_line_ids

Typ: One2many. Produktattributzeilen für Varianten. Definiert, welche Attribute (z.B. Größe, Farbe) Varianten erstellen.


30. route_ids

Typ: Many2many (stock.route). Lagerwege. Bestimmt, wie das Produkt durch die Lieferkette bewegt wird (z.B. Kaufen, Auftragsfertigung).


31. property_stock_production

Typ: Many2one (stock.location). Produktionsstandort für hergestellte Produkte. Wird verwendet, wenn der Typ lagerfähig ist und die Route Fertigung umfasst.


32. property_stock_inventory

Typ: Many2one (stock.location). Standort für Bestandsanpassungen. Wird für Bestandszählungen und Korrekturen verwendet.


33. property_valuation

Typ: Auswahl. Methode zur Bestandsbewertung: Automatisiert oder Manuell. Beeinflusst, wie die Kosten berechnet werden.


34. property_cost_method

Typ: Auswahl. Kostenrechnungsmethode: Standard oder FIFO. Bestimmt, wie der Inventarwert berechnet wird.


35. property_account_income_id

Typ: Many2one (account.account). Einkommenskonto für Verkäufe. Wird bei der Rechnungsstellung verwendet.


36. property_account_expense_id

Typ: Many2one (account.account). Aufwandskonto für Einkäufe. Wird beim Empfang von Lieferantenrechnungen verwendet.


37. invoice_policy

Typ: Auswahl. Wann zu fakturieren ist: Bestellmengen oder Gelieferte Mengen. Beeinflusst, wann Einnahmen anerkannt werden.


38. expense_policy

Typ: Auswahl. Wann zu verbuchen ist: Bestellt oder Geliefert. Beeinflusst, wann Kosten anerkannt werden.


39. service_type

Typ: Auswahl. Für Dienstleistungsprodukte: Manuell, Stundenzettel oder Meilensteine. Bestimmt, wie Dienstleistungen verfolgt und fakturiert werden.


40. optional_product_ids

Typ: Many2many (product.template). Optionale Produkte für Upselling. Wird angezeigt, wenn dieses Produkt zu einem Angebot hinzugefügt wird.

Wie dieses Modell in Geschäftsabläufen verwendet wird


1. Vertrieb und Angebote

Wenn ein Verkäufer ein Angebot erstellt, wählt er Produkte aus dem Katalog aus. Das Modell product.template bietet das Basisprodukt. Varianten werden ausgewählt, wenn das Produkt Attribute hat (Größe, Farbe).


2. E-Commerce

Auf der Website sehen Kunden Produktvorlagen im Katalog. Wenn sie auf ein Produkt klicken, können sie zwischen Varianten wählen. Die Vorlage enthält die gemeinsame Beschreibung und Bilder.


3. Einkauf und Lieferanten

Bestellungen und Lieferantenrechnungen verknüpfen sich mit product.template. Das Feld purchase_ok steuert die Sichtbarkeit. Die supplier_tax_id und uom_po_id bestimmen das Einkaufsverhalten.


4. Lager und Fertigung

Bestandsbewegungen und Fertigungsaufträge beziehen sich auf Produktvarianten. Die Vorlage definiert Routen, Bewertung und Kostenmethode. Der Bestand wird pro Variante verfolgt.


5. Rechnungsstellung

Rechnungen und Rechnungen beziehen sich auf Produktlinien. Die Vorlage liefert Steuerregeln und Buchhaltungskonten. Die Rechnungsrichtlinie bestimmt, wann Einnahmen anerkannt werden.

Wie Entwickler dieses Modell erweitern


Entwickler erweitern product.template mit mehreren Mustern. Die Vererbung von Odoo-Modellen ist der Hauptmechanismus.


Modellvererbung

Verwenden Sie _inherit = 'product.template', um das Modell zu erweitern. Dies ist die Modellvererbung in Odoo in Aktion. Fügen Sie neue Odoo-Felder hinzu, überschreiben Sie Methoden oder fügen Sie Einschränkungen hinzu. Das vererbte Modell in Odoo hält Ihre Änderungen in einem separaten Modul für einfache Upgrades. Wenn Sie ein Modell in Odoo erben, erweitern Sie es, ohne das Original zu ändern.


Felder hinzufügen

Definieren Sie neue Odoo-Felder in Ihrem vererbten Modell. Verwenden Sie den richtigen Feldtyp: Char, Many2one, Boolean, Integer, Text, Auswahl. Berücksichtigen Sie unternehmensabhängige Felder für mehrere Unternehmen.


Python-Erweiterungen

Überschreiben Sie create, write oder unlink, um Logik hinzuzufügen. Verwenden Sie super(), um das Original aufzurufen. Seien Sie vorsichtig mit berechneten Feldern und deren Abhängigkeiten.


Odoo Studio

Odoo Studio ermöglicht es Ihnen, Felder ohne Code hinzuzufügen. Gut für schnelle Anpassungen. Für komplexe Logik oder Upgrades sind benutzerdefinierte Module wartungsfreundlicher.

Best Practices


  • Verwenden Sie die Template-Variant-Beziehung korrekt. Legen Sie gemeinsame Daten auf dem Template und variantenspezifische Daten auf product.product ab.
  • Setzen Sie categ_id für eine ordnungsgemäße Weiterleitung und Berichterstattung. Kategorien bestimmen das Standardverhalten.
  • Verwenden Sie default_code für die Zuordnung zu externen Systemen. Halten Sie es, wenn möglich, einzigartig.
  • Beim Erstellen von API-Integrationen verwenden Sie die XML-RPC- oder JSON-RPC-API. Das Modell product.template ist vollständig als API-Modell in Odoo verfügbar. Ordnen Sie externe IDs sorgfältig zu.
  • Für benutzerdefinierte Felder verwenden Sie das x_-Präfix oder ein Modulpräfix, um Konflikte mit zukünftigen Odoo-Versionen zu vermeiden.

Häufige Fehler


  • Erstellen Sie doppelte Vorlagen, anstatt Varianten zu verwenden. Verwenden Sie attribute_line_ids für Produkte, die sich nur in Größe, Farbe usw. unterscheiden.
  • Verwechseln Sie product.template und product.product. Wenn Sie variantenspezifische Daten (Barcode, SKU) benötigen, verwenden Sie product.product.
  • Vergessen Sie nicht, sale_ok oder purchase_ok festzulegen. Produkte werden in Formularen ausgeblendet, wenn diese auf False gesetzt sind.
  • Überschreiben Sie Kernmethoden, ohne super() aufzurufen. Dies kann andere Module oder zukünftige Upgrades beeinträchtigen.
  • Fügen Sie erforderliche benutzerdefinierte Felder ohne Standardwerte hinzu. Bestehende Datensätze werden bei einem Upgrade die Validierung nicht bestehen.

Fazit


Das Modell product.template ist zentral für Odoo. Es speichert Produktdefinitionen und gemeinsame Attribute. Das Verständnis seiner Felder und wie Module es erweitern, wird Ihnen helfen, Odoo effektiv zu konfigurieren, anzupassen und zu integrieren.


Egal, ob Sie ein funktionaler Berater sind, der Produktkataloge abbildet, oder ein Entwickler, der benutzerdefinierte Module erstellt, ein solides Verständnis von product.template wird Zeit sparen und Fehler verhindern.

Beginnen Sie mit Dasolo


Dasolo hilft Unternehmen bei der Implementierung, Anpassung und Optimierung von Odoo. Wir sind auf API-Integrationen und Odoo-Entwicklung spezialisiert. Unser Team hat umfassende Erfahrung mit der Odoo-Datenarchitektur und Modellen wie product.template.


Wenn Sie Hilfe bei Ihrer Odoo-Implementierung, benutzerdefinierten Modulen oder Integrationen benötigen, sind wir hier, um zu helfen. Buchen Sie eine Demo um Ihr Projekt zu besprechen.

Das Produkt.template Modell: Odoos Produktarchitektur Verstehen
Dasolo 10. März 2026
Diesen Beitrag teilen
Anmelden , um einen Kommentar zu hinterlassen