Archiv

Artikel Tagged ‘dhl’

DHL Intraship Export für OXID eShop

31. Oktober 2011

Das folgende Modul (view) erzeugt eine CSV-Datei, welche man direkt bei DHL Intraship importieren kann.

Anschließend hat man einen frankierten Paketaufkleber, welcher nur noch gedruckt werden muss.

Nachfolgend eine Beispieldatei:

# 1|DPEE-SHIPMENT|EPN|20110919||||||||||||||||||||||||||||||01|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
# 1|DPEE-SENDER|5182022315|DHL DE||Herr Test|Bundeskanzlerplatz|21||53113|Bonn|DE||intraship.support@deutschepost.de||||||||||||||||||||||
# 1|DPEE-RECEIVER|Test Test Test 1||||Herr Lucky|Am Tiergarten|34||60005|Frankfurt|DE|||04402||||||||||||||
# 1|DPEE-ITEM|1|30|40|50||PK|

 

In der Modul-Datei müssen noch einzelne Werte angepasst werden. Diese sind mit eckigen Klammern [] gekennzeichnet:

[EKP], [Absender-Firmenname], [Absender-Hausnummer], …

 

Installation: Datei (tabsl_intraship) herunterladen, entpacken und im Verzeichnis /views ablegen. Verzeichnis /admin/intraship/ (benötigt Schreibrechte) anlegen. FERTIG!

Aufgerufen kann das Modul, mit Angabe der jeweiligen OXID der Bestellung, wie folgt:

www.meinshop.de/index.php?cl=tabsl_intraship&oxid=da3c059611fecd54c10b9cced571e0b6

 

Hinweis: Das Modul ist aktuell nur für den Versand innerhalb Deutschlands und für ein Paket (bis 31,5 kg) ausgelegt. Die vollständige Dokumentation kann direkt heruntergeladen werden, sobald man sich in Intraship angemeldet hat.

 

OXID eShop Module , , , , , ,

osCommerce: DHL Paketstatus XML API

4. September 2009

DHL Es schaut doch wesentlich schöner aus, wenn der Paketstatus in die eigene Website und somit ins eigene Design integriert werden kann, als immer nur auf den DHL-Link zu verweisen.

Jedoch habe ich nach gründlicher Recherche keine Informationen zu einer Schnittstelle gefunden. Nachdem wir beruflich selbst über DHL versenden, habe ich dort einmal eine Anfrage gestellt.

Das Ergebnis: Prinzipiell gibt es eine API, basierend auf XML, mit zwei unterschiedlichen Zugriffsmöglichkeiten.

Einen gesicherten Zugang für Geschäftskunden und einen offenen für Privatkunden. Die sogenannte “Track & Trace DASS – Online Direktaufrufschnittstelle” bekommen DHL-Kunden beim technischen Support. Dies ist ein mehrseitiges PDF mit genauer Anleitung und Beispielen. Neben der aktuellen Statusabfrage umfasst diese auch noch den kompletten Sendungslauf, sowie Zustellinformationen und -nachweis.

Aber widmen wir uns nun der public API. Mit dieser kann man sich den aktuellen Paketstatus und ein paar zusätzliche Details holen kann. Folgend ein Beispiel anhand der Paketnummer 258263342319. Die Postleitzahl muss nicht mehr zwingend übergeben werden.

Aufruf (GET)

http://nolp.dhl.de/nextt-online-public/direct/nexttjlibpublicservlet?xml=<?xml version=”1.0″ encoding=”ISO-8859-1″?><data  appname=”nol-public” password=”anfang” request=”get-status-for-public-user” language-code=”de”><data piece-code=”258263342319″ zip-code=”71287″></data></data>

Antwort (XML)

<?xml version=”1.0″ encoding=”ISO-8859-1″ ?>
<data>
<data name=”piece-status-public-list” _piece-code=”726510758012″ _zip-code=”27472″ code=”0″>
<data _build-time=”2007-02-01 13:30:15.000899″ name=”piece-status-public” piece-id=”0″ leitcode=”258263334332″ piece-identifier=”72651075801″ piece-code=”726510758012″ identifier-type=”1″ recipient-name=”Appiarius” street-name=”Nordersteinstr.” house-number=”36″ postal-code=”27472″ city-name=”Cuxhaven” last-event-timestamp=”11.01.07 09:42″ shipment-type=”" status-next=”" status=”Die Sendung wurde ausgeliefert.” error-status=”" delivery-event-flag=”1″ />
</data>
</data>

Beispiel (PHP)

$dhlpaketnr = “xxx”;
if(!empty($dhlpaketnr)) {
$dhlxml = simplexml_load_file(“http://nolp.dhl.de/nextt-online-public/direct/nexttjlibpublicservlet?xml=%3C?xml%20version=%221.0%22%20encoding=%22ISO-8859-1%22?%3E%3Cdata%20%20appname=%22nol-public%22%20password=%22anfang%22%20request=%22get-status-for-public-user%22%20language-code=%     22de%22%3E%3Cdata%20piece-code=%22%20″.$dhlpaketnr.”%22%20zip-code=%22%22%3E%3C/data%3E%3C/data%3E”);
if($dhlxml->data->data["piece-status"] == 0) {
echo ‘<br />’;
echo ‘Paketnummer: ‘.$dhlpaketnr.’<br />’;
echo ‘Empfänger: ‘.$dhlxml->data->data["recipient-name"].’<br />’;
echo ‘Status: ‘.$dhlxml->data->data["status"];
echo ‘Datum: ‘.$dhlxml->data->data["last-event-timestamp"].’<br />’;
} else {
echo ‘<br />’;
echo ‘<i>Es konnten keine zu diesem Paket ermittelt werden!</i>’;
}
// alle informationen
// print_r($dhlxml);
}

Sollte der  piece-status nicht 0 sein, gab es ein Problem mit der Anfrage. Jedoch gibt es hier eine Fehlerliste mit ca. 30 Codes, diese ist aber jedoch wieder nur für DHL-Kunden.

Nachdem ich diese Schnittstelle als erstes in einen osCommerce-Shop integriert habe, gibt´s diese dort auch nochmal zum Download, bzw. Support im Forum. Andere Contribs und Erweiterung zu osCommerce von mir kann man hier einsehen. In Kürze wird auch noch ein Modul für den OXID eShop folgen.

Programmierung , , , , , , ,