Jump to content
xt:Commerce Community Forum

Link Zur Sendungsverfolgung Bei Bestellstatus-?nde


gswkaiser

Recommended Posts

Wir wollen unseren Kunden ein wenig mehr Komfort bieten, indem wir ihnen einen Link zur Verfolgung ihrer Sendung in der Best?tigungs-eMail anbieten.

In unserem Beispiel ist das der Versand per Post AG (DHL).

Um das zu erreichen sind einige ?nderungen notwendig (gleichzeitig haben wir die Status-eMail wesentlich aussagef?higer gemacht, die waren doch etwas d?rftig, und viel mehr Informationen verf?gbar!)

Da das vielleicht allgemein von Interesse ist, hier die notwendigen ?nderungen.

Modul admin/orders.php

====================================================


$check_status_query = xtc_db_query("select customers_name, customers_email_address, orders_status, date_purchased from " . TABLE_ORDERS . " where orders_id = '" . xtc_db_input($oID) . "'");


ersetzen durch

//	W. Kaiser #Erlaube Sendungstracking 

   $check_status_query = xtc_db_query("select customers_name, customers_email_address, customers_postcode, orders_status, date_purchased from " . TABLE_ORDERS . " where orders_id = '" . xtc_db_input($oID) . "'");

//	W. Kaiser #Erlaube Sendungstracking 


Nach

$smarty->assign('ORDER_STATUS',$orders_status_array[$status]);


einf?gen

//	W. Kaiser #Erlaube Sendungstracking 

  $smarty->assign('SHIP_DATE',date('l, j F Y H:i'));

  $home_link=str_replace('admin/','',xtc_href_link(FILENAME_CUSTOMER_DEFAULT, '','NONSSL',false));

   $smarty->assign('HOME_LINK', $home_link);

  if ($status == 3) {

    //Status "Versendet"

    //Get Sendungscode

    $TrackCode = $_POST['trackcode'];

    if ($TrackCode == '') {

     $TrackCode = $_GET['trackcode'];

    }

   if ($TrackCode != '') {

     $TrackCode = xtc_db_prepare_input($TrackCode);

     //Assign smarty Variable for tracking URL

     $TrackURL=str_replace('#',$TrackCode,TRACKURL);

     $TrackURL=str_replace('@',$check_status['customers_postcode'],$TrackURL);

   $smarty->assign('TRACK_URL',$TrackURL);

   }	

  }	

//	W. Kaiser #Erlaube Sendungstracking 



<td class="main"><b><?php echo ENTRY_STATUS; ?></b> <?php echo xtc_draw_pull_down_menu('status', $orders_statuses, $order->info['orders_status']); ?></td>


ersetzen durch

        <td class="main">

 	<b><?php echo ENTRY_STATUS; ?></b> <?php echo xtc_draw_pull_down_menu('status', $orders_statuses, $order->info['orders_status']); ?>

<!--W. Kaiser #Erlaube Sendungstracking -->

 	<br><b><?php echo ENTRY_TRACKCODE.":"; ?></b> <?php echo xtc_draw_input_field('trackcode', '', 'size=30');?> <?php echo "(".ENTRY_TRACKCODE." f?r die Sendungsverfolgung)"; ?><br>

<!--W. Kaiser #Erlaube Sendungstracking -->

 </td>

=========================================================================================================== Modul admin/includes/application_top.php Nach

define('FILENAME_DEFAULT', 'start.php');


einf?gen:

//	W. Kaiser #Erlaube Sendungstracking 

 define('FILENAME_CUSTOMER_DEFAULT', 'index.php');

//	W. Kaiser #Erlaube Sendungstracking 


=========================================================================================================== Modul lang/german/admin/orders.php Nach

define('ENTRY_STATUS', 'Status:');


einf?gen

//	W. Kaiser #Erlaube Sendungstracking 

define('ENTRY_TRACKCODE', 'Sendungscode');

define('STATUS_SENT', 'Versendet');

//	'TRACKURL' #Hier muss die Tracking-URL des Versenders stehen.

//	Tracking Beispiel DHL (POST AG)

//	An der Stelle, an der der Sendungscode steht, muss das Zeichen # als Platzhalter stehen!

//	An der Stelle, an der die Empf?nger-PLZ steht, muss das Zeichen @ als Platzhalter stehen!

define('TRACKURL', 'http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&zip=@&idc=#');

//	W. Kaiser #Erlaube Sendungstracking 

=========================================================================================================== Modul templates/xxxxxx/admin/mail/german/change_order_mail.html

<table width="100%" border="0" align="center" cellpadding="4" cellspacing="0">

 <tr> 

  <td style="border-bottom: 1px solid; border-color: #cccccc;"><div align="right">

 <font color="#800000"><a href="{$HOME_LINK}">

 <img src="{$logo_path}logo.gif" align="middle" border="0"></a></font></div></td>

 </tr>

 <tr> 

  <td><strong>

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">

	Ihre Bestellung Nr. {$ORDER_NR} vom {$ORDER_DATE}.</font></strong><p>

	<strong style="font-weight: 400">

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">Hallo {$NAME},</font></strong></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{if 

	$ORDER_STATUS == 'Versendet'}</font></p>

	<p>

	<b>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">

	Ihre Bestellung wurde am {$SHIP_DATE} versendet.</font></b></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">

	{if $TRACK_URL}</font></p><p>

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2">

	<font color="#800000">Den <b>Weg Ihrer 

	Sendung</b> k?nnen Sie </font> <b><a href="{$TRACK_URL}">

	<font color="#800000">hier</font></a></b><font color="#800000"> verfolgen.</font></font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{/if}{else}</font></p>

	<p>

	<b>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">

	Die Bearbeitung Ihrer Bestellung wurde am {$SHIP_DATE} begonnen.</font></b></p>

	<p>

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">{/if}

	</font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{if $NOTIFY_COMMENTS}</font></p>

	<p><b>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">Anmerkungen und Kommentare zu Ihrer Bestellung:</font></b></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{$NOTIFY_COMMENTS}

	</font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">

	{/if}</font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{if $ORDER_LINK}</font></p><p>

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2">

	<font color="#800000">Ihre Bestellung k?nnen Sie </font> <b>

	<a href="{$ORDER_LINK}"><font color="#800000">hier</font></a></b><font color="#800000"> einsehen.</font></font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{/if}

	</font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000"><b>Bei Fragen zu Ihrer Bestellung antworten Sie bitte auf diese eMail.</b> </font></td>

 </tr>

</table>

<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">

Ihr </font><font color="#800000"><a href="{$HOME_LINK}">

<img src="{$logo_path}logo.gif" align="middle" border="0"></a> Team</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">

</font></p>


==============================================================================================

Wenn nun also der Bestell-Status auf "Versendet" gesetzt wird, und man in das neue Feld "Sendungscode" einen Tracking-Code eingibt, dann wird in der Best?tigungs-eMail an den Kunden ein Link zur Sendungsverfolgung eingebaut.

Verwendung auf eigene Gefahr!

Wie immer gilt: die Originalroutinen vorher unbdedingt sichern!!!

Link to comment
Share on other sites

  • Replies 132
  • Created
  • Last Reply

Wir haben das noch einmal erweitert, jetzt wird der Tracking Code in der Datenbank gespeichert und im "Bestellungen"-Formular angezeigt.

========================================================================

Wir wollen unseren Kunden ein wenig mehr Komfort bieten, indem wir ihnen einen Link zur Verfolgung ihrer Sendung in der Best?tigungs-eMail anbieten.

Die meisten Versender bieten heute eine Online-Sendungsverfolgung an, so dass man sich das f?r einen professionellen Auftritt zu Nutze machen kann. (In unserem Beispiel ist das der Versand per Post AG (DHL).)

Das Bestellungen-Formular im Admin-Bereich wird um ein Feld erweitert, in das man (optional) den f?r eine Sendung vom Versender vergebenen Sendungscode eintragen kann. Wenn der Order-Status auf "Versendet" ge?ndert wird, dann wird dieser Code in der Datenbank gespeichert, und als Variable f?r das eMail-Template f?r die Status-?nderungen bereit gestellt.

Um das zu erreichen sind einige ?nderungen notwendig (gleichzeitig haben wir die Status-eMail wesentlich aussagef?higer gemacht, die waren doch etwas d?rftig, und es sind auch viel mehr Informationen verf?gbar!)

=================================================================================================================================

Neu gegen?ber der ersten Version:

Der Tracking-Code wir jetzt auch in der Datenbank gespeichert

==================================================

Modul Datenbank

====================================================

Mit phpMyAdmin folgenden SQL-Befehl ausf?hren


ALTER TABLE orders ADD orders_trackcode varchar(32)


Modul admin/orders.php ====================================================

$check_status_query = xtc_db_query("select customers_name, customers_email_address, orders_status, date_purchased from " . TABLE_ORDERS . " where orders_id = '" . xtc_db_input($oID) . "'");


ersetzen durch

//	W. Kaiser #Erlaube Sendungstracking 

   $check_status_query = xtc_db_query("select customers_name, customers_email_address, customers_postcode, orders_status, orders_trackcode, date_purchased from " . TABLE_ORDERS . " where orders_id = '" . xtc_db_input($oID) . "'");

//	W. Kaiser #Erlaube Sendungstracking 


Nach

$smarty->assign('ORDER_STATUS',$orders_status_array[$status]);


einf?gen

//	W. Kaiser #Erlaube Sendungstracking 

  $smarty->assign('SHIP_DATE',date('l, j F Y H:i'));

  $home_link=str_replace('admin/','',xtc_href_link(FILENAME_CUSTOMER_DEFAULT, '','NONSSL',false));

   $smarty->assign('HOME_LINK', $home_link);

  if ($status == 3) {

    //Status "Versendet"

    //Get Sendungscode

    $TrackCode = $_POST['trackcode'];

    if ($TrackCode == '') {

     $TrackCode = $_GET['trackcode'];

    }

   if ($TrackCode != '') {

  $TrackCode = xtc_db_prepare_input($TrackCode);

  //Store Track-Code ind order

  xtc_db_query("update " . TABLE_ORDERS . " set orders_trackcode = '" .$TrackCode . "' where orders_id = '" . xtc_db_input($oID) . "'");     

  //Assign smarty Variable for tracking URL

  $TrackURL=str_replace('#',$TrackCode,TRACKURL);

  $TrackURL=str_replace('@',$check_status['customers_postcode'],$TrackURL);

  $smarty->assign('TRACK_URL',$TrackURL);

   }	

  }	

//	W. Kaiser #Erlaube Sendungstracking 



<td class="main"><b><?php echo ENTRY_STATUS; ?></b> <?php echo xtc_draw_pull_down_menu('status', $orders_statuses, $order->info['orders_status']); ?></td>


ersetzen durch

<!--W. Kaiser #Erlaube Sendungstracking -->

<tr>

	<td class="main"><br><b><?php echo ENTRY_TRACKCODE.":"; ?></b> 

 <?php 

 	//Auslesen Trackcode

 	$check_status_query = xtc_db_query("select orders_trackcode from " . TABLE_ORDERS . " where orders_id = '" . xtc_db_input($oID) . "'");

 	$check_status = xtc_db_fetch_array($check_status_query);

 	echo xtc_draw_input_field('trackcode', $check_status['orders_trackcode'], 'size=30'); ?><?php echo "(".ENTRY_TRACKCODE." f?r die Sendungsverfolgung)"; 

 ?>

 <br><br>

	</td>

</tr>

<!--W. Kaiser #Erlaube Sendungstracking -->

=========================================================================================================== Modul admin/includes/application_top.php Nach

define('FILENAME_DEFAULT', 'start.php');


einf?gen:

//	W. Kaiser #Erlaube Sendungstracking 

 define('FILENAME_CUSTOMER_DEFAULT', 'index.php');

//	W. Kaiser #Erlaube Sendungstracking 


=========================================================================================================== Modul lang/german/admin/orders.php Nach

define('ENTRY_STATUS', 'Status:');


einf?gen

//	W. Kaiser #Erlaube Sendungstracking 

define('ENTRY_TRACKCODE', 'Sendungscode');

define('STATUS_SENT', 'Versendet');

//	'TRACKURL' #Hier muss die Tracking-URL des Versenders stehen.

//	Tracking Beispiel DHL (POST AG)

//	An der Stelle, an der der Sendungscode steht, muss das Zeichen # als Platzhalter stehen!

//	An der Stelle, an der die Empf?nger-PLZ steht, muss das Zeichen @ als Platzhalter stehen!

define('TRACKURL', 'http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&zip=@&idc=#');

//	W. Kaiser #Erlaube Sendungstracking 

=========================================================================================================== Modul templates/xxxxxx/admin/mail/german/change_order_mail.html

<table width="100%" border="0" align="center" cellpadding="4" cellspacing="0">

 <tr> 

  <td style="border-bottom: 1px solid; border-color: #cccccc;"><div align="right">

 <font color="#800000"><a href="{$HOME_LINK}">

 <img src="{$logo_path}logo.gif" align="middle" border="0"></a></font></div></td>

 </tr>

 <tr> 

  <td><strong>

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">

	Ihre Bestellung Nr. {$ORDER_NR} vom {$ORDER_DATE}.</font></strong><p>

	<strong style="font-weight: 400">

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">Hallo {$NAME},</font></strong></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{if 

	$ORDER_STATUS == 'Versendet'}</font></p>

	<p>

	<b>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">

	Ihre Bestellung wurde am {$SHIP_DATE} versendet.</font></b></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">

	{if $TRACK_URL}</font></p><p>

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2">

	<font color="#800000">Den <b>Weg Ihrer 

	Sendung</b> k?nnen Sie </font> <b><a href="{$TRACK_URL}">

	<font color="#800000">hier</font></a></b><font color="#800000"> verfolgen.</font></font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{/if}{else}</font></p>

	<p>

	<b>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">

	Die Bearbeitung Ihrer Bestellung wurde am {$SHIP_DATE} begonnen.</font></b></p>

	<p>

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">{/if}

	</font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{if $NOTIFY_COMMENTS}</font></p>

	<p><b>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">Anmerkungen und Kommentare zu Ihrer Bestellung:</font></b></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{$NOTIFY_COMMENTS}

	</font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">

	{/if}</font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{if $ORDER_LINK}</font></p><p>

	<font face="Verdana, Arial, Helvetica, sans-serif" size="2">

	<font color="#800000">Ihre Bestellung k?nnen Sie </font> <b>

	<a href="{$ORDER_LINK}"><font color="#800000">hier</font></a></b><font color="#800000"> einsehen.</font></font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{/if}

	</font></p>

	<p>

	<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000"><b>Bei Fragen zu Ihrer Bestellung antworten Sie bitte auf diese eMail.</b> </font></td>

 </tr>

</table>

<p><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">

Ihr </font><font color="#800000"><a href="{$HOME_LINK}">

<img src="{$logo_path}logo.gif" align="middle" border="0"></a> Team</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#800000">

</font></p>


==============================================================================================

Wenn nun also der Bestell-Status auf "Versendet" gesetzt wird, und man in das neue Feld "Sendungscode" einen Tracking-Code eingibt, dann wird in der Best?tigungs-eMail an den Kunden ein Link zur Sendungsverfolgung eingebaut.

Verwendung auf eigene Gefahr!

Wie immer gilt: die Originalroutinen vorher unbdedingt sichern!!!

Link to comment
Share on other sites

  • 2 months later...

Habs selbst mal ein wenig versucht.

Bekomme es aber nicht hin :-(

Ich m?chte eigentlich die Variante von gswkaiser anpassen f?r GLS. Dies k?nnte wie folgt aussehen:

  • Im ADMIN-Bereich ein Eingabefeld f?r die Paket-Nummer
  • Wenn Status auf 'versendet' ge?ndert wird, in die Benachrichtigungs-Mail
    • einen Link zur GLS Paket-Verfolgung und
    • die Paketnummer aufnehmen.

Vielleicht hat ja jemand der in php ein wenig versierter ist wie ich, versendet auch mit GLS versendet und hat Zeit und Lust diese Varienate von gswkaiser anzupassen :-)

Ich schaffe es leider nicht :-(

Gru?

Harry

Link to comment
Share on other sites

Hallo,

sorry, dann habe ich was falsch verstanden.

Ich dachte, in Version 2 wird die URL zusammengesetzt aus

  • DHL-URL,
  • PLZ
  • Sendungscode]

F?r GLS ben?tigt man jedoch eine fixe URL:

http://www.gls-germany.com/online/paketstatus.php3

Oder kann die Paketnummer hier auch ?ber die URL aufgerufen werden? Wie gesagt, hier reichen meine php-Kenntnisse nicht aus :-)

In Deiner - sehr guten !! - Benachrichtigungsmail wird die Paketnummer nicht angezeigt. M??te hier daf?r nicht noch eine Erweiterung f?r das Anzeigen von 'orders_trackcode' rein?

...

{if $TRACK_URL}</font></p><p>

<font face="Verdana, Arial, Helvetica, sans-serif" size="2">

<font color="#800000">Den <b>Weg Ihrer 

Sendung</b> k?nnen Sie </font> <b><a href="{$TRACK_URL}">

<font color="#800000">hier</font></a></b><font color="#800000"> verfolgen.</font></font></p>

<p>

<font size="2" face="Verdana, Arial, Helvetica, sans-serif" color="#800000">{/if}{else}</font></p>

...

Gru?

Harry

Link to comment
Share on other sites

Wenn Du folgende URL verwendest, kannst Du gleich die Info des Paketes sehen!


http://www.gls-germany.com/online/paketstatus.php3?search.x=49&paketliste[0]=12345678901


Die Paket-Nr. ist dabei 12345678901 (die gibt es sogar!). D.h., Du m?sstest in meiner Erweiterung die "TRACKURL" wie folgt definieren, um einen direkten Link auf das Paket zu erhalten:

define('TRACKURL', 'http://www.gls-germany.com/online/paketstatus.php3?search.x=49&paketliste[0]=#');


Wenn Du dennoch die Paket-Nummer mit in der eMail ausgeben willst, dann ist folgendes notwendig: Nach

  $smarty->assign('TRACK_URL',$TrackURL);


einf?gen

  $smarty->assign('TRACK_CODE',$TrackCode);


?ber {$TRACK_CODE} kann diese dann in das Template eingebaut werden.

Link to comment
Share on other sites

  • 2 weeks later...

Hi GsWkaiser,

Ich habe jetzt versucht das Ganze mal zu installieren. Klappt auch alles ganz recht nur im Adminmen? bei 'Bestellungen' Ist jetzt die Selectbox von Offen/In Bearbeitung/Versendet verschwunden und ich meine ich habe alles nach deiner Anleitung gemacht!!! Vorallem ersetze ich die admin/orders.php wieder durch die urspr?ngliche ist wieder alles normal halt aber auch ohne sendungscode box zum eingeben. W?re nett wenn du helfen k?nntest

Link to comment
Share on other sites

Hab die Selectbox nun wieder, da ich die letzte Angabe von dir welche man in admin/orders.php nicht ersetze habe mit sondern gelassen habe und den Rest dahinter eingef?gt habe.

Bekomme nun aber diese Fehlermeldung bei Status?nderung und Codeeingabe:

1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'order status, customers_postcode, orders_status, orders_trackco

select customers_name, customers_email_address, order status, customers_postcode, orders_status, orders_trackcode, date_purchased from orders where orders_id = '21'

Hmm benutze Version 3.03 evtl. hei?en die Tabellen anders?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
  • Create New...