Tutorials/de/Tracking erweitern

Tracking anderer/mehrerer Dienstleister integrieren
Standardmäßig ist ein Link zum DPD-Tracking im Shop eingebaut. Will man nun einen anderen Dienstleister oder auch mehrere verwenden, muss man mit einem kleinen Modul diese Funktion erweitern. Dann kann man durch das Voranstellen von Kürzeln die Trackingnummern mehrer Dienstleister verwenden, dem Kunden wird jeweils der korrekte Link angeboten.

Für eine DHL - Trackingnummer "0123456789" muss man dann also einfach im Backend in das Feld "Lieferung Trackcode" bei der entsprechenden Bestellung im Reiter Stamm in das Feld "Lieferung Trackcode" "DHL0123456789" eintragen, für GLS dann entsprechend "GLS0123456789" - das war schon alles!

Dazu erstellt man eine neue Datei modorder.php mit folgendem Inhalt: &lt;?php class modOrder extends modOrder_parent {    /**      * Returns DPD shipment tracking url if oxorder__oxtrackcode is supplied *     * @return string */    public function getShipmentTrackingUrl {        if ( $this-&gt;_sShipTrackUrl === null &amp;&amp; $this-&gt;oxorder__oxtrackcode-&gt;value ) { $sCarrier = substr($this-&gt;oxorder__oxtrackcode-&gt;value, 0, 3); $sTrackId = substr($this-&gt;oxorder__oxtrackcode-&gt;value, 3); switch ($sCarrier) { case "DHL": $this-&gt;_sShipTrackUrl = "http://nolp.dhl.de/nextt-online-public/track.do?zip=".$this-&gt;oxorder__oxbillzip-&gt;value."&amp;idc=".$sTrackId."&amp;lang=de"; break; case "ILX": $this-&gt;_sShipTrackUrl = "https://www.iloxx.de/net/popup/trackpop.aspx?id=".$sTrackId; break; case "DPD": $this-&gt;_sShipTrackUrl = "http://extranet.dpd.de/cgi-bin/delistrack?typ=1&amp;lang=de&amp;pknr=".$sTrackId; break; case "GLS": $this-&gt;_sShipTrackUrl = "http://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/DE03/DE/5004.htm?txtRefNo=".$sTrackId; break; case "HMS": $this-&gt;_sShipTrackUrl = "http://tracking.hlg.de/Tracking.jsp?TrackID=".$sTrackId; break; case "UPS": $this-&gt;_sShipTrackUrl = "http://wwwapps.ups.com/WebTracking/processRequest?HTMLVersion=5.0&amp;Requester=NES&amp;AgreeToTermsAndConditions=yes&amp;loc=de_DE&amp;tracknum=".$sTrackId; break; default: $this-&gt;_sShipTrackUrl = parent::getShipmentTrackingUrl; break; }        }         return $this-&gt;_sShipTrackUrl; } } Diese Datei unter /modules/modorder/ auf dem Webserver ablegen und das Modul im Shop-Backend unter Stammdaten -&gt; Grundeinstellungen -&gt; System -&gt; Module mit "oxorder =&gt; modorder/modorder" aktivieren.

Die einzelnen Tracking-URLs bitte überprüfen, manchmal werden die seitens der Anbieter verändert. Natürlich kann man nicht benötigte entfernen oder weitere einfügen, je nach Bedarf.

Dieses Modul entstand aufgrund der genialen Vorarbeit von job963 - er hatte ursprünglich einen Lösung mit Smarty für die automatische Kundenmail gepostet -&gt; http://www.oxid-esales.com/forum/showthread.php?t=12866

Damit dieser angepasste Link auch im Kundenkonto gezeigt wird, muss man ebenfalls noch ein paar kleine Änderungen umsetzen. Diese sind hier beschrieben: -&gt; http://www.oxid-esales.com/forum/showthread.php?t=12866#post78777

Und hier das Modul auf Github: https://github.com/OXIDprojects/oxid-multitracking

Im Modul auf Github wird der Tracking Code inkl. dem Kürzel ausgeliefert.

Die Zeile:

$sTrackId = $this-&gt;oxorder__oxtrackcode-&gt;value;

muss ersetzt werden durch:

$sTrackId = substr($this-&gt;oxorder__oxtrackcode-&gt;value, 3);