/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]>
20 lines
926 B
TypeScript
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";
|
|
}
|