Hallo,
habe auch ein Problem,
Bei mir kommt folgende Fehlermeldung, was soll ich verändern?
http://www.karl-reiter.de/forum/mailversand.jpg
Der Status im
Shop wird verändert nur die Mail geht nicht raus!
Nachtrag:
habe nochmal einen Testdurchlauf gemacht wie man unten im Bild sehen kann wird zwischen wawi und XT-Shop alles richtig ausgeführt nur die Mail wird nicht versendet.
http://www.karl-reiter.de/forum/status-ok.jpg
So sieht meine php aus:
<?php
/**
* jtlwawi_connector/dbeS/SetBestellung.php
* Synchronisationsscript
*
* Es gelten die Nutzungs- und Lizenzhinweise unter
http://www.jtl-software.de/jtlwawi.php
*
* @author JTL-Software <
thomas@jtl-software.de>
* @copyright 2006, JTL-Software
* @link
http://jtl-software.de/jtlwawi.php
* @version v1.02 / 05.02.07
*/
define ('BESTELLUNG_VERSANDT_EMAIL_SCHICKEN',1);
define ('DHL_LINK_IN_MAIL_EINBAUEN',0);
define ('DPD_LINK_IN_MAIL_EINBAUEN',0);
define ('GLS_LINK_IN_MAIL_EINBAUEN',1);
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:
'.$DHL_Link.'';
}
elseif (DPD_LINK_IN_MAIL_EINBAUEN==1)
{
$kommentar_txt."\nLink zur Sendeverfolgung: ".$DPD_Link;
$kommentar_html.='
Link zur Sendeverfolgung:
'.$DPD_Link.'';
}
elseif (GLS_LINK_IN_MAIL_EINBAUEN==1)
{
$kommentar_txt."\nLink zur Sendeverfolgung: ".$GLS_Link;
$kommentar_html.='
Link zur Sendeverfolgung:
'.$GLS_Link.'';
}
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.14/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);
?>
Das wäre die html_output.php:
<?php
/* --------------------------------------------------------------
$Id: html_output.php 1125 2005-07-28 09:59:44Z novalis $
XT-Commerce - community made shopping
http://www.xt-commerce.com
Copyright (c) 2003 XT-Commerce
--------------------------------------------------------------
based on:
(c) 2000-2001 The Exchange Project (earlier name of osCommerce)
(c) 2002-2003 osCommerce(html_output.php,v 1.26 2002/08/06);
www.oscommerce.com
(c) 2003 nextcommerce (html_output.php,v 1.7 2003/08/18);
www.nextcommerce.org
Released under the GNU General Public License
--------------------------------------------------------------*/
defined( '_VALID_XTC' ) or die( 'Direct Access to this location is not allowed.' );
////
// The HTML href link wrapper function
function xtc_href_link($page = '', $parameters = '', $connection = 'NONSSL') {
if ($page == '') {
die('</td></tr></table></td></tr></table>
<font color="#ff0000">
Error!</font>
Unable to determine the page link!
Function used:
xtc_href_link(\'' . $page . '\', \'' . $parameters . '\', \'' . $connection . '\')');
}
if ($connection == 'NONSSL') {
$link = HTTP_SERVER . DIR_WS_ADMIN;
} elseif ($connection == 'SSL') {
if (ENABLE_SSL == 'true') {
$link = HTTPS_SERVER . DIR_WS_ADMIN;
} else {
$link = HTTP_SERVER . DIR_WS_ADMIN;
}
} else {
die('</td></tr></table></td></tr></table>
<font color="#ff0000">
Error!</font>
Unable to determine connection method on a link!
Known methods: NONSSL SSL
Function used:
xtc_href_link(\'' . $page . '\', \'' . $parameters . '\', \'' . $connection . '\')');
}
if ($parameters == '') {
$link = $link . $page . '?' . SID;
} else {
$link = $link . $page . '?' . $parameters . '&' . SID;
}
while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);
return $link;
}
function xtc_catalog_href_link($page = '', $parameters = '', $connection = 'NONSSL') {
if ($connection == 'NONSSL') {
$link = HTTP_CATALOG_SERVER . DIR_WS_CATALOG;
} elseif ($connection == 'SSL') {
if (ENABLE_SSL_CATALOG == 'true') {
$link = HTTPS_CATALOG_SERVER . DIR_WS_CATALOG;
} else {
$link = HTTP_CATALOG_SERVER . DIR_WS_CATALOG;
}
} else {
die('</td></tr></table></td></tr></table>
<font color="#ff0000">
Error!</font>
Unable to determine connection method on a link!
Known methods: NONSSL SSL
Function used:
xtc_href_link(\'' . $page . '\', \'' . $parameters . '\', \'' . $connection . '\')');
}
if ($parameters == '') {
$link .= $page;
} else {
$link .= $page . '?' . $parameters;
}
while ( (substr($link, -1) == '&') || (substr($link, -1) == '?') ) $link = substr($link, 0, -1);
return $link;
}
////
// The HTML image wrapper function
function xtc_image($src, $alt = '', $width = '', $height = '', $params = '') {
$image = '
';
return $image;
}
////
// Draw a 1 pixel black line
function xtc_black_line() {
return xtc_image(DIR_WS_IMAGES . 'pixel_black.gif', '', '100%', '1');
}
////
// Output a separator either through whitespace, or with an image
function xtc_draw_separator($image = 'pixel_black.gif', $width = '100%', $height = '1') {
return xtc_image(DIR_WS_IMAGES . $image, '', $width, $height);
}
////
// javascript to dynamically update the states/provinces list when the country is changed
// TABLES: zones
function xtc_js_zone_list($country, $form, $field) {
$countries_query = xtc_db_query("select distinct zone_country_id from " . TABLE_ZONES . " order by zone_country_id");
$num_country = 1;
$output_string = '';
while ($countries = xtc_db_fetch_array($countries_query)) {
if ($num_country == 1) {
$output_string .= ' if (' . $country . ' == "' . $countries['zone_country_id'] . '") {' . "\n";
} else {
$output_string .= ' } else if (' . $country . ' == "' . $countries['zone_country_id'] . '") {' . "\n";
}
$states_query = xtc_db_query("select zone_name, zone_id from " . TABLE_ZONES . " where zone_country_id = '" . $countries['zone_country_id'] . "' order by zone_name");
$num_state = 1;
while ($states = xtc_db_fetch_array($states_query)) {
if ($num_state == '1') $output_string .= ' ' . $form . '.' . $field . '.options[0] = new Option("' . PLEASE_SELECT . '", "");' . "\n";
$output_string .= ' ' . $form . '.' . $field . '.options[' . $num_state . '] = new Option("' . $states['zone_name'] . '", "' . $states['zone_id'] . '");' . "\n";
$num_state++;
}
$num_country++;
}
$output_string .= ' } else {' . "\n" .
' ' . $form . '.' . $field . '.options[0] = new Option("' . TYPE_BELOW . '", "");' . "\n" .
' }' . "\n";
return $output_string;
}
////
// Output a form
function xtc_draw_form($name, $action, $parameters = '', $method = 'post', $params = '') {
$form = '<form name="' . $name . '" action="';
if ($parameters) {
$form .= xtc_href_link($action, $parameters);
} else {
$form .= xtc_href_link($action);
}
$form .= '" method="' . $method . '"';
if ($params) {
$form .= ' ' . $params;
}
$form .= '>';
return $form;
}
////
// Output a form input field
function xtc_draw_input_field($name, $value = '', $parameters = '', $required = false, $type = 'text', $reinsert_value = true) {
$field = '<input type="' . $type . '" name="' . $name . '"';
if ( ($GLOBALS[$name]) && ($reinsert_value) ) {
$field .= ' value="' . htmlspecialchars(trim($GLOBALS[$name])) . '"';
} elseif ($value != '') {
$field .= ' value="' . htmlspecialchars(trim($value)) . '"';
}
if ($parameters != '') {
$field .= ' ' . $parameters;
}
$field .= '>';
if ($required) $field .= TEXT_FIELD_REQUIRED;
return $field;
}
// Output a form small input field
function xtc_draw_small_input_field($name, $value = '', $parameters = '', $required = false, $type = 'text', $reinsert_value = true) {
$field = '<input type="' . $type . '" size="3" name="' . $name . '"';
if ( ($GLOBALS[$name]) && ($reinsert_value) ) {
$field .= ' value="' . htmlspecialchars(trim($GLOBALS[$name])) . '"';
} elseif ($value != '') {
$field .= ' value="' . htmlspecialchars(trim($value)) . '"';
}
if ($parameters != '') {
$field .= ' ' . $parameters;
}
$field .= '>';
if ($required) $field .= TEXT_FIELD_REQUIRED;
return $field;
}
////
// Output a form password field
function xtc_draw_password_field($name, $value = '', $required = false) {
$field = xtc_draw_input_field($name, $value, 'maxlength="40"', $required, 'password', false);
return $field;
}
////
// Output a form filefield
function xtc_draw_file_field($name, $required = false) {
$field = xtc_draw_input_field($name, '', '', $required, 'file');
return $field;
}
////
// Output a selection field - alias function for xtc_draw_checkbox_field() and xtc_draw_radio_field()
function xtc_draw_selection_field($name, $type, $value = '', $checked = false, $compare = '') {
$selection = '<input type="' . $type . '" name="' . $name . '"';
if ($value != '') {
$selection .= ' value="' . $value . '"';
}
if ( ($checked == true) || ($GLOBALS[$name] == 'on') || ($value && ($GLOBALS[$name] == $value)) || ($value && ($value == $compare)) ) {
$selection .= ' CHECKED';
}
$selection .= '>';
return $selection;
}
////
// Output a form checkbox field
function xtc_draw_checkbox_field($name, $value = '', $checked = false, $compare = '') {
return xtc_draw_selection_field($name, 'checkbox', $value, $checked, $compare);
}
////
// Output a form radio field
function xtc_draw_radio_field($name, $value = '', $checked = false, $compare = '') {
return xtc_draw_selection_field($name, 'radio', $value, $checked, $compare);
}
////
// Output a form textarea field
function xtc_draw_textarea_field($name, $wrap, $width, $height, $text = '', $params = '', $reinsert_value = true) {
$field = '<textarea id="'.$name.'" name="' . $name . '" wrap="' . $wrap . '" cols="' . $width . '" rows="' . $height . '"';
if ($params) $field .= ' ' . $params;
$field .= '>';
if ( ($GLOBALS[$name]) && ($reinsert_value) ) {
$field .= $GLOBALS[$name];
} elseif ($text != '') {
$field .= $text;
}
$field .= '</textarea>';
return $field;
}
////
// Output a form hidden field
function xtc_draw_hidden_field($name, $value = '') {
$field = '<input type="hidden" name="' . $name . '" value="';
if ($value != '') {
$field .= trim($value);
} else {
$field .= trim($GLOBALS[$name]);
}
$field .= '">';
return $field;
}
////
// Output a form pull down menu
function xtc_draw_pull_down_menu($name, $values, $default = '', $params = '', $required = false) {
$field = '<select name="' . $name . '"';
if ($params) $field .= ' ' . $params;
$field .= '>';
if(is_array($values))
{
foreach ($values as $key=>$val) {
$field .= '<option value="' .$val['id'] . '"';
if ( ((strlen($val['id']) > 0) && ($GLOBALS[$name] == $val['id'])) || ($default == $val['id']) ) {
$field .= ' SELECTED';
}
$field .= '>' . $val['text'] . '</option>';
}
}
$field .= '</select>';
if ($required) $field .= TEXT_FIELD_REQUIRED;
return $field;
}
// output 2 Soring arrows
function xtc_sorting($page,$sort) {
switch ($page) {
case FILENAME_CUSTOMERS:
$nav='
<a href="'.xtc_href_link(FILENAME_CUSTOMERS,'sorting='.$sort.'&'.xtc_get_all_get_params(array('action','sorting'))).'">';
$nav.=xtc_image(DIR_WS_ICONS . 'sort_down.gif', '', '20' ,'20').'</a>';
$nav.='<a href="'.xtc_href_link(FILENAME_CUSTOMERS,'sorting='.$sort.'-desc&'.xtc_get_all_get_params(array('action','sorting'))).'">';
$nav.= xtc_image(DIR_WS_ICONS . 'sort_up.gif', '', '20' ,'20').'</a>';
break;
case FILENAME_CATEGORIES:
$nav='
<div><a href="'.xtc_href_link(FILENAME_CATEGORIES,'sorting='.$sort.'&'.xtc_get_all_get_params(array('action','sorting'))).'">';
$nav.=xtc_image(DIR_WS_ICONS . 'sort_down.gif', '', '20' ,'20').'</a>';
$nav.='<a href="'.xtc_href_link(FILENAME_CATEGORIES,'sorting='.$sort.'-desc&'.xtc_get_all_get_params(array('action','sorting'))).'">';
$nav.= xtc_image(DIR_WS_ICONS . 'sort_up.gif', '', '20' ,'20').'</a></div>';
break;
}
return $nav;
}
?>