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:
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
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:
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>
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>
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:
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:
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:
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:
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:
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
7.2 Vorsicht bei t-raw und komplexer Logik
7.3 Mehrsprachigkeit und Lokalisierung
Odoo unterstützt Mehrsprachigkeit. Achte bei QWeb Templates auf:
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:
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:
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 startenDu hast noch Fragen?









Keine Kommentare vorhanden