
10. Februar 2026
Einheitliche Vorlagen für Rechnungen und Angebote erstellen
Wenn du als Cakedesk-Nutzer dein eigenes Template erstellt hast, musstest du bisher ein separates Template für Rechnungen und Angebote erstellen.
Seit Cakedesk 1.28.0 kannst du ein einziges Template erstellen, das beide Dokumenttypen abdeckt.
Deine bestehenden Templates funktionieren weiterhin ohne Änderungen. Lies weiter, wenn du wissen möchtest, wie du die neuen Funktionen nutzen kannst, um einheitliche Templates zu erstellen.
#Zusammenfassung
So nutzt du einheitliche Templates für Rechnungen und Angebote in Cakedesk:
- Entferne
documentTypesaus deinertemplate.jsonoder setze sie auf["INVOICE", "PROPOSAL"] - Verwende die neue
document-Variable anstelle voninvoiceoderproposal - Optional: Verwende die neuen Hilfsfunktionen wie
getDocumentIdLabel()undgetDocumentTitle()
#Wie erkenne ich, ob mein Template einheitlich ist?
Wenn du dein Template vor Version 1.28.0 erstellt hast und in Cakedesk aufrufst, siehst du einen Hinweis darauf, dass dein Template aktualisiert werden kann, um Rechnungen und Angebote zu unterstützen.
Außerdem fehlen Schaltflächen, um zwischen der Vorschau für Rechnungen und Angeboten zu wechseln.
Wenn du ein neues Template erstellst, ist es standardmäßig einheitlich und unterstützt sowohl Rechnungen als auch Angebote.
Zum Einen fehlt dann der obige Hinweis, zum Anderen kannst du in der Vorschau zwischen Rechnungen und Angeboten wechseln:
#'documentTypes' in 'template.json' angeben
Ob ein Template einheitlich ist oder nur Rechnungen oder Angebote unterstützt, wird in der template.json-Datei angegeben.
Wenn du documentTypes weglässt, unterstützt dein Template standardmäßig Rechnungen und Angebote und wird als einheitliches Template erkannt.
Wenn du nur Rechnungen oder nur Angebote unterstützen möchtest, kannst du documentTypes angeben.
#Beispiel: Einheitliches Template
{
"name": "Mein Template"
}
#Beispiel: Rechnungstemplate
{
"name": "Mein Template",
"documentTypes": ["INVOICE"]
}
#Beispiel: Angebotstemplate
{
"name": "Mein Template",
"documentTypes": ["PROPOSAL"]
}
#Die neue 'document' Variable
Vor Version 1.28.0 gab es in Templates entweder die invoice-Variable (für
Rechnungsvorlagen) oder die proposal-Variable (für Angebotsvorlagen). Seit
Version 1.28.0 gibt es die neue
document-Variable, die Felder für beide
Dokumenttypen bereitstellt.
Die document-Variable ersetzt also sowohl invoice als auch proposal. Die
meisten Feldnamen bleiben gleich, aber einige wurden vereinheitlicht, um für
beide Dokumenttypen zu passen. Hier sind die wichtigsten Änderungen:
| Alt (Rechnungen) | Alt (Angebote) | Neu (einheitlich) |
|---|---|---|
invoice.invoiceId |
proposal.proposalId |
document.id |
invoice.invoiceDate |
proposal.proposalDate |
document.date |
invoice.invoiceText |
N/A |
document.outroText |
N/A |
proposal.proposalText |
document.introText |
invoice.taxSubtotalsV2 |
proposal.taxSubtotalsV2 |
document.taxSubtotals |
Eine vollständige Referenz aller document-Eigenschaften findest du in der Dokumentation unter Variablen.
Zum Vergleich kannst du dir die alten Variablen ansehen:
- Neu: Variablen (einheitlich)
- Alt: Variablen (Rechnungen)
- Alt: Variablen (Angebote)
#Abwärtskompatibilität
Alle alten Templates funktionieren weiterhin genau wie zuvor. Die invoice- und
proposal-Variablen werden weiterhin neben den neuen Variablen bereitgestellt.
Du musst deine bestehenden Templates nicht aktualisieren.
#Die neue 'documentType' Variable
Eine neue Top-Level-Variable documentType steht in allen Templates zur
Verfügung. Sie ist entweder 'INVOICE' oder 'PROPOSAL' und eignet sich für
bedingtes Rendern. Zum Beispiel:
<% if (documentType === 'INVOICE') { %>
<p>Vielen Dank für Ihren Auftrag!</p>
<% } else { %>
<p>Wir freuen uns auf die Zusammenarbeit.</p>
<% } %>
#Neue Hilfsfunktionen
Vier neue Hilfsfunktionen erleichtern das Erstellen einheitlicher Templates:
getDocumentIdLabel(): Gibt je nach Dokumenttyp "Rechnungsnummer" oder "Angebotsnummer" zurückgetShortDocumentIdLabel(): Gibt die Kurzversion der ID-Bezeichnung zurückgetDocumentDateLabel(): Gibt "Rechnungsdatum" oder "Angebotsdatum" zurückgetDocumentTitle(): Gibt "Rechnung" oder "Angebot: Mein Titel" zurück
Weitere Details findest du in der Dokumentation der Hilfsfunktionen.
#Stylesheets in 'template.json' angeben
Um das Zusammenführen von Rechnungs- und Angebotstemplates zu erleichtern,
kannst du jetzt die Stylesheets, die in deinem Template verwendet werden sollen,
in der template.json-Datei angeben.
Standardmäßig wird davon ausgegangen, dass dein Template eine styles.css-Datei im selben Verzeichnis hat. Du kannst das aber auch explizit angeben:
{
"stylesheets": ["styles.css"]
}
Wenn du unterschiedliche Stylesheets für Rechnungen und Angebote verwenden möchtest, kannst du das so angeben:
{
"stylesheets": {
"INVOICE": ["invoice-styles.css"],
"PROPOSAL": ["proposal-styles.css"]
}
}
#Änderung des Template-Speicherorts
Innerhalb des Cakedesk-Datenordners, befinden sich jetzt alle
benutzerdefinierten Templates in einem einzigen templates/-Ordner (anstelle
der separaten invoiceTemplates/- und proposalTemplates/-Ordner).
Beim Update auf die neue Cakedesk-Version werden deine bestehende Templates automatisch verschoben:
invoiceTemplates/meintemplate/→templates/meintemplate-invoice/proposalTemplates/meintemplate/→templates/meintemplate-proposal/
#Viel Spaß!
Ich hoffe, dass dir dieses Update die Arbeit mit Cakedesk-Templates erleichtert.
Wenn du Fragen hast oder Hilfe benötigst, melde dich einfach! Wenn dir eine Funktion fehlt, erstelle gerne ein Feature Request oder stimme für bestehende Anfragen ab.