Fix: Bestell-E-Mail wird jetzt zuverlässig verschickt (await statt waitUntil)
context.waitUntil() lief in dieser Pages-Functions-Umgebung nicht zuverlässig zu Ende, bevor die Anfrage beendet wurde - Bestellungen wurden korrekt gespeichert, aber die Benachrichtigungs-Mail an [email protected] kam nie an. Mit echten Live-Bestellungen verifiziert: mit waitUntil kam nichts bei Resend an, mit await kam die Mail sofort und zuverlässig an. Außerdem: "Auf Lager"-Feld im Produkt-Formular (Admin) steht jetzt über "Kategorie" statt darunter, wie gewünscht. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
989006b6a6
commit
5df0643a9d
+15
-13
@@ -180,19 +180,21 @@ export async function onRequestPost(context) {
|
||||
);
|
||||
await env.DB.batch(itemStmts);
|
||||
|
||||
// E-Mail-Benachrichtigung an VanVan/qciga — bewusst NICHT abgewartet (context.waitUntil
|
||||
// lässt den Versand im Hintergrund fertig laufen, ohne die Antwort an die Kundschaft zu
|
||||
// verzögern) und bewusst NICHT fehlerkritisch: schlägt der Versand fehl (z.B. weil noch kein
|
||||
// RESEND_API_KEY hinterlegt ist), bleibt die Bestellung trotzdem ganz normal gespeichert und
|
||||
// in /verwaltung/ sichtbar — nur die Benachrichtigung fehlt dann eben.
|
||||
context.waitUntil(
|
||||
sendeEmail(env, {
|
||||
to: BENACHRICHTIGUNGS_EMAIL,
|
||||
subject: `🩵 Neue Bestellung ${bestellnummer}`,
|
||||
html: bestellBenachrichtigungHtml({ bestellnummer, name, email, land, artikel, summe }),
|
||||
text: `Neue Bestellung ${bestellnummer} von ${name} (${email}), ${artikel.length} Artikel, Summe ${formatPreis(summe)}. Details: https://vans-diy-bastelbedarf.pages.dev/verwaltung/`,
|
||||
})
|
||||
);
|
||||
// E-Mail-Benachrichtigung an VanVan/qciga — wird bewusst ABGEWARTET (nicht per
|
||||
// context.waitUntil im Hintergrund verschickt): ein Test am 03.08.2026 hat gezeigt, dass
|
||||
// waitUntil() in dieser Pages-Functions-Umgebung nicht zuverlässig zu Ende lief, bevor die
|
||||
// Anfrage beendet wurde (die Bestellung wurde gespeichert, aber die E-Mail kam nie an). Die
|
||||
// paar hundert Millisekunden zusätzliche Wartezeit beim Abschicken der Bestellung sind ein
|
||||
// kleiner Preis für "die E-Mail kommt garantiert an". Trotzdem weiterhin NICHT
|
||||
// fehlerkritisch: sendeEmail() wirft nie einen Fehler, schlägt der Versand fehl (z.B. weil
|
||||
// kein RESEND_API_KEY hinterlegt ist), bleibt die Bestellung trotzdem ganz normal gespeichert
|
||||
// und in /verwaltung/ sichtbar — nur die Benachrichtigung fehlt dann eben.
|
||||
await sendeEmail(env, {
|
||||
to: BENACHRICHTIGUNGS_EMAIL,
|
||||
subject: `🩵 Neue Bestellung ${bestellnummer}`,
|
||||
html: bestellBenachrichtigungHtml({ bestellnummer, name, email, land, artikel, summe }),
|
||||
text: `Neue Bestellung ${bestellnummer} von ${name} (${email}), ${artikel.length} Artikel, Summe ${formatPreis(summe)}. Details: https://vans-diy-bastelbedarf.pages.dev/verwaltung/`,
|
||||
});
|
||||
|
||||
return json(201, { ok: true, id: orderId, bestellnummer });
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user