From 573dfbfd500b1d077904d0b02f2f7697ae068a66 Mon Sep 17 00:00:00 2001 From: Gerhard Scheikl Date: Fri, 8 May 2026 23:12:23 +0200 Subject: [PATCH] feat(email): default template with inline logo + shop contact vars Mirrors the layout from data/mail_template.png: - Company name + greeting headline - Body referencing the invoice number - Inline logo (cid:invoice-logo) attached automatically - Footer with mailto + website links New template vars: {{shopEmail}}, {{shopWebsite}}. Settings UI prefills empty fields with the defaults so users see and can tweak them without losing the fallback. --- app/routes/app.settings.tsx | 16 ++++-- app/services/invoice/email.server.ts | 72 ++++++++++++++++++++----- app/services/invoice/emailTemplates.ts | 52 ++++++++++++++++++ data/mail_template.png | Bin 0 -> 39769 bytes 4 files changed, 123 insertions(+), 17 deletions(-) create mode 100644 app/services/invoice/emailTemplates.ts create mode 100644 data/mail_template.png diff --git a/app/routes/app.settings.tsx b/app/routes/app.settings.tsx index 033ec63..d9ca14e 100644 --- a/app/routes/app.settings.tsx +++ b/app/routes/app.settings.tsx @@ -14,6 +14,12 @@ import { storeUploadedLogo, } from "../services/invoice/logoCache.server"; import { RichTextEditor } from "../components/RichTextEditor"; +import { + DEFAULT_EMAIL_BODY_DE, + DEFAULT_EMAIL_BODY_EN, + DEFAULT_EMAIL_SUBJECT_DE, + DEFAULT_EMAIL_SUBJECT_EN, +} from "../services/invoice/emailTemplates"; interface SettingsFieldErrors { vatId?: string; @@ -376,13 +382,13 @@ export default function SettingsRoute() { @@ -390,13 +396,13 @@ export default function SettingsRoute() { @@ -425,6 +431,8 @@ const EMAIL_VARS = [ { token: "{{dueDate}}" }, { token: "{{companyName}}" }, { token: "{{ownerName}}" }, + { token: "{{shopEmail}}" }, + { token: "{{shopWebsite}}" }, ]; interface FieldProps { diff --git a/app/services/invoice/email.server.ts b/app/services/invoice/email.server.ts index 4104ff8..a73982a 100644 --- a/app/services/invoice/email.server.ts +++ b/app/services/invoice/email.server.ts @@ -4,6 +4,13 @@ import type { ShopSettings } from "@prisma/client"; import db from "../../db.server"; import { getStrings, pickLanguage } from "./i18n"; +import { + DEFAULT_EMAIL_BODY_DE, + DEFAULT_EMAIL_BODY_EN, + DEFAULT_EMAIL_SUBJECT_DE, + DEFAULT_EMAIL_SUBJECT_EN, +} from "./emailTemplates"; +import { STORED_LOGO_SENTINEL } from "./logoCache.constants"; export interface SendInvoiceEmailArgs { shopDomain: string; @@ -73,20 +80,20 @@ export async function sendInvoiceEmail( totalGross: totals.totalGross ?? "", }); - const customSubject = language === "en" ? settings.emailSubjectEn : settings.emailSubjectDe; - const subject = customSubject - ? renderTemplate(customSubject, vars) - : `${t.invoice} ${invoice.invoiceNumber}` + - (settings.companyName ? ` — ${settings.companyName}` : ""); + const customSubject = + (language === "en" ? settings.emailSubjectEn : settings.emailSubjectDe) || + (language === "en" ? DEFAULT_EMAIL_SUBJECT_EN : DEFAULT_EMAIL_SUBJECT_DE); + const subject = renderTemplate(customSubject, vars); - const customBodyHtml = language === "en" ? settings.emailBodyHtmlEn : settings.emailBodyHtmlDe; - const body = customBodyHtml - ? renderHtmlBody(renderTemplate(customBodyHtml, vars)) - : renderEmailBody({ - settings, - invoiceNumber: invoice.invoiceNumber, - language, - }); + const customBodyHtml = + (language === "en" ? settings.emailBodyHtmlEn : settings.emailBodyHtmlDe) || + (language === "en" ? DEFAULT_EMAIL_BODY_EN : DEFAULT_EMAIL_BODY_DE); + const body = renderHtmlBody(renderTemplate(customBodyHtml, vars)); + + // If the rendered body references the inline logo, attach it. + const inlineLogo = body.html.includes("cid:invoice-logo") + ? await loadInlineLogo(args.shopDomain, settings) + : null; // Download the PDF (Shopify Files URLs are public CDN URLs). let pdfBytes: Uint8Array; @@ -122,6 +129,16 @@ export async function sendInvoiceEmail( content: Buffer.from(pdfBytes), contentType: "application/pdf", }, + ...(inlineLogo + ? [ + { + filename: "logo", + content: Buffer.from(inlineLogo.bytes), + contentType: inlineLogo.contentType, + cid: "invoice-logo", + }, + ] + : []), ], }); @@ -232,6 +249,8 @@ interface TemplateVars { dueDate: string; companyName: string; ownerName: string; + shopEmail: string; + shopWebsite: string; } function buildTemplateVars(args: { @@ -251,6 +270,8 @@ function buildTemplateVars(args: { dueDate: dueMs ? new Date(dueMs).toLocaleDateString() : "", companyName: args.settings.companyName, ownerName: args.settings.ownerName, + shopEmail: args.settings.email, + shopWebsite: args.settings.website, }; } @@ -308,3 +329,28 @@ function parseTotals(json: string): InvoiceTotalsSnapshot { return {}; } } + +/** + * Resolves the shop logo bytes for inline embedding. Returns null if no + * logo is configured or the lookup fails — the email is still sent, just + * without the inline image (the alt text remains visible). + */ +async function loadInlineLogo( + shopDomain: string, + settings: ShopSettings, +): Promise<{ bytes: Uint8Array; contentType: string } | null> { + if (!settings.logoUrl) return null; + try { + if (settings.logoUrl === STORED_LOGO_SENTINEL) { + const cached = await db.logoCache.findUnique({ where: { shopDomain } }); + if (!cached) return null; + return { bytes: new Uint8Array(cached.bytes), contentType: cached.contentType }; + } + const res = await fetch(settings.logoUrl); + if (!res.ok) return null; + const ct = res.headers.get("content-type") ?? "image/png"; + return { bytes: new Uint8Array(await res.arrayBuffer()), contentType: ct }; + } catch { + return null; + } +} diff --git a/app/services/invoice/emailTemplates.ts b/app/services/invoice/emailTemplates.ts new file mode 100644 index 0000000..b3a00b4 --- /dev/null +++ b/app/services/invoice/emailTemplates.ts @@ -0,0 +1,52 @@ +/** + * Default invoice email templates per language. Used when the user hasn't + * customised them in settings. Variables ({{invoiceNumber}}, etc.) are + * substituted by `renderTemplate` at send time. + * + * The shop logo is rendered as an inline attachment with content-id + * `invoice-logo`; the email sender attaches the logo bytes automatically + * when the template (or any custom template) references that cid. + */ + +const DE_HTML = `\ +

{{companyName}}

+

Danke für deinen Einkauf!

+

+Die Rechnung befindet sich im Anhang. +

+

+Bei Überweisung bitte die Rechnungs-Nummer als Referenz verwenden: +{{invoiceNumber}}
+Besten Dank! +

+

+{{companyName}} +

+

+✉ Kontakt
+🌐 {{shopWebsite}} +

`; + +const EN_HTML = `\ +

{{companyName}}

+

Thank you for your purchase!

+

+Please find the invoice attached. +

+

+When paying by bank transfer, please use the invoice number as the reference: +{{invoiceNumber}}
+Thanks a lot! +

+

+{{companyName}} +

+

+✉ Contact
+🌐 {{shopWebsite}} +

`; + +export const DEFAULT_EMAIL_SUBJECT_DE = "Rechnung {{invoiceNumber}} – {{companyName}}"; +export const DEFAULT_EMAIL_SUBJECT_EN = "Invoice {{invoiceNumber}} – {{companyName}}"; +export const DEFAULT_EMAIL_BODY_DE = DE_HTML; +export const DEFAULT_EMAIL_BODY_EN = EN_HTML; diff --git a/data/mail_template.png b/data/mail_template.png new file mode 100644 index 0000000000000000000000000000000000000000..9699793666c541aa1923c3cea0685de4c0a13b08 GIT binary patch literal 39769 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 X6o}fX9MZNB@ci|s+kuMj~>h literal 0 HcmV?d00001