Versand E-Mail an Kunden

Dealux-GmbH

Sehr aktives Mitglied
5. März 2007
8.676
7
Düsseldorf
Also muss ich das ZUSÄTZLICH noch per Hand machen? Oder hat das irgendjemand anders gelöst? Am besten warte ich wohl auf den JTL- Shop 2, der kann das bestimmt ;)
 

shetani

Aktives Mitglied
28. Februar 2007
226
0
Essen
OK, here we go

Die Modifikation arbeitet mit der Contrib Send HTML email ebenso wie mit den Standards nach Durchführung der unten ausgeführten Änderungen


Immer schön daran denken - Backup ;)

Um den OSC- Connector dazu zu bringen von JTL Wawi aus eine Versandbenachrichtigung an den Kunden zu senden müssen lediglich folgende Änderungen an der Datei SetBestellung.php im Verzeichnis dbes vorgenommen werden

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.0 / 16.06.06
 * @version v1.0x / 19.07.07 mod for Versandemail by shetani supporting send HTML Mail contrib 
*/

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 = realEscape($_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;
			
			if ($Tracking !=''){
			$kommentar_html .="
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 OSC rausschicken 
				sende_osc_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_osc_mail($KeyBestellung, $kommentar_txt, $kommentar_html)
{
	require_once(DIR_FS_ADMIN.DIR_WS_INCLUDES . 'filenames.php');
    $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION);
  while ($configuration = tep_db_fetch_array($configuration_query)) {
    define($configuration['cfgKey'], $configuration['cfgValue']);
  }
    require_once(DIR_FS_ADMIN.DIR_WS_FUNCTIONS . 'general.php');
    require_once(DIR_FS_ADMIN.DIR_WS_FUNCTIONS . 'html_output.php');
	require_once(DIR_FS_ADMIN.DIR_WS_FUNCTIONS . 'validations.php');
	require_once(DIR_FS_ADMIN.DIR_WS_CLASSES . 'mime.php');
  	require_once(DIR_FS_ADMIN.DIR_WS_CLASSES . 'email.php');
    include(DIR_FS_ADMIN.DIR_WS_CLASSES . 'language.php');
    $lng = new language();
    $language = $lng->language['directory'];
    $languages_id = $lng->language['id'];
  	require_once(DIR_FS_ADMIN.DIR_WS_LANGUAGES . $language . '.php');
	require_once(DIR_FS_ADMIN.DIR_WS_LANGUAGES . $language .'/orders.php');	
	//hole einstellungen
	$cur_query = eS_execute_query("select languages_id from eazysales_einstellungen");
	$einstellungen = mysql_fetch_object($cur_query);

    $check_status_query = tep_db_query("select customers_name, customers_email_address, orders_status, date_purchased from " . TABLE_ORDERS . " where orders_id = '".$KeyBestellung ."'");
    $check_status = tep_db_fetch_array($check_status_query);

 //BEGIN SEND HTML MAIL//

//Prepare variables for html email//
$Varlogo = ''.VARLOGO.'' ;
$Vartable1 = ''.VARTABLE1.'' ;
$Vartable2 = ''.VARTABLE2.'' ;

$Vartext1 = ' [b]' . EMAIL_TEXT_DEAR . ' ' . $check_status['customers_name'] .' [/b]
' . EMAIL_MESSAGE_GREETING ;
$Vartext2 = '    ' . EMAIL_TEXT_ORDER_NUMBER . ' [b] ' .$KeyBestellung . '[/b]
' . EMAIL_TEXT_DATE_ORDERED . ': [b]' . strftime(DATE_FORMAT_LONG) . '[/b]
[url="' . HTTP_SERVER . DIR_WS_CATALOG . 'account_history_info.php?order_id=' . $KeyBestellung . '"]' . EMAIL_TEXT_INVOICE_URL . '[/url]' ; 

$Varbody = EMAIL_TEXT_COMMENTS_UPDATE . ' ' . $kommentar_html . "\n\n" . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]);

$Varmailfooter = ''.VARMAILFOOTER.'' ;

$Varhttp = ''.VARHTTP.'';
$Varstyle = ''.VARSTYLE.'';

//Check if HTML emails is set to true
if (EMAIL_USE_HTML == 'true') {	

//Prepare HTML email
require(DIR_FS_ADMIN.DIR_WS_MODULES . 'email/html_orders.php');
$email = $html_email_orders;
} else {		

//Send text email
            $email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' .$KeyBestellung . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $KeyBestellung, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . EMAIL_TEXT_COMMENTS_UPDATE . ' ' . $kommentar_html . "\n\n" . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]);
}

//END SEND HTML MAIL//
        tep_mail($check_status['customers_name'], $check_status['customers_email_address'], EMAIL_TEXT_SUBJECT . ' '.$KeyBestellung, $email, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
}

mysql_close();
echo($return);
logge($return);
?>

Da ich den Code für die Contribution send HTML email angepasst habe solltet Ihr zusätzlich noch in die Datei orders.php im Verzeichnis admin/includes/languages/german/ (bzw in den anderen Sprachverzeichnissen ebenso wenn ihr Multilanguage support nutzt) ans Ende vor dem ?> einfügen

Code:
//BEGIN SEND HTML MAIL//

// Email style
define('STORE_LOGO', 'logoweiss.jpg'); // Your shop logo (location: /catalog/images).
define('BG_TOP_EMAIL', 'pixel_trans.gif');    //Header background image.
define('COLOR_TOP_EMAIL', '#999999');         //Background color of the email header (only visible if no background image)
define('BG_TABLE', 'pixel_trans.gif');    //Detail section background image.
define('COLOR_TABLE', '#f9f9f9');         //Detail section background color of the email header (only visible if no background image)

//First section of text
define('EMAIL_TEXT_DEAR', '

Sehr geehrte(r)');        
define('EMAIL_MESSAGE_GREETING', '

hiermit möchten wir Ihnen mitteilen, das sich der Status Ihrer Bestellung geändert hat.

'); 

//Email Footer
define('EMAIL_TEXT_FOOTER', '[b]Achtung:[/b] Diese eMail-Adresse wurde uns von einem Kunden bekannt gegeben. Wenn Sie nicht der vorgesehene Empfänger der email sein sollten so antworten Sie bitte auf diese email an  ');    
define('EMAIL_TEXT_COPYRIGHT', 'Copyright &copy; 2007 ');

//Define Variables
define('VARSTYLE', '<link rel="stylesheet" type="text/css" href="stylesheetmail.css">');   //location of email css file.
define('VARHTTP', '<base href="' . HTTP_SERVER . DIR_WS_CATALOG . '">');   //Do not change
define('VARMAILFOOTER', '' . EMAIL_TEXT_FOOTER . '[email="' . STORE_OWNER_EMAIL_ADDRESS . '"]' . STORE_OWNER_EMAIL_ADDRESS . '[/email]
' . EMAIL_TEXT_COPYRIGHT . '[url="' . HTTP_SERVER . DIR_WS_CATALOG . '"]'. STORE_NAME .'[/url] ');  //footer
define('VARLOGO', '[url="' . HTTP_SERVER . DIR_WS_CATALOG . '"][img]'. HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . STORE_LOGO .'[/img][/url] ');   //logo
define('VARTABLE1', '<table width="100%"  border="0" cellpadding="0" cellspacing="0" bgcolor="' . COLOR_TOP_EMAIL . '"   background="'. HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . BG_TOP_EMAIL . '"> ');   //Header table formatting
define('VARTABLE2', '<table width="100%" border="0" cellpadding="3" cellspacing="3" bgcolor="' . COLOR_TABLE . '"   background="'. HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_IMAGES . BG_TABLE . '">');   //Body table formatting

//END SEND HTML MAIL//
 

Dealux-GmbH

Sehr aktives Mitglied
5. März 2007
8.676
7
Düsseldorf
Cool! Vielen Dank. Habs mal eingefügt. Obs funktioniert werde ich erfahren, wenn die nächste Versand E-Mail rausgeht.

Da wir nur den Standard E-Mail-Versand benutzen bin ich hingegangen und habe den Text von " //BEGIN SEND HTML MAIL// " bis " //END SEND HTML MAIL// " und oben habe ich dann noch den Link von DHL zu DPD geändert. Ich poste dann noch obs funktioniert hat. Wenn ja, fände ich es gut, wenn das direkt mit in den Connector seitens JTL eigebaut würde.

Was mich ja zuerst total stutzig gemacht hat, dass die Kommentare auf Deutsch waren. :D
 

shetani

Aktives Mitglied
28. Februar 2007
226
0
Essen
Jo, sollte funktionieren.

Habe es zumindest bei mir ausgiebig mit nem Testaccount gecheckt.

Ups,

ein kleiner Fehler ist mir aufgefallen.

in der stebestllung.php muss der Code

Code:
//Send text email 
            $email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' .$KeyBestellung . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $KeyBestellung, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . EMAIL_TEXT_COMMENTS_UPDATE . ' ' . $kommentar_html . "\n\n" . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]); 
}

nicht $kommentar_html sondern $kommentar_txt heissen

also tauschen gegen

Code:
//Send text email 
            $email = STORE_NAME . "\n" . EMAIL_SEPARATOR . "\n" . EMAIL_TEXT_ORDER_NUMBER . ' ' .$KeyBestellung . "\n" . EMAIL_TEXT_INVOICE_URL . ' ' . tep_catalog_href_link(FILENAME_CATALOG_ACCOUNT_HISTORY_INFO, 'order_id=' . $KeyBestellung, 'SSL') . "\n" . EMAIL_TEXT_DATE_ORDERED . ' ' . tep_date_long($check_status['date_purchased']) . "\n\n" . EMAIL_TEXT_COMMENTS_UPDATE . ' ' . $kommentar_txt . "\n\n" . sprintf(EMAIL_TEXT_STATUS_UPDATE, $orders_status_array[$status]); 
}
 

alex2911

Aktives Mitglied
26. Juli 2007
53
0
hmm, wie wird die datei denn in der german.php inkludiert ?

Der Admin des Shops lässt sich normal aufrufen ?

lg alex
 

alex2911

Aktives Mitglied
26. Juli 2007
53
0
der adminbereich des shops lässt sich normal aufrufen ?
wenn ja, habe leider auch ich keine ahnung warum es sporadisch nicht klappt.
 

shetani

Aktives Mitglied
28. Februar 2007
226
0
Essen
Zitat von jrosenhagen:
So:

Code:
require(DIR_WS_LANGUAGES . 'add_ccgvdc_german.php');

Der Connector kennt nicht den absoluten Pfad zum Sprachverzeichnis und wirft dir deshalb die Fehlermeldung rein.

Tja, da gibt es wohl 2 Optionen um dem Connector den absoluten Pfad mitzuteilen

1. Option :
ersetze einmal in der admin/includes/languages/german.php
Code:
require(DIR_WS_LANGUAGES . 'add_ccgvdc_german.php');  // CCGV
durch
require(DIR_FS_ADMIN.DIR_WS_LANGUAGES . 'add_ccgvdc_german.php');  // 

CCGV

checke danach aber ob das sprachmodul unter oscommerce noch sauber funktioniert (sollte es eigentlich)

und die von mir bevorzugte wäre

Option 2:

kopiere den Inhalt der add_ccgvdc_german.php direkt in die german.php und lösche die Zeiel mit dem require aus der german.php.

Hast Du keinen Testaccount mit dem du es selber checken kannst - auch ob die emails danach korrekt ankommen ?
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Exchange Konto kann nicht eingerichtet werden für E-Mail Versand User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL Shipping Fehler bei DHL Versand über WMS ? User helfen Usern - Fragen zu JTL-Wawi 2
Versand Internetmarke funktioniert nicht (Could not load file or assembly 'System.Net.WebProxy, ...) JTL-Wawi 2.0 2
Shop Apotheke Bestellungen seit Update als „nicht bezahlt“ – Versand blockiert JTL-Wawi 2.0 6
Neu ERDE an JTL- seit 10h kein Versand wegen Störung! JTL-ShippingLabels - Fehler und Bugs 10
Artikelposition Versand keine Bezeichnung JTL-Wawi 1.11 2
Bundles / Stücklisten + Mehrpaket-Versand → keine Sendungsnummern in Shopify JTL-Wawi 1.9 0
Neu Pickliste hängt fest – Aufträge gesperrt, nicht in Versand sichtbar User helfen Usern - Fragen zu JTL-Wawi 3
Neu JTL übernimmt immer Standard Versand von Amazon Amazon-Anbindung - Fehler und Bugs 0
Neu Referenznummer Grösse auf den Versand Etiketten von DPD-Cloudservice und GLS Api JTL-ShippingLabels - Ideen, Lob und Kritik 0
Artikel Gehen nicht aus In Aufträge raus nach Versand JTL-Wawi 1.11 1
Neu Workflow - Seriennummer per Mail versenden JTL-Workflows - Fehler und Bugs 1
Neu Kundensupport Projekt (Mail + eBay + Amazon + JTL + KI) Dienstleistung, Jobs und Ähnliches 0
Neu Warnung per Mail wenn Paket seit x Tagen in Filiale zu Abholung (DHL Sendungsverfolgung) Track&Trace JTL-Workflows - Ideen, Lob und Kritik 6
Dropshipping-Trackingnummer erzeugt keine Versandbenachrichtigung per E-Mail JTL-Wawi 1.8 5
Mail geht an Rechnungsmail satt an Liefermail JTL-Wawi 1.11 1
Neu Wokflow alle Sendenummer in eine Mail User helfen Usern - Fragen zu JTL-Wawi 2
Neu Wo verändere ich die Variable #firma.name# die in Mail-Vorlagen zu finden ist? Allgemeine Fragen zu JTL-Shop 2
Kundennummer wird in E-Mail-Bestellung nicht angezeigt JTL-Wawi 1.10 0
Neu Bestellung per Mail, Kunde registriert sich im Nachgang, Bestellung nicht im Kundenkonto User helfen Usern - Fragen zu JTL-Wawi 2
Datenfiltereinstellung funktioniert bei Mail Vorlage nicht. JTL-Wawi 1.9 2
Neu Bewusst deaktivierte Mail-Vorlagen erscheinen als Core Error im Logbuch Betrieb / Pflege von JTL-Shop 5
Neu Nachfrage zu Rabatten im Reiter: Kunden Arbeitsabläufe in JTL-Wawi 1
Auswertung welche Kunden kaufen welche Artikel in Zeitraum x JTL-Wawi 1.11 4
Neu Umsatzsteuernummer von Kunden wird nicht in Wawi übertragen Shopify-Connector 4
Neu Zahlung von Kunden aus dem EU Ausland, Mwst falsch Plugins für JTL-Shop 1
Rechnungen an Rechnungspostfächer von Kunden schicken ohne dass JTL auch andere Dokumente dorthin schickt? JTL-Wawi 1.11 3
Doppelte Kunden zusammen führen führt zu Systembeeinträchtigung JTL-Wawi 1.11 0
Neu Zusatzartikel, Stückliste, Variation den Kunden direkt mit anbieten (Shop/Ebay) User helfen Usern - Fragen zu JTL-Wawi 6
Neu wie Wawi eigene Felder (Kunden) an Shop DB übertragen? User helfen Usern - Fragen zu JTL-Wawi 3
Teilbare Artikel NICHT für Kunden, nur für intern teilbar JTL-Wawi 1.11 5
Neu Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1
Abschalten von Verfügbarkeitsmails von Kunden JTL-Wawi 1.10 5
Neu Kunden nach Onlineshop aktiv filtern? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Kunden-Daten Import / Eigene Felder User helfen Usern - Fragen zu JTL-Wawi 1
Neu Mehrere Shopware Kunden in einem JTL Kundenkonto zusammenführen Onlineshop-Anbindung 0
Übergehe Datensatz, da weder Nachname noch Firmenname und Stasse, Plz, und Ort des Kunden gesetzt sind! JTL-Wawi 1.9 0
Neu Kunden ohne Kauf finden ( Freischaltung für B2B) User helfen Usern - Fragen zu JTL-Wawi 6

Ähnliche Themen