Files
Wabenhain/src/lib/shipment-tracking.ts
T
Nick SzaunigandClaude Opus 5.5 01eaca39dc feat: DHL-Sendungsverlauf direkt auf der Tracking-Seite anzeigen
/bestellung-verfolgen holt den Sendungsverlauf serverseitig ueber die
DHL Shipment Tracking - Unified API und zeigt ihn im eigenen Layout an,
statt Kundschaft auf dhl.de weiterzuleiten.

- lib/dhl-tracking.ts: Abfrage mit API-Key, Zod-Validierung, Timeout,
  Cache pro Sendung (unterwegs 10 min, zugestellt 12 h, Fehler 2 min)
- Abfrage erst nach erfolgreicher Pruefung von Bestellnummer + E-Mail,
  damit die Seite nicht als offener Proxy zu DHL dient
- Ohne freigeschalteten Key bleibt die Seite unveraendert (Nummer + Link)
- Optional DHL_TRACKING_API_KEY, falls das Tracking in eigener DHL-App liegt
- Datenschutzerklaerung um die Statusabfrage bei DHL ergaenzt

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-25 03:27:58 +02:00

20 lines
926 B
TypeScript

/**
* Erzeugt einen direkten Tracking-Link nur fuer Dienstleister mit bekanntem,
* stabilem URL-Schema (aktuell DHL, der in Deutschland dominante Versender).
* Fuer alle anderen/unbekannten Namen wird bewusst kein Link erzeugt — ein
* falsch geratenes URL-Schema waere schlechter als gar kein Link, da die
* Sendungsnummer selbst (immer angezeigt) ohnehin manuell nachschlagbar bleibt.
*/
export function getCarrierTrackingUrl(carrier: string | null, trackingNumber: string | null): string | null {
if (!carrier || !trackingNumber) return null;
if (isDhlCarrier(carrier)) {
return `https://www.dhl.de/de/privatkunden/dhl-sendungsverfolgung.html?piececode=${encodeURIComponent(trackingNumber)}`;
}
return null;
}
/** Der Versanddienstleister wird im Admin-Bereich als Freitext gepflegt. */
export function isDhlCarrier(carrier: string | null): boolean {
return carrier?.trim().toLowerCase() === "dhl";
}