QWeb Template

Was ist QWeb Template?

Was ist ein QWeb Template?

Ein QWeb Template ist eine HTML-basierte Vorlagendatei im Odoo-Framework, mit der Oberflächen, E-Mails, Reports und Webseiten dynamisch aus Daten gerendert werden. QWeb Templates kombinieren statisches HTML mit speziellen Platzhaltern und Kontrollstrukturen, um flexibel Inhalte aus dem Backend anzuzeigen.

1. Grundlagen: Definition von QWeb und QWeb Template

QWeb ist die Template-Engine des Open-Source-ERP-Systems Odoo. Ein QWeb Template ist eine strukturierte Vorlage auf Basis von XML/HTML, mit der Inhalte dynamisch generiert werden – zum Beispiel Web-Oberflächen, Shop-Seiten, E-Mails, PDF-Reports oder Backend-Dialoge.

Jedes QWeb Template beschreibt, wie Daten aus dem Odoo-Modell (z. B. Produkte, Bestellungen, Kunden) in HTML-Elemente eingebettet werden. Die Logik (Python im Backend) und die Präsentation (Template) bleiben sauber getrennt, was die Wartung und Skalierung von E-Commerce-Projekten deutlich vereinfacht.

2. Wie ein QWeb Template aufgebaut ist

QWeb Templates sind in der Regel in XML-Dateien definiert, folgen aber der HTML-Struktur. Typische Bestandteile sind:

  • Wurzelelement: <template> mit eindeutiger ID
  • HTML-Struktur: Tags wie <div>, <span>, <table>, <section>
  • Platzhalter: Ausdrücke mit t-esc oder t-raw für dynamische Inhalte
  • Kontrollstrukturen: Schleifen (t-foreach), Bedingungen (t-if, t-elif, t-else)
  • Vererbung/Erweiterung: t-inherit und t-jquery zum Anpassen bestehender Templates

Einfaches Beispiel für ein QWeb Template, das einen Produktnamen ausgibt:

<template id="product_name_snippet"><span t-esc="product.name"/></template>

3. Zentrale QWeb Template-Tags und ihre Bedeutung

QWeb erweitert HTML um eigene Attribute. Die wichtigsten solltest du kennen, bevor du komplexe E-Commerce-Templates aufsetzt.

3.1 Daten ausgeben mit t-esc und t-raw

  • t-esc: Gibt Inhalte HTML-escaped aus (sicher gegen Skripte), z. B. <span t-esc="product.name"/>
  • t-raw: Gibt HTML unverändert aus (nur verwenden, wenn du der Quelle voll vertraust)

Im E-Commerce-Kontext nutzt du t-esc für Produktnamen, Preise, Kundendaten und nahezu alle dynamischen Texte, da hier Datensicherheit und Stabilität im Vordergrund stehen.

3.2 Schleifen in QWeb Templates: t-foreach

Mit t-foreach iterierst du über Listen, zum Beispiel Produktlisten, Bestellzeilen oder Varianten:

<t t-foreach="order.order_line" t-as="line"><li t-esc="line.product_id.display_name"/></t>

Für Onlineshops ist t-foreach essenziell, um:

  • Kategorie-Listen mit Produkten auszugeben
  • Cross-Selling-Elemente zu rendern (z. B. passende Produkte)
  • Warenkorb-Positionen und Bestellübersichten dynamisch aufzubauen

3.3 Bedingungen: t-if, t-elif, t-else

Mit Bedingungen steuerst du, welche HTML-Elemente wann gerendert werden, zum Beispiel nur, wenn ein Produkt rabattiert ist oder ein Feld befüllt wurde:

<div t-if="product.list_price > product.price">Rabatt vorhanden</div>

  • t-if: Rendert nur, wenn der Ausdruck wahr ist
  • t-elif: Alternative Bedingung
  • t-else: Fallback, wenn nichts anderes greift

3.4 Template-Vererbung mit t-inherit

Ein starkes Feature von QWeb Templates ist die Vererbung. Statt Core-Templates zu überschreiben, kannst du bestehende Templates gezielt erweitern oder modifizieren:

<template id="my_website_sale_product" inherit_id="website_sale.product">...</template>

  • inherit_id verweist auf das bestehende Template
  • Über t-jquery und t-operation fügst du Elemente ein, ersetzt oder entfernst sie

So kannst du zum Beispiel im Odoo-Webshop zusätzliche Attribute, USPs oder trust-relevante Inhalte anzeigen, ohne die Update-Fähigkeit des Systems zu verlieren.

4. Arten von QWeb Templates im Odoo- und E-Commerce-Kontext

QWeb Templates werden in verschiedenen Bereichen von Odoo eingesetzt. Für E-Commerce-Teams sind vor allem folgende Kategorien relevant:

Template-Typ Einsatzbereich Typische Beispiele
Frontend-Templates Webshop & Website Produktdetailseiten, Kategorieseiten, Warenkorb, Checkout, Landingpages
Report-Templates PDF/Print Rechnungen, Lieferscheine, Angebote, Gutschriften
E-Mail-Templates Transaktionsmails Bestellbestätigung, Versandbenachrichtigung, Passwort-Reset
Backend-Views Odoo UI Formulare, Listenansichten, Kanban-Boards

4.1 QWeb Templates im Odoo-Webshop

Im Odoo-Webshop bilden QWeb Templates das Fundament für:

  • Produktdarstellung (Bilder, Attribute, Varianten-Auswahl)
  • Preis- und Rabattlogik auf der Seite
  • Filter, Sortierungen und Paginierung
  • Trust-Elemente wie Bewertungen, Lieferzeit, Zahlungsmethoden

Du kannst Standard-Templates der Module website und website_sale gezielt vererben, um die Conversion-Optimierung deines Shops voranzutreiben.

4.2 QWeb Report-Templates

QWeb Report-Templates steuern die Darstellung von Dokumenten wie Rechnungen oder Angeboten. Die Business-Logik kommt aus Odoo-Modellen, das Layout wird im QWeb Template definiert. Gerade im B2B-E-Commerce sind sauber strukturierte Reports mit individuellen Feldern (Bestellnummern, Projektreferenzen, Zahlungszielen) ein wichtiger Baustein für professionelle Prozesse.

4.3 E-Mail-Templates auf Basis von QWeb

Odoo nutzt ebenfalls QWeb-ähnliche Syntax in E-Mail-Vorlagen. So kannst du zum Beispiel:

  • Personalisierte Anreden und Inhalte generieren
  • Bestellpositionen in der Bestellbestätigung ausgeben
  • Tracking-Links und Status-Informationen einbinden

Ein sauber strukturiertes E-Mail-QWeb-Template sorgt dafür, dass Kunden im E-Commerce jede Transaktion klar nachvollziehen können und Vertrauen in den Shop gewinnen.

5. Vorteile von QWeb Templates für E-Commerce-Teams

Wenn du einen Odoo-Shop betreibst oder E-Commerce-Funktionalitäten auf Odoo-Basis entwickelst, bietet dir das Arbeiten mit QWeb Templates konkrete Vorteile:

  • Trennung von Layout und Logik: Designer und Entwickler können parallel arbeiten.
  • Hohe Wiederverwendbarkeit: Einmal definierte Templates werden an vielen Stellen eingebunden.
  • Update-Sicherheit: Über Vererbung passt du Standard-Templates an, ohne Core-Dateien zu ändern.
  • Skalierbarkeit: Umfangreiche Kataloge, mehrsprachige Shops und komplexe Produktlogiken bleiben wartbar.
  • Datenkonsistenz: Inhalte stammen aus zentralen Modellen und werden überall gleich dargestellt.

Für größere Shops mit tausenden Produkten ist diese Template-Logik eine wichtige Grundlage, um Änderungen an Struktur, Design und Inhalten effizient auszurollen.

6. QWeb Template und Feed-basierte Content-Automation

In vielen E-Commerce-Setups laufen Odoo, PIM, ERP und Shop-Frontend zusammen. Produktdaten liegen in Feeds oder PIM-Systemen vor und werden automatisiert weiterverarbeitet. QWeb Templates sind dabei die Präsentationsschicht, die aus diesen Daten nutzerfreundliche Oberflächen gestaltet.

6.1 Datenfluss: Von Produktfeed zu QWeb Template

Ein typischer Ablauf in einem datengetriebenen E-Commerce-Setup kann so aussehen:

  • Produktdaten werden in einem Feed (XML/CSV/TXT) gepflegt.
  • Ein Content- oder Automations-Tool erzeugt strukturierte Texte, Überschriften und Attribute.
  • Die Inhalte werden in Odoo-Modelle geschrieben oder in verbundene Shopsysteme exportiert.
  • QWeb Templates greifen auf diese Modelle zu und rendern die endgültige Produktseite.

Dadurch entsteht eine klare Kette: Feed als Single Source of Truth, automatisierte Textgenerierung, dann Darstellung über QWeb Templates – konsistent über alle Produkte und Kategorien hinweg.

6.2 Warum Template-Konsistenz für SEO und Conversion wichtig ist

Suchmaschinen und Nutzer erwarten bei großen Shops klare, wiederkehrende Strukturen. QWeb Templates stellen sicher, dass:

  • wichtige Elemente an einer einheitlichen Stelle erscheinen (z. B. USP-Box, technische Daten)
  • H-Überschriften logisch aufgebaut sind (H2/H3-Struktur)
  • Content-Blöcke wie FAQ, Tabellen und Hinweise wiederverwendbar sind

Wenn deine Texte zusätzlich feedbasiert und templategesteuert generiert werden, lässt sich eine Anpassung (z. B. neues Attribut, neue Argumentationslogik) zentral umsetzen und via QWeb Template automatisiert ausrollen.

7. Best Practices für die Arbeit mit QWeb Templates

Damit QWeb Templates in der Praxis stabil, wartbar und performant bleiben, solltest du einige Best Practices beachten.

7.1 Saubere Struktur und Benennung

  • Nutze sprechende IDs wie website_sale.product_card statt generischer Namen.
  • Halte Business-Logik im Python-Modell, nicht im Template.
  • Teile große Templates in kleinere, wiederverwendbare Snippets auf.

7.2 Vorsicht bei t-raw und komplexer Logik

  • Vermeide t-raw, es sei denn, du musst bewusst HTML aus einer sicheren Quelle rendern.
  • Packe Berechnungen (z. B. Preise, Rabatte) in Methoden im Modell und rufe sie im Template auf.
  • Nutze Bedingungen (t-if) vor allem zur Darstellung, nicht zur Geschäftslogik.

7.3 Mehrsprachigkeit und Lokalisierung

Odoo unterstützt Mehrsprachigkeit. Achte bei QWeb Templates auf:

  • Verwendung von Übersetzungs-Tags (z. B. <span t-translation="off"> gezielt einsetzen)
  • Trennung von Daten (z. B. Zahlen, Datumsangaben) und deren Formatierung
  • Korrekte Platzierung von Textbausteinen, die je Sprache variieren können

8. QWeb Template im Vergleich zu anderen Template-Engines

Im Web-Development sind verschiedene Template-Engines verbreitet, zum Beispiel Jinja2, Twig oder Liquid. QWeb unterscheidet sich vor allem durch:

Engine Syntax-Basis Typisches Umfeld
QWeb XML/HTML + Attribute Odoo (ERP, CRM, E-Commerce)
Jinja2 Text/HTML mit {% %} Python-Webframeworks (z. B. Flask)
Twig Text/HTML mit {{ }} Symfony, PHP-Projekte
Liquid Text/HTML mit {{ }} Shopify, viele SaaS-Shops

Der XML-zentrierte Ansatz von QWeb fügt sich nahtlos in das Odoo-Modul- und View-System ein. Für E-Commerce-Teams, die mit Odoo arbeiten, ist QWeb daher der natürliche Standard, um Templates zu erstellen und anzupassen.

9. Typische Fehler beim Einsatz von QWeb Templates

In Projekten mit Odoo- und QWeb-Templates tauchen immer wieder ähnliche Probleme auf, die du vermeiden kannst:

  • Direktes Ändern von Core-Templates statt Vererbung über inherit_id
  • Zu viel Logik im Template, was die Wartung erschwert
  • Fehlende Kapselung von wiederkehrenden Bausteinen (z. B. Produktkarte) in separate Templates
  • Unsichere Ausgabe über t-raw, wodurch potenziell unsaubere Daten angezeigt werden
  • Unübersichtliche IDs, die späteres Debugging schwierig machen

Ein klarer Template-Styleguide und feste Namenskonventionen im Team helfen, solche Fehler langfristig zu vermeiden.

10. Praxisbeispiel: QWeb Template für eine Produktliste

Um den Aufbau greifbarer zu machen, hier ein vereinfachtes Praxisbeispiel für eine Produktliste im Odoo-Webshop (konzeptionell, nicht vollständig):

<template id="website_sale.products_grid"><section class="products"><div t-foreach="products" t-as="product" class="product-card"><h3 t-esc="product.name"/><span t-esc="product.price"/><div t-if="product.description_sale"><span t-esc="product.description_sale"/></div></div></section></template>

Dieses QWeb Template erfüllt mehrere Aufgaben:

  • Schleife über eine Produktmenge mit t-foreach
  • Ausgabe von Name und Preis als zentrale Kaufentscheidungskriterien
  • Optionale Darstellung einer Kurzbeschreibung über t-if

In einem realen Projekt würdest du dieses Template erweitern um Bilder, Badges (z. B. Bestseller), Verfügbarkeiten und SEO-relevante Strukturelemente.

11. Häufige Fragen zu QWeb Template

Was ist ein QWeb Template in Odoo?

Ein QWeb Template ist eine auf XML und HTML basierende Vorlage im Odoo Framework, mit der dynamische Inhalte wie Webseiten, Reports oder E-Mails aus Datenmodellen gerendert werden. Es verbindet statische Struktur mit Platzhaltern und Kontrolllogik, damit Oberflächen und Dokumente automatisch aus den im System hinterlegten Informationen erzeugt werden können.

Wofür werden QWeb Templates im E-Commerce eingesetzt?

Im E-Commerce werden QWeb Templates vor allem für die Darstellung von Produktseiten, Kategorieseiten, Warenkorb, Checkout und transaktionalen Dokumenten wie Rechnungen oder Bestellbestätigungen genutzt. Sie steuern, wie Produktdaten, Preise, Varianten und Kundendaten im Odoo Webshop oder in PDF-Reports optisch aufbereitet und ausgegeben werden.

Was ist der Unterschied zwischen QWeb und anderen Template-Engines?

QWeb ist eng in das Odoo Framework integriert und nutzt eine XML beziehungsweise HTML basierte Syntax mit speziellen Attributen wie t-esc, t-if oder t-foreach. Im Unterschied zu Engines wie Jinja2, Twig oder Liquid ist QWeb direkt an das Odoo View System, die Modulstruktur und die Rechteverwaltung gekoppelt, was die Arbeit mit Odoo Modellen und Views besonders nahtlos macht.

Wie kann ich ein vorhandenes QWeb Template anpassen?

Statt ein QWeb Template direkt zu überschreiben, solltest du die Vererbung verwenden. Dafür legst du ein eigenes Template mit inherit_id auf das bestehende Template an und arbeitest mit t-jquery und t-operation, um Elemente zu ergänzen, zu ersetzen oder zu entfernen. So bleiben Updates von Odoo einspielbar und individuelle Anpassungen dennoch erhalten.

Was bedeuten t-esc und t-raw in QWeb Templates?

t-esc gibt einen Ausdruck HTML-escaped aus, das heißt potenziell schädliche Zeichen werden neutralisiert und sicher im Browser dargestellt. t-raw gibt den Inhalt unverändert aus, inklusive HTML. Für Produkttexte, Kundendaten oder Preise solltest du in der Regel t-esc verwenden und t-raw nur dort einsetzen, wo du die Quelle vollständig kontrollierst.

Sind QWeb Templates auch für mehrsprachige Shops geeignet?

Ja, QWeb Templates unterstützen Mehrsprachigkeit über das Odoo Übersetzungssystem. Statische Texte im Template können über Übersetzungsfunktionen gepflegt werden, während dynamische Inhalte aus den jeweiligen Sprachfeldern der Modelle kommen. Wichtig ist, dass du Textbausteine sauber trennst und keine fest kodierten sprachspezifischen Inhalte in die Logik mischst.

Wie passen automatisiert erzeugte Produkttexte zu QWeb Templates?

Automatisiert erzeugte Produkttexte werden typischerweise in Feldern der Produkt- oder Kategoriemodelle gespeichert und können von QWeb Templates wie jede andere Datenquelle genutzt werden. Das Template definiert, an welcher Stelle welche Textbausteine erscheinen, während ein Content Automation Tool die eigentlichen Inhalte aus Feeds oder PIM Daten generiert.

12. Nächste Schritte: Du möchtest feed2content.ai ® kennenlernen?

Wenn du deine Produktdaten bereits strukturiert in Feeds, PIM oder Odoo nutzt, kannst du den nächsten Hebel bei der Content-Erstellung setzen: Aus denselben Daten automatisiert konsistente Produkttexte, Kategorietexte und Attribute generieren und sie dann über QWeb Templates in deinem Shop ausspielen.

Sieh dir unsere Funktionen live an und teste feed2content.ai ® kostenfrei. In wenigen Minuten erhältst du hunderte fertige Beispieltexte aus deinem eigenen Produktfeed, die sich nahtlos in dein bestehendes QWeb Template-Setup integrieren lassen.

Kostenlos starten

Du hast noch Fragen?

Kontakt


Weitere Inhalte


Keine Kommentare vorhanden


Du hast eine Frage oder eine Meinung zum Artikel? Teile sie mit uns!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*
*