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]>
This commit is contained in:
1 parent
2659db64bd
commit
01eaca39dc
10 files changed
+674
-5
No files matched your search
@@ -259,7 +259,7 @@ export const de: Dictionary = {
|
||||
{
|
||||
heading: "4. Bestellung und Vertragsabwicklung",
|
||||
paragraphs: [
|
||||
"Für den Versand übermitteln wir deinen Namen und die Lieferanschrift an unseren Versanddienstleister DHL (DHL Paket GmbH, Bonn). Wählst du die Lieferung an eine Packstation oder Filiale, kommt die von dir gewählte Standortnummer hinzu. Suchst du im Bestellvorgang nach einer Packstation, wird dein eingegebener Ort beziehungsweise deine Postleitzahl zur Abfrage an DHL weitergegeben. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO.",
|
||||
"Für den Versand übermitteln wir deinen Namen und die Lieferanschrift an unseren Versanddienstleister DHL (DHL Paket GmbH, Bonn). Wählst du die Lieferung an eine Packstation oder Filiale, kommt die von dir gewählte Standortnummer hinzu. Suchst du im Bestellvorgang nach einer Packstation, wird dein eingegebener Ort beziehungsweise deine Postleitzahl zur Abfrage an DHL weitergegeben. Rufst du den Stand deiner Sendung unter „Bestellung verfolgen“ ab, fragen wir ihn mit Sendungsnummer und Postleitzahl der Lieferanschrift bei DHL ab und zeigen ihn dir direkt bei uns an. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO.",
|
||||
"Bei einer Bestellung erheben wir die für die Vertrags-, Zahlungs- und Versandabwicklung notwendigen Daten (Name, Adresse, E-Mail, ggf. Telefonnummer sowie die bestellten Artikel). Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO (Vertragserfüllung).",
|
||||
"Zahlungen werden über unseren Zahlungsdienstleister Stripe Payments Europe, Ltd. abgewickelt. Dabei werden die für die Zahlungsabwicklung notwendigen Daten an Stripe übermittelt. Es gelten zusätzlich die Datenschutzhinweise von Stripe (stripe.com/de/privacy). Soweit dabei Daten an mit Stripe verbundene Unternehmen außerhalb der EU/des EWR (insbesondere Stripe, Inc. in den USA) übermittelt werden, erfolgt dies auf Grundlage von EU-Standardvertragsklauseln gemäß Art. 46 DSGVO.",
|
||||
"Bestell- und Rechnungsdaten werden aufgrund handels- und steuerrechtlicher Aufbewahrungspflichten (§ 257 HGB, § 147 AO) für die gesetzlich vorgeschriebene Dauer gespeichert.",
|
||||
@@ -912,6 +912,20 @@ export const de: Dictionary = {
|
||||
carrierLabel: "Versanddienstleister",
|
||||
trackingNumberLabel: "Sendungsnummer",
|
||||
trackPackage: "Sendung verfolgen",
|
||||
historyHeading: "Sendungsverlauf",
|
||||
historyAriaLabel: "Sendungsverlauf von DHL",
|
||||
estimatedDelivery: (date) => `Voraussichtliche Zustellung: ${date}`,
|
||||
notYetScanned:
|
||||
"DHL hat das Paket noch nicht erfasst. Das kann nach dem Versand einige Stunden dauern – schau gern später noch einmal vorbei.",
|
||||
historyUnavailable: "Der Sendungsverlauf lässt sich gerade nicht laden. Bitte versuche es später noch einmal.",
|
||||
dataSource: "Daten von DHL",
|
||||
statuses: {
|
||||
"pre-transit": "Angekündigt",
|
||||
transit: "Unterwegs",
|
||||
delivered: "Zugestellt",
|
||||
failure: "Zustellproblem",
|
||||
unknown: "Status unbekannt",
|
||||
},
|
||||
},
|
||||
errorPage: {
|
||||
eyebrow: "Fehler",
|
||||
|
||||
@@ -256,7 +256,7 @@ export const en: Dictionary = {
|
||||
{
|
||||
heading: "4. Order and Contract Processing",
|
||||
paragraphs: [
|
||||
"For shipping, we pass your name and delivery address to our shipping provider DHL (DHL Paket GmbH, Bonn, Germany). If you choose delivery to a Packstation or branch, the location number you selected is added. If you search for a Packstation during checkout, the town or postcode you enter is sent to DHL to perform that search. Legal basis: Art. 6(1)(b) GDPR.",
|
||||
"For shipping, we pass your name and delivery address to our shipping provider DHL (DHL Paket GmbH, Bonn, Germany). If you choose delivery to a Packstation or branch, the location number you selected is added. If you search for a Packstation during checkout, the town or postcode you enter is sent to DHL to perform that search. When you check your shipment under “Track order”, we request its status from DHL using the tracking number and the delivery postcode and show it to you directly on our site. Legal basis: Art. 6(1)(b) GDPR.",
|
||||
"When you place an order, we collect the data necessary for contract, payment, and shipping processing (name, address, email, phone number if provided, and the items ordered). The legal basis is Art. 6(1)(b) GDPR (contract performance).",
|
||||
"Payments are processed by our payment provider, Stripe Payments Europe, Ltd. The data necessary for payment processing is transmitted to Stripe for this purpose. Stripe's privacy policy also applies (stripe.com/privacy). Where this involves transferring data to Stripe-affiliated companies outside the EU/EEA (in particular Stripe, Inc. in the USA), this is done on the basis of EU Standard Contractual Clauses pursuant to Art. 46 GDPR.",
|
||||
"Order and invoice data is retained for the legally required period due to commercial and tax record-keeping obligations (§ 257 HGB, § 147 AO of German law).",
|
||||
@@ -900,6 +900,20 @@ export const en: Dictionary = {
|
||||
carrierLabel: "Carrier",
|
||||
trackingNumberLabel: "Tracking number",
|
||||
trackPackage: "Track package",
|
||||
historyHeading: "Shipment history",
|
||||
historyAriaLabel: "DHL shipment history",
|
||||
estimatedDelivery: (date) => `Estimated delivery: ${date}`,
|
||||
notYetScanned:
|
||||
"DHL hasn't scanned the parcel yet. This can take a few hours after dispatch – please check back later.",
|
||||
historyUnavailable: "The shipment history can't be loaded right now. Please try again later.",
|
||||
dataSource: "Data provided by DHL",
|
||||
statuses: {
|
||||
"pre-transit": "Announced",
|
||||
transit: "In transit",
|
||||
delivered: "Delivered",
|
||||
failure: "Delivery issue",
|
||||
unknown: "Status unknown",
|
||||
},
|
||||
},
|
||||
errorPage: {
|
||||
eyebrow: "Error",
|
||||
|
||||
Reference in new issue
Block a user