Mailbenachrichtigung bei Statuswechsel auf versandt

Sven B.

Aktives Mitglied
21. August 2008
22
0
Wer kann mir helfen???
Habe die folgende Fehlermeldung:
http://img3.imagebanana.com/img/2xg21k1a/thumb/NeuesBild.bmp.png

Was muss ich noch ändern, so dass die Sendungen im Shop nicht nur auf "versendet" gestellt werden, sondern auch der Kunde benachrichtigt wird? Derzeit geht keine Benachrichtigungsmail raus. Wenn ich direkt über den Shop auf "versendet" stelle, erhält der Kunde die Mail.
 
Zuletzt von einem Moderator bearbeitet:

Boby

Sehr aktives Mitglied
5. Juli 2006
1.479
2
Schwerte bei Dortmund
Zitat von Sven B.:
Wer kann mir helfen???
Habe die folgende Fehlermeldung:
http://img3.imagebanana.com/img/2xg21k1a/thumb/NeuesBild.bmp.png

Was muss ich noch ändern, so dass die Sendungen im Shop nicht nur auf "versendet" gestellt werden, sondern auch der Kunde benachrichtigt wird? Derzeit geht keine Benachrichtigungsmail raus. Wenn ich direkt über den Shop auf "versendet" stelle, erhält der Kunde die Mail.

Schau mal auch hier, insbesondere letzten absatz vom 1 beitrag http://www.jtl-software.de/forum/viewtopic.php?t=12300

Gruss Boby
 
Zuletzt von einem Moderator bearbeitet:

Sven B.

Aktives Mitglied
21. August 2008
22
0
Code:
<?php
/**
 * jtlwawi_connector/dbeS/SetBestellung.php
 * Synchronisationsscript
 *
 * Es gelten die Nutzungs- und Lizenzhinweise unter [url]http://www.jtl-software.de/jtlwawi.php[/url]
 *
 * @author JTL-Software <thomas@jtl-software.de>
 * @copyright 2006, JTL-Software
 * @link [url]http://jtl-software.de/jtlwawi.php[/url]
 * @version v1.02 / 05.02.07
*/
define ('BESTELLUNG_VERSANDT_EMAIL_SCHICKEN',1);
define ('DHL_LINK_IN_MAIL_EINBAUEN',1);
define ('DPD_LINK_IN_MAIL_EINBAUEN',0);
define ('GLS_LINK_IN_MAIL_EINBAUEN',0);
require_once("syncinclude.php");
$return=3;
if (auth())
{
    $return=5;
    //Bestellung versandt
    if (intval($_POST["action"]) == 6 && intval($_POST['KeyBestellung']))
    {
        $return = 0;
        //setze orders_status auf gewählte Option bei eS Versadnt
        //hole einstellungen
        $cur_query = eS_execute_query("select StatusVersendet from eazysales_einstellungen");
        $einstellungen = mysql_fetch_object($cur_query);
        
        //setze status der Bestellung
        if ($einstellungen->StatusVersendet>0 && $_POST["VersandDatum"])
        {
            eS_execute_query("update orders set orders_status=".$einstellungen->StatusVersendet." where orders_id=".intval($_POST['KeyBestellung']));
            //füge history hinzu
            $VersandInfo = $_POST["VersandInfo"];
            $VersandDatum = realEscape($_POST["VersandDatum"]);
            $Tracking = realEscape($_POST["Tracking"]);
            
            //PLZ der Lieferadresse holen
            $liefer_query = eS_execute_query("select delivery_postcode from orders where orders_id=".intval($_POST['KeyBestellung']));
            $Order = mysql_fetch_object($liefer_query);

            //Sendungsverfolgungslinks
            $DHL_Link = "http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&zip=".$Order->delivery_postcode."&idc=".$Tracking;
            $DPD_Link = "http://extranet.dpd.de/cgi-bin/delistrack?typ=1&lang=de&pknr=$Tracking&submit=";
            $GLS_Link = "http://www.gls-germany.com/online/paketstatus.php3?mode=&hasdata=1&datatype=paketnr&paketnr=".$Tracking."&filter=all&search_x=10&search_y=10";
            
            //Plaintext Kommentar bauen
            $kommentar_txt = "\nIhre Bestellung wurde am $VersandDatum versandt.\n".$VersandInfo."\nIdentCode".$Tracking;
            //HTML Kommentar bauen
            $kommentar_html = "
Ihre Bestellung wurde am $VersandDatum versandt.
".$VersandInfo."
IdentCode".$Tracking;       
            
            if (DHL_LINK_IN_MAIL_EINBAUEN==1)
            {
                $kommentar_txt."\nLink zur Sendeverfolgung: ".$DHL_Link;
                $kommentar_html.='
Link zur Sendeverfolgung: [url="'.$DHL_Link.'"]'.$DHL_Link.'[/url]';
            }
            elseif (DPD_LINK_IN_MAIL_EINBAUEN==1)
            {
                $kommentar_txt."\nLink zur Sendeverfolgung: ".$DPD_Link;
                $kommentar_html.='
Link zur Sendeverfolgung: [url="'.$DPD_Link.'"]'.$DPD_Link.'[/url]';
            }
            elseif (GLS_LINK_IN_MAIL_EINBAUEN==1)
            {
                $kommentar_txt."\nLink zur Sendeverfolgung: ".$GLS_Link;
                $kommentar_html.='
Link zur Sendeverfolgung: [url="'.$GLS_Link.'"]'.$GLS_Link.'[/url]';                 
            }
    
            if (BESTELLUNG_VERSANDT_EMAIL_SCHICKEN==1)
            {
                eS_execute_query("insert into orders_status_history (orders_id, orders_status_id, date_added, comments, customer_notified) values(".intval($_POST['KeyBestellung']).", ".$einstellungen->StatusVersendet.", now(), \"".$kommentar_txt."\", 1)");
                //mail aus XTC rausschicken
                sende_xtc_mail(intval($_POST['KeyBestellung']),$kommentar_txt,$kommentar_html);
            }
            else
            {
                eS_execute_query("insert into orders_status_history (orders_id, orders_status_id, date_added, comments) values(".intval($_POST['KeyBestellung']).", ".$einstellungen->StatusVersendet.", now(), \"".$kommentar_txt."\")");
            }           
        }
     }

    //Bestellung erfolgreich abgeholt
    if (intval($_POST["action"]) == 5 && intval($_POST['KeyBestellung']))
    {
        $return = 0;
        //setze orders_status auf gewählte Option bei eS Abholung
        //hole einstellungen
        $cur_query = eS_execute_query("select StatusAbgeholt from eazysales_einstellungen");
        $einstellungen = mysql_fetch_object($cur_query);
        
        //setze status der Bestellung
        if ($einstellungen->StatusAbgeholt>0)
        {
            eS_execute_query("update orders set orders_status=".$einstellungen->StatusAbgeholt." where orders_id=".intval($_POST['KeyBestellung']));
            //füge history hinzu
            $kommentar = "Erfolgreich in JTL-Wawi übernommen";
            eS_execute_query("insert into orders_status_history (orders_id, orders_status_id, date_added, comments) values(".intval($_POST['KeyBestellung']).", ".$einstellungen->StatusAbgeholt.", now(), \"".$kommentar."\")");
        }
        
        //setze bestellung auf abgeholt
        eS_execute_query("insert into eazysales_sentorders (orders_id, dGesendet) values (".intval($_POST['KeyBestellung']).",now())");
    }
}

function sende_xtc_mail($KeyBestellung, $kommentar_txt, $kommentar_html)
{
    define('_VALID_XTC',true);
    define('FILENAME_CATALOG_ACCOUNT_HISTORY_INFO', 'account_history_info.php');
    define('DATE_FORMAT_LONG', '%A, %d. %B %Y');
    define('TABLE_LANGUAGES', 'languages');
    
    require_once (DIR_FS_CATALOG.DIR_WS_CLASSES . 'Smarty_2.6.10/Smarty.class.php');
    require_once (DIR_FS_CATALOG.DIR_WS_CLASSES.'class.phpmailer.php');
    require_once (DIR_FS_ADMIN.DIR_WS_FUNCTIONS . 'html_output.php');   
    require_once (DIR_FS_ADMIN.DIR_WS_FUNCTIONS . 'general.php');       
    require_once (DIR_FS_INC.'xtc_php_mail.inc.php');
    require_once (DIR_FS_INC . 'xtc_db_fetch_array.inc.php');
    
    //hole einstellungen
    $cur_query = eS_execute_query("select languages_id from eazysales_einstellungen");
    $einstellungen = mysql_fetch_object($cur_query);
    
    // set application wide parameters
    $configuration_query = eS_execute_query('select configuration_key as cfgKey, configuration_value as cfgValue from configuration');
    while ($configuration = mysql_fetch_array($configuration_query))
    {
        define($configuration['cfgKey'], $configuration['cfgValue']);
    }

    $smarty = new Smarty;
    
    $check_status_query = eS_execute_query("select language, customers_name, customers_email_address, orders_status, date_purchased from orders where orders_id = '".$KeyBestellung."'");
    $check_status = mysql_fetch_array($check_status_query);
    
    $cur_query = xtc_db_query("select orders_status_name from orders_status where language_id=".$einstellungen->languages_id." and orders_status_id=".$check_status['orders_status']);
    $status = mysql_fetch_object($cur_query);
    
    // assign language to template for caching
    $smarty->assign('language', $_SESSION['language']);
    $smarty->caching = false;

    // set dirs manual
    $smarty->template_dir = DIR_FS_CATALOG.'templates';
    $smarty->compile_dir = DIR_FS_CATALOG.'templates_c';
    $smarty->config_dir = DIR_FS_CATALOG.'lang';

    $smarty->assign('tpl_path', 'templates/'.CURRENT_TEMPLATE.'/');
    $smarty->assign('logo_path', HTTP_SERVER.DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/img/');

    $smarty->assign('NAME', $check_status['customers_name']);
    $smarty->assign('ORDER_NR', $KeyBestellung);
    $smarty->assign('ORDER_LINK', xtc_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id='.$KeyBestellung, 'SSL'));
    $smarty->assign('ORDER_DATE', xtc_date_long($check_status['date_purchased']));
    $smarty->assign('NOTIFY_COMMENTS', $kommentar_txt);
    $smarty->assign('ORDER_STATUS', $status->orders_status_name);

    $txt_mail = $smarty->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$check_status['language'].'/change_order_mail.txt');
    $smarty->assign('NOTIFY_COMMENTS', nl2br($kommentar_html));
    $html_mail = $smarty->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$check_status['language'].'/change_order_mail.html');

    xtc_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $check_status['customers_email_address'], $check_status['customers_name'], '', EMAIL_BILLING_REPLY_ADDRESS, EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', EMAIL_BILLING_SUBJECT, $html_mail, $txt_mail);
}

mysql_close();
echo($return);
logge($return);
?>
Hallo Boby,
ich denke eigentlich, dass alles richtig eingestellt ist. Zur Kontrolle die Kopie. Wo finde ich heraus, ob die richtige Smarty-Version eingestellt ist?
 
Zuletzt von einem Moderator bearbeitet:

Boby

Sehr aktives Mitglied
5. Juli 2006
1.479
2
Schwerte bei Dortmund

Boby

Sehr aktives Mitglied
5. Juli 2006
1.479
2
Schwerte bei Dortmund

Sven B.

Aktives Mitglied
21. August 2008
22
0
Okay und vielen Dank! Habe ich gemacht, es ist der Smarty_2.6.14. Habe ich auch schon geändert und hochgeladen. Ergebnis: bei meiner Testbestellung wird nun auch die Mail an den Kunden versendet!!! Also schon mal ein riesiger Fortschritt.
Beim Webshopabgleich habe ich nun jedoch die beiden folgenden Fehlermeldungen hintereinander:
[URLhttp://img3.imagebanana.com/img/ogtzkkae/thumb/Fehlermeldungneu1.bmp.png[/URL]

[URL]http://img3.imagebanana.com/img/6u47eeky/thumb/Fehlermeldungneu2.bmp.png[/URL]

Was bedeutet das diesmal und was muss ich noch verändern???
 
Zuletzt von einem Moderator bearbeitet:

mara

Aktives Mitglied
2. Juli 2008
38
0
Zitat von Boby:
Zitat von Sven B.:
Ist die Adresse richtig, da es mir dann "VHSC Error 403" anzeigt?
Hatte www.meineshopdresse.com/includes/classes/ eingegeben. Fehlt da noch etwas bei der Adresse?

Nicht durch eingabe der adresse, sondern per ftp verbindung nachschauen ob dort der ...../includes/classes/Smarty_2.6.10 oder ...../includes/classes/Smarty_2.6.14 steht.

setbestellung.php dementsprechend anpassen

Super, mir hats geholfen. Danke!
 

Hackenporsche

Aktives Mitglied
24. Juni 2008
20
0
@Sven B.
Das Verzeichnis tep (siehe Fehlermeldung /var/log/www/tep/parse_parse_time.log) existiert bei dir nicht.
Entweder das Verzeichnis anlegen, oder den Pfad im Adminbereich des Shops (unter Logging-Funktionen -> Speicherort des Logfiles der Berechnungszeit) z.B. auf das tmp-Verzeichnis des Servers ändern.
 

Sven B.

Aktives Mitglied
21. August 2008
22
0
@Hackenporsche:
Vielen Dank für den Hinweis! Habe es an unseren Techniker weitergereicht und der hat es erledigt.
 

trendboxx

Aktives Mitglied
4. November 2008
1
0
AW: Mailbenachrichtigung bei Statuswechsel auf versandt

Hallo,

ich habe

Zeile 13
Code:
define ('BESTELLUNG_VERSANDT_EMAIL_SCHICKEN',0);
in
Code:
define ('BESTELLUNG_VERSANDT_EMAIL_SCHICKEN',1);
verändert und bei mir setz er jetzt im SHop den Haken auf grün (davor war er rot)

Aber die Email wird nicht versendet:

1. ich habe im Class kein Verzeichnis oder Datei mit einem Namen Smarty oder sonstigen

und

2. Ich bekomme folgende Fehler meldung bei übertragen

http://www.trendboxx.eu/images/fehler.jpg

ich hoffe Ihr könnt mir helfen.

Danke im Voraus
 

Boby

Sehr aktives Mitglied
5. Juli 2006
1.479
2
Schwerte bei Dortmund

Tine

Aktives Mitglied
5. November 2008
1
0
AW: Mailbenachrichtigung bei Statuswechsel auf versandt

Hallo,

ich haben das Problem, daß das Datum nicht in die Betreffzeile integriert wird (Ihre Bestellung am {$date}). So sieht der Betreff aus, wenn der Status auf versendet gestehlt wird (durch JTL_Wawi). Stell ich den Status im XT um, wird das Datum korrekt integriert.

Wo liegt der Fehler?

Gruß Tine
 

aerofly

Aktives Mitglied
10. November 2007
29
1
AW: Mailbenachrichtigung bei Statuswechsel auf versandt

Hallo

Gibt es eigentlich eine möglichkeit, das in der E-Mail der richtige Link des in der Wawi ausgewählten Versanddienstleisters steht??
Bei mir steht immer der erste.

Doch ich prüfe die Länge des Tracking codes. Der ist ja immer gleich bei DHL oder bei DPD kürzer. Und bei Auslandssendungen ebenfalls.

//Sendungsverfolgungslinks
switch (strlen(trim($Tracking))){
case '20':
define ('DHL_LINK_IN_MAIL_EINBAUEN',1);
define ('DPD_LINK_IN_MAIL_EINBAUEN',0);
define ('DHL_AUSLAND_LINK_IN_MAIL_EINBAUEN',0);
define ('OHNE_LINK_IN_MAIL_EINBAUEN',0);
break;
case '14':
define ('DHL_LINK_IN_MAIL_EINBAUEN',0);
define ('DPD_LINK_IN_MAIL_EINBAUEN',1);
define ('DHL_AUSLAND_LINK_IN_MAIL_EINBAUEN',0);
define ('OHNE_LINK_IN_MAIL_EINBAUEN',0);
break;
case '12':
define ('DHL_LINK_IN_MAIL_EINBAUEN',0);
define ('DPD_LINK_IN_MAIL_EINBAUEN',0);
define ('DHL_AUSLAND_LINK_IN_MAIL_EINBAUEN',1);
define ('OHNE_LINK_IN_MAIL_EINBAUEN',0);
break;
default:
define ('DHL_LINK_IN_MAIL_EINBAUEN',0);
define ('DPD_LINK_IN_MAIL_EINBAUEN',0);
define ('DHL_AUSLAND_LINK_IN_MAIL_EINBAUEN',0);
define ('OHNE_LINK_IN_MAIL_EINBAUEN',1);
break;
};
//PLZ der Lieferadresse holen
$liefer_query = eS_execute_query("select delivery_postcode from orders where orders_id=".intval($_POST['KeyBestellung']));
$Order = mysql_fetch_object($liefer_query);

//Sendungsverfolgungslinks
$DHL_Link = "http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&zip=".$Order->delivery_postcode."&idc=".$Tracking;
$DPD_Link = "http://extranet.dpd.de/cgi-bin/delistrack?typ=1&lang=de&pknr=$Tracking&submit=";
$DHL_AUSLAND_Link = "http://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=en&internationalShipment=yes&idc=".$Tracking;

//Plaintext Kommentar bauen
//$kommentar_txt = "\nIhre Bestellung wurde am $VersandDatum versandt.\n".$VersandInfo."\nIdentCode".$Tracking.strlen(trim($Tracking)).$Tracking2;
//HTML Kommentar bauen
//$kommentar_html = "<br>Ihre Bestellung wurde am $VersandDatum versandt.<br>".$VersandInfo."<br>IdentCode".$Tracking.strlen(trim($Tracking)).$Tracking2;


if (DHL_LINK_IN_MAIL_EINBAUEN==1)
{
$kommentar_txt = "\nIhre Bestellung wurde am $VersandDatum per DHL versandt.\n".$VersandInfo."\nIdentCode ".$Tracking;
$kommentar_html = "<br>Ihre Bestellung wurde am $VersandDatum per DHL versandt.<br>".$VersandInfo."<br>IdentCode ".$Tracking;
$kommentar_txt."\nLink zur Sendeverfolgung: ".$DHL_Link;
$kommentar_html.='<br>Link zur Sendeverfolgung: <a href="'.$DHL_Link.'">'.$DHL_Link.'</a>';
}
elseif (DPD_LINK_IN_MAIL_EINBAUEN==1)
{
$kommentar_txt = "\nIhre Bestellung wurde am $VersandDatum per DPD versandt.\n".$VersandInfo."\nIdentCode".$Tracking;
$kommentar_html = "<br>Ihre Bestellung wurde am $VersandDatum per DPD versandt.<br>".$VersandInfo."<br>IdentCode ".$Tracking;
$kommentar_txt."\nLink zur Sendeverfolgung: ".$DPD_Link;
$kommentar_html.='<br>Link zur Sendeverfolgung: <a href="'.$DPD_Link.'">'.$DPD_Link.'</a>';
}
elseif (DHL_AUSLAND_LINK_IN_MAIL_EINBAUEN==1)
{
$kommentar_txt = "\nIhre Bestellung wurde am $VersandDatum per DHL versandt.\n".$VersandInfo."\nIdentCode ".$Tracking;
$kommentar_html = "<br>Ihre Bestellung wurde am $VersandDatum per DHL versandt.<br>".$VersandInfo."<br>IdentCode ".$Tracking;
$kommentar_txt."\nLink zur Sendeverfolgung: ".$DHL_AUSLAND_Link;
$kommentar_html.='<br>Link zur Sendeverfolgung: <a href="'.$DHL_AUSLAND_Link.'">'.$DHL_AUSLAND_Link.'</a>';
}
elseif (OHNE_LINK_IN_MAIL_EINBAUEN==1)
{
$kommentar_txt = "\nIhre Bestellung wurde am $VersandDatum versandt.\n".$VersandInfo;
$kommentar_html = "<br>Ihre Bestellung wurde am $VersandDatum versandt.<br>".$VersandInfo;
}
 

chris_K

Aktives Mitglied
26. April 2008
230
0
AW: Mailbenachrichtigung bei Statuswechsel auf versandt

Hallo
Rein zum verständniss.

Das muss ich jetzt im Connector einbauen und dann greift er sich den richtigen Link?!
Danke
 

snwue

Gut bekanntes Mitglied
17. März 2007
459
3
Würzburg
AW: Mailbenachrichtigung bei Statuswechsel auf versandt

hab das bei mir auch eingebaut vor längerer zeit und ab dem update 099626 rufen die kunden mich an und fragen, wieso sie 2-3 mal am tag die versandbestätigung kriegen, die sie vor einem jahr gekriegt haben oder einem halben jahr. bei neukunden ist es genauso. komisch oder?
hat jemand auch noch dieses problem und weis ne lösung dafür?
 

Henson

Gut bekanntes Mitglied
28. Oktober 2006
144
1
AW: Mailbenachrichtigung bei Statuswechsel auf versandt

Hallo,

bei uns sind die GLS und DHL Tracking Codes gleichlang. Wir müssten also die Die erste Ziffer abfragen, da diese unetrschiedlich ist. Aber mit welchem Befehl kann ich das den durchführen?

Danke!

Henson
 

Henson

Gut bekanntes Mitglied
28. Oktober 2006
144
1
AW: Mailbenachrichtigung bei Statuswechsel auf versandt

Hallo Boby,

da die Codes aber über den Barcode mit eine Scanner eingelesen werden hängt immer die Prüfziffer mit dran, deswegen 12 stellig.

Cu
henson
 

Ähnliche Themen