From 4d60a5d1daaefb3c391e18680bd7a76687bf4396 Mon Sep 17 00:00:00 2001 From: s4luorth Date: Fri, 18 Sep 2026 12:30:33 +0200 Subject: [PATCH] =?UTF-8?q?Mailer:=20Versandbenachrichtigung=20bei=20Board?= =?UTF-8?q?-Versand=20(auch=20manuelle=20Auftr=C3=A4ge)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Der Wechsel auf production_status='versendet' im Produktions-Board löst jetzt die „versendet"-Vorlage (Versandbenachrichtigung) an den Kunden aus – für alle Aufträge inkl. manuelle. Nur beim ersten Versand (Guard über versandt_am), keine Doppel-Mail. Bestellbestätigung bleibt bei manuellen Aufträgen (source=operator) unterdrückt. Co-Authored-By: Claude Opus 4.8 --- .../dist/index.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/extensions/directus-extension-skrift-mailer/dist/index.js b/extensions/directus-extension-skrift-mailer/dist/index.js index 1fd797b..df395af 100644 --- a/extensions/directus-extension-skrift-mailer/dist/index.js +++ b/extensions/directus-extension-skrift-mailer/dist/index.js @@ -245,11 +245,18 @@ export default (register, { services, getSchema, logger }) => { }); register.action('orders.items.update', async ({ keys, payload }) => { - if (!payload || payload.status === undefined) return; - const status = payload.status; + if (!payload) return; + // Kaufmännischer Status (bezahlt/versendet/…) → passende Vorlage. + // ODER Produktionsstatus „versendet" (Board) → Versandbenachrichtigung – auch + // für manuelle Aufträge; nur beim ERSTEN Versand (erkennbar am gleichzeitig + // gesetzten versandt_am), damit keine Doppel-Mail entsteht. + let mailKey = null; + if (payload.status !== undefined) mailKey = payload.status; + else if (payload.production_status === 'versendet' && payload.versandt_am) mailKey = 'versendet'; + if (!mailKey) return; for (const id of keys || []) { - try { await sendForOrder(id, status, { status: STATUS_LABEL[status] || status }); } - catch (e) { logger.warn(`[skrift-mailer] status ${status}: ${e.message}`); } + try { await sendForOrder(id, mailKey, { status: STATUS_LABEL[mailKey] || mailKey }); } + catch (e) { logger.warn(`[skrift-mailer] status ${mailKey}: ${e.message}`); } } });