Für den Fall, dass jemand ebenfalls mehrere Dienstleister zum Versenden nutzt, hier meine Lösung ohne eine Veränderung der Datenstrukturen:
[B]Allgemeines[/B]
OXID bietet bereits im Standard die Möglichkeit einen “Lieferung Trackcode” im Backend / Administrationsbereich für jede Bestellung auf dem zweiten Tabreiter zu speichern.
Jedes Versandunternehmen hat logischerweise eine eigene URL unter der mit dem Trackingcode der Versandstatus abgezeigt werden kann. Daher ist für die Erkennung, welcher Dienstleister verwendet wird, ein weiteres Attribut / Datenbankfeld erforderlich.
[B]Lösung[/B]
Um das zu verhindern, wird ein dreibuchstabige Abkürzung des Versanddienstleisters zusammen mit der Versendungsnummer in einem Feld in Oxid gespeichert.
Dazu wird einfach dem Trackingcode eine dreibuchstabige Abkürzung vorne angehängt, die den jeweiligen Versanddienstleister definiert:
[ul]
[li]DHL - Deutsche Post / DHL[/li][li]DPD - DPD Dynamic Parcel Distribution[/li][li]GLS - General Logistics Systems[/li][li]UPS - United Parcel Service[/li][li]HMS - Hermes Logistik[/li][li]ILX - Iloxx[/li][/ul]
In das Feld in Oxid wird beispielsweise für die DHL-Verfolgungsnummer 0123456789 der Wert DHL0123456789 eingegeben. Für die Sendungsverfolgung eine GLS-Paketes wäre es GLS0123456789 usw.
[B]Kunden-Information[/B]
Um dem Kunden ebenfalls eine Sendungsverfolgung zu ermöglichen, kann folgender Smarty-Code in der Versendet E-Mail integriert werden:
[{if $order->oxorder__oxtrackcode->value }]
Hier können Sie Ihre Sendung verfolgen:
[{if ($order->oxorder__oxtrackcode->value|substring:1:3) == 'DHL'}]
<a href="http://nolp.dhl.de/nextt-online-public/track.do?zip=[{ $order->oxorder__oxbillzip->value }]&idc=[{ $order->oxorder__oxtrackcode->value }]&lang=de">DHL: [{$order->oxorder__oxtrackcode->value|substring:4:99}]</a>
[{elseif ($order->oxorder__oxtrackcode->value|substring:1:3) == 'ILX'}]
<a href="https://www.iloxx.de/net/popup/trackpop.aspx?id=[{$order->oxorder__oxtrackcode->value|substring:4:99}]">ILOXX: [{$order->oxorder__oxtrackcode->value|substring:4:99}]</a>
[{elseif ($order->oxorder__oxtrackcode->value|substring:1:3) == 'DPD'}]
<a href="http://extranet.dpd.de/cgi-bin/delistrack?typ=1&lang=de&pknr=[{$order->oxorder__oxtrackcode->value|substring:4:99}]">DPD: [{$order->oxorder__oxtrackcode->value|substring:4:99}]</a>
[{elseif ($order->oxorder__oxtrackcode->value|substring:1:3) == 'GLS'}]
<a href="http://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/DE03/DE/5004.htm?txtRefNo=[{$order->oxorder__oxtrackcode->value|substring:4:99}]&txtAction=71000">GLS: [{$order->oxorder__oxtrackcode->value|substring:4:99}]</a>
[{elseif ($order->oxorder__oxtrackcode->value|substring:1:3) == 'HMS'}]
<a href="http://tracking.hlg.de/Tracking.jsp?TrackID=[{$order->oxorder__oxtrackcode->value|substring:4:99}]">Hermes: [{$order->oxorder__oxtrackcode->value|substring:4:99}]</a>
[{elseif ($order->oxorder__oxtrackcode->value|substring:1:3) == 'UPS'}]
<a href="http://wwwapps.ups.com/WebTracking/processRequest?HTMLVersion=5.0&Requester=NES&AgreeToTermsAndConditions=yes&loc=de_DE&tracknum=[{$order->oxorder__oxtrackcode->value|substring:4:99}]">UPS: [{$order->oxorder__oxtrackcode->value|substring:4:99}]</a>
[{else}]
<a href="http://nolp.dhl.de/nextt-online-public/track.do?zip=[{ $order->oxorder__oxbillzip->value }]&idc=[{ $order->oxorder__oxtrackcode->value }]&lang=de">DHL: [{$order->oxorder__oxtrackcode->value|substring:4:99}]</a>
[{/if}]
[{/if}]
[B]Smarty Modifier[/B]
Da der Modifier substring in der Oxid Installation noch nicht dabei ist, muss als Weiteres der nachfolgende Code in der Textdatei modifier.substring.php in dem Verzeichnis /core/smarty/plugins gespeichert werden.
function smarty_modifier_substring($sString, $iPosition, $iLength)
{
return substr($sString, $iPosition-1, $iLength);
}
Viel Spaß beim Ausprobieren
Joachim
P.S.: Wer kennt / nutzt noch weitere, andere Dienstleister?