Hallo,
folgende Situation habe ich gerade:
Unser modified Shop wurde wegen einem PHP Update auf 7.3 auf die Shopversion 2.05.0 upgedatet. Nun funktioniert die Schnittstelle von unserer Warenwirtschaft Amicron Faktura zum modified Shop nicht mehr vollständig. Es lässt sich der Bestellstatus im Shop von der Wawi nicht mehr ändern. Es erscheint folgende Fehlermeldung:
statusfehler.jpg
Der Import der Bestellungen aus dem Shop funktioniert reibungslos.
Der Dienstleister, der das Update des Shops gemacht hat, hat sich bemüht, jedoch leider erfolglos. Am Ende wurde mir gesagt, dass im Shop alles ok ist und es an der Wawi liegt. Der Hersteller der Wawi sagt, dass er mit modified nicht mehr zusammenarbeitet und daher kein Support möglich ist. Ob das Verhalten beider Partner richtig ist, lass ich einfach mal unkommentiert. Ich stehe nun einfach mit diesem Problem da. Ich habe die Hoffnung, dass es hier jemanden gibt, der vielleicht eine Lösung hat. Noch eine Anmerkung. In der SQL Datenbank wurden die Tabellen von Einstellungen befreit, die außerhalb von UTF8 liegen. Wir können nur leider nicht mehr feststellen, wann der Bestellstatus von der Wawi nicht mehr geändert werden kann. Ob es nur am update oder an der Datenbankbereinigung (es wurden alle Tabellen auf UTF8 umgestellt) liegt wissen wir nicht mehr.
Die Schnittstelle, die auf dem Server liegt, sieht so aus:
folgende Situation habe ich gerade:
Unser modified Shop wurde wegen einem PHP Update auf 7.3 auf die Shopversion 2.05.0 upgedatet. Nun funktioniert die Schnittstelle von unserer Warenwirtschaft Amicron Faktura zum modified Shop nicht mehr vollständig. Es lässt sich der Bestellstatus im Shop von der Wawi nicht mehr ändern. Es erscheint folgende Fehlermeldung:
statusfehler.jpg
Der Import der Bestellungen aus dem Shop funktioniert reibungslos.
Der Dienstleister, der das Update des Shops gemacht hat, hat sich bemüht, jedoch leider erfolglos. Am Ende wurde mir gesagt, dass im Shop alles ok ist und es an der Wawi liegt. Der Hersteller der Wawi sagt, dass er mit modified nicht mehr zusammenarbeitet und daher kein Support möglich ist. Ob das Verhalten beider Partner richtig ist, lass ich einfach mal unkommentiert. Ich stehe nun einfach mit diesem Problem da. Ich habe die Hoffnung, dass es hier jemanden gibt, der vielleicht eine Lösung hat. Noch eine Anmerkung. In der SQL Datenbank wurden die Tabellen von Einstellungen befreit, die außerhalb von UTF8 liegen. Wir können nur leider nicht mehr feststellen, wann der Bestellstatus von der Wawi nicht mehr geändert werden kann. Ob es nur am update oder an der Datenbankbereinigung (es wurden alle Tabellen auf UTF8 umgestellt) liegt wissen wir nicht mehr.
Die Schnittstelle, die auf dem Server liegt, sieht so aus:
PHP-Code:
/* Beispiel fuer Useragent
if (_SERVER["HTTP_USER_AGENT"]!='Amicron-Faktura') exit;
*/
$action = (isset($_POST['action']) ? $_POST['action'] : $_GET['action']);
if ($action == 'write_artikel' || $action == 'write_categorie' || $action == 'write_hersteller') {
$post = array();
$post = $_POST;
}
require('../includes/application_top_export.php');
define('ENCODE_DEFAULT_CHARSET', 'ISO-8859-15');
define('CHARSET', ENCODE_DEFAULT_CHARSET);
// 18.11.05 NC: wird ab 3.0.4 in Image_Manipulator getestet
define('_VALID_XTC', true);
include(DIR_FS_DOCUMENT_ROOT . 'admin/includes/classes/' . IMAGE_MANIPULATOR);
require_once(DIR_FS_INC . 'xtc_not_null.inc.php');
require_once(DIR_FS_INC . 'xtc_redirect.inc.php');
require_once(DIR_FS_INC . 'xtc_rand.inc.php');
require_once(DIR_FS_INC . 'xtc_get_tax_rate.inc.php');
require_once(DIR_FS_INC . 'xtc_href_link.inc.php');
require_once(DIR_FS_INC . 'xtc_set_time_limit.inc.php');
xtc_set_time_limit(0);
// ACHTUNG: diese Zeilen werden benötigt, nichts ändern!
$version_major = 4;
$version_minor = 1;
$datum = "Sep 2016";
// error_reporting(E_WARNING);
// rewrite values to use resample classes
define('DIR_FS_CATALOG_IMAGES', DIR_FS_CATALOG . DIR_WS_IMAGES);
define('DIR_FS_CATALOG_ORIGINAL_IMAGES', DIR_FS_CATALOG . DIR_WS_ORIGINAL_IMAGES);
define('DIR_FS_CATALOG_INFO_IMAGES', DIR_FS_CATALOG . DIR_WS_INFO_IMAGES);
define('DIR_FS_CATALOG_POPUP_IMAGES', DIR_FS_CATALOG . DIR_WS_POPUP_IMAGES);
define('DIR_FS_CATALOG_THUMBNAIL_IMAGES', DIR_FS_CATALOG . DIR_WS_THUMBNAIL_IMAGES);
define('DIR_FS_CATALOG_GALLERY_IMAGES', DIR_FS_CATALOG_IMAGES . 'product_images/gallery_images/');
if (isset($_GET['NoHeader']) && $_GET['NoHeader'] != "Y") {
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // immer geaendert
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
if (isset($_GET['FullHeader']) && $_GET['FullHeader'] == "Y") {
header("Content-type: text/xml");
}
}
class upload {
var $file, $filename, $destination, $permissions, $extensions, $tmp_filename;
function upload($file = '', $destination = '', $permissions = '777', $extensions = '') {
$this->set_file($file);
$this->set_destination($destination);
$this->set_permissions($permissions);
$this->set_extensions($extensions);
if (xtc_not_null($this->file) && xtc_not_null($this->destination)) {
if (($this->parse() == true) && ($this->save() == true)) {
return true;
} else {
return false;
}
}
}
function parse() {
global $messageStack;
if (isset($_FILES[$this->file])) {
$file = array('name' => $_FILES[$this->file]['name'],
'type' => $_FILES[$this->file]['type'],
'size' => $_FILES[$this->file]['size'],
'tmp_name' => $_FILES[$this->file]['tmp_name']);
} elseif (isset($_FILES[$this->file])) {
$file = array('name' => $_FILES[$this->file]['name'],
'type' => $_FILES[$this->file]['type'],
'size' => $_FILES[$this->file]['size'],
'tmp_name' => $_FILES[$this->file]['tmp_name']);
} else {
$file = array('name' => $GLOBALS[$this->file . '_name'],
'type' => $GLOBALS[$this->file . '_type'],
'size' => $GLOBALS[$this->file . '_size'],
'tmp_name' => $GLOBALS[$this->file]);
}
if (xtc_not_null($file['tmp_name']) && ($file['tmp_name'] != 'none') && is_uploaded_file($file['tmp_name'])) {
if (sizeof($this->extensions) > 0) {
if (!in_array(strtolower(substr($file['name'], strrpos($file['name'], '.') + 1)), $this->extensions)) {
return false;
}
}
$this->set_file($file);
$this->set_filename($file['name']);
$this->set_tmp_filename($file['tmp_name']);
return $this->check_destination();
} else {
return false;
}
}
function save() {
global $messageStack;
if (substr($this->destination, -1) != '/')
$this->destination .= '/';
// GDlib check
if (!function_exists("imagecreatefromgif")) {
// check if uploaded file = gif
if ($this->destination == DIR_FS_CATALOG_ORIGINAL_IMAGES) {
// check if merge image is defined .gif
if (strstr(PRODUCT_IMAGE_THUMBNAIL_MERGE, '.gif') ||
strstr(PRODUCT_IMAGE_INFO_MERGE, '.gif') ||
strstr(PRODUCT_IMAGE_POPUP_MERGE, '.gif')) {
return false;
}
if (strstr($this->filename, '.gif')) {
return false;
}
}
}
if (move_uploaded_file($this->file['tmp_name'], $this->destination . $this->filename)) {
chmod($this->destination . $this->filename, $this->permissions);
return true;
} else {
return false;
}
}
function set_file($file) {
$this->file = $file;
}
function set_destination($destination) {
$this->destination = $destination;
}
function set_permissions($permissions) {
$this->permissions = octdec($permissions);
}
function set_filename($filename) {
$this->filename = $filename;
}
function set_tmp_filename($filename) {
$this->tmp_filename = $filename;
}
function set_extensions($extensions) {
if (xtc_not_null($extensions)) {
if (is_array($extensions)) {
$this->extensions = $extensions;
} else {
$this->extensions = array($extensions);
}
} else {
$this->extensions = array();
}
}
function check_destination() {
global $messageStack;
if (!is_writeable($this->destination)) {
if (is_dir($this->destination)) {
} else {
}
return false;
} else {
return true;
}
}
}
function clear_string($value) {
$string = str_replace("'", '', $value);
$string = str_replace(')', '', $string);
$string = str_replace('(', '', $string);
$array = explode(',', $string);
return $array;
}
// 26.10.2005 Bei GD<2.0 existiert die Funktion "ImageCreateTrueColor" noch
// nicht, daher ein Workaround
if (!function_exists('ImageCreateTrueColor')) {
function ImageCreateTrueColor($new_x, $new_y) {
return ImageCreate($new_x, $new_y);
}
}
if (!function_exists('ImageCopyResampled')) {
function ImageCopyResampled($dst_im, $src_im, $dstX, $dstY, $srcX, $srcY, $dstW, $dstH, $srcW, $srcH) {
return ImageCopyResized($dst_im, $src_im, $dstX, $dstY, $srcX, $srcY, $dstW, $dstH, $srcW, $srcH);
}
}
$action = xtc_db_prepare_input(isset($_POST['action']) ? $_POST['action'] : $_GET['action']);
$user = xtc_db_prepare_input(isset($_POST['user']) ? $_POST['user'] : $_GET['user']);
$password = xtc_db_prepare_input(isset($_POST['password']) ? $_POST['password'] : $_GET['password']);
// Default-Sprache
$LangID = 2;
if (isset($_GET['Debug']) && $_GET['Debug'] == "Y") {
ShowDebug();
exit;
}
switch ($action) {
// Versionsausgabe
case 'read_version':
ReadVersion();
exit;
case 'read_languages':
if (CheckLogin($user, $password)) {
ReadLanguages();
}
exit;
case 'read_categories':
if (CheckLogin($user, $password)) {
ReadCategories();
}
exit;
case 'write_artikel':
if (CheckLogin($user, $password)) {
WriteArtikel();
}
exit;
case 'write_categorie':
if (CheckLogin($user, $password)) {
WriteCategorie();
}
exit;
case 'read_artikel':
if (CheckLogin($user, $password)) {
ReadArtikel();
}
exit;
case 'get_artikel_image':
if (CheckLogin($user, $password)) {
GetArtikelImage();
}
exit;
case 'read_hersteller':
if (CheckLogin($user, $password)) {
ReadHersteller();
}
exit;
case 'write_hersteller':
if (CheckLogin($user, $password)) {
WriteHersteller();
}
exit;
case 'delete_artikel':
if (CheckLogin($user, $password)) {
DeleteArtikel();
}
exit;
case 'order_update':
if (CheckLogin($user, $password)) {
OrderUpdate();
}
exit;
case 'read_shopdata':
if (CheckLogin($user, $password)) {
ReadShopData();
}
exit;
case 'orders_export':
if (CheckLogin($user, $password)) {
OrdersExport();
}
exit;
default:
ReadVersion();
exit;
} // switch
function ShowDebug() {
global $action, $version_major, $version_minor;
echo "<DEBUG>\n";
echo " <GetAction>$_GET[action]</GetAction>\n";
echo " <PostAction>$_POST[action]</PostAction>\n";
echo " <GetDaten>\n";
foreach ($_GET as $Key => $Value) {
echo " <$Key>$Value</$Key>\n";
}
echo " </GetDaten>\n";
echo " <PostDaten>\n";
foreach ($_POST as $Key => $Value) {
echo " <$Key>$Value</$Key>\n";
}
echo " </PostDaten>\n";
echo "</DEBUG>\n";
}
function ReadVersion() {
global $action, $version_major, $version_minor, $datum;
$ver = explode('.', PHP_VERSION);
$shop = array('version' => ' < 2.0');
$cmd = "select * from " . TABLE_DATABASE_VERSION;
$query = xtc_db_query($cmd);
if ($shop = xtc_db_fetch_array($query)) ;
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<STATUS>\n" .
" <STATUS_DATA>\n" .
" <SCRIPT_VERSION_MAJOR>$version_major</SCRIPT_VERSION_MAJOR>\n" .
" <SCRIPT_VERSION_MINOR>$version_minor</SCRIPT_VERSION_MINOR>\n" .
" <SCRIPT_DEFAULTCHARSET>" . ENCODE_DEFAULT_CHARSET . "</SCRIPT_DEFAULTCHARSET>\n" .
" <INFO>PHP:$ver[0].$ver[1] - {$shop['version']} - $datum</INFO>\n" .
" </STATUS_DATA>\n" .
"</STATUS>\n\n";
} // Ende ReadVersion()
function OrdersExport() {
require (DIR_WS_CLASSES . 'order.php');
$order_from = xtc_db_prepare_input($_GET['order_from']);
$order_to = xtc_db_prepare_input($_GET['order_to']);
$order_status = xtc_db_prepare_input($_GET['order_status']);
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
'<ORDERS>' . "\n";
if (!isset($order_status) && !isset($order_from)) {
$order_status = 1;
$sql = "and orders_status ='" . $order_status . "'";
}
if ($order_status != '') {
$sql = "and orders_status ='" . $order_status . "'";
}
$orders_query = xtc_db_query("-- /admin/orders.php
SELECT orders_id
FROM " . TABLE_ORDERS .
" WHERE orders_id >= '{$order_from}' $sql ");
$order_exists = true;
if (!xtc_db_num_rows($orders_query)) {
$order_exists = false;
echo "<info>Es existiert keine Bestellung; ab orders_id: $order_from ! </info>";
}
while ($order = xtc_db_fetch_array($orders_query)) {
echo '<ORDER>' . "\n";
$oID = $order['orders_id'];
$order = new order($oID);
$cmd = "SELECT c.countries_id from orders o, countries c "
. "where o.orders_id = {$order->info['orders_id']} "
. "and c.countries_iso_code_2 = o.delivery_country_iso_code_2";
$query = xtc_db_query($cmd);
if ($r = xtc_db_fetch_array($query)) {
$cmd = "SELECT z.zone_country_id, z.zone_id, z.geo_zone_id from zones_to_geo_zones z, countries c "
. "where z.zone_country_id = {$r['countries_id']}";
$query = xtc_db_query($cmd);
$res = xtc_db_fetch_array($query);
$res['oID'] = $oID;
}
$shipping = get_shipping($order->info['shipping_class'], $order->info['language'], $res);
$afpayment = get_payment($order->info['payment_class'], $order->info['language'], $res);
foreach ($order->info as $key => $value) {
if ($key == 'shipping_class' || $key == 'shipping_method')
continue;
if ($key == 'payment_class' || $key == 'payment_method')
continue;
echo " <$key>" . decode_utf8(encode_htmlspecialchars($value)) . "</$key>\n";
}
switch ($order->products[0]['allow_tax']) {
case 0:
if ($order->info['pp_tax'] > 0)
echo " <tax_flag>N</tax_flag>\n";
else
echo " <tax_flag>0</tax_flag>\n";
break;
case 1:
if ($order->info['pp_tax'] > 0)
echo " <tax_flag>J</tax_flag>\n";
if ($order->info['pp_tax'] == 0)
echo " <tax_flag>0</tax_flag>\n";
break;
default:
echo " <tax_flag>J</tax_flag>\n";
break;
}
if ($tracking = get_tracking($order)) {
echo " <tracking>\n" .
" <carrier_name>{$tracking['carrier_name']}</carrier_name>\n" .
" <parcel_id>{$tracking['parcel_id']}</parcel_id>\n" .
" </tracking>\n";
}
echo " <products>\n";
foreach ($order->products as $i) {
echo " <product>\n";
foreach ($i as $key => $value) {
echo " <$key>" . decode_utf8(encode_htmlspecialchars($value)) . "</$key>\n";
if ($key == 'attributes') {
foreach ($value as $i => $attr) {
echo " <option>\n" .
" <products_options>" . decode_utf8($attr['products_options']) . "</products_options>\n" .
// " <products_options_values>" . decode_utf8($attr['products_options_values']) . "</products_options_values>\n" .
" <products_options_values>" . decode_utf8($attr['attributes_ean']) . "</products_options_values>\n" .
" <products_options_model>" . decode_utf8($attr['attributes_model']) . "</products_options_model>\n" .
" <products_options_price>" . $attr['price_prefix'] . ' ' . $attr['options_values_price'] . "</products_options_price>\n" .
" </option>\n";
}
}
}
echo " </product>\n";
}
echo " </products>\n";
echo " <customer>\n";
foreach ($order->customer as $key => $value) {
if ($key == 'gender') {
if ($value == 'm') {
echo " <anrede>Herrn</anrede>\n";
continue;
} elseif ($value == 'f') {
echo " <anrede>Frau</anrede>\n";
continue;
} else {
echo " <anrede></anrede>\n";
continue;
}
}
echo " <$key>" . decode_utf8(encode_htmlspecialchars($value)) . "</$key>\n";
}
echo " </customer>\n";
/*
echo " <billing>\n";
foreach ($order->billing as $key => $value) {
echo " <$key>".decode_utf8(encode_htmlspecialchars($val ue ))."</$key>\n";
}
echo " </billing>\n";
*/
echo " <delivery>\n";
foreach ($order->delivery as $key => $value) {
if ($key == 'gender') {
if ($value == 'm') {
echo " <anrede>Herrn</anrede>\n";
continue;
} elseif ($value == 'f') {
echo " <anrede>Frau</anrede>\n";
continue;
} else {
echo " <anrede></anrede>\n";
continue;
}
}
echo " <$key>" . decode_utf8(encode_htmlspecialchars($value)) . "</$key>\n";
}
echo " </delivery>\n";
if ($order->info['shipping_method']) {
echo " <shipping>\n";
foreach ($shipping as $key => $value) {
echo " <$key>" . decode_utf8(encode_htmlspecialchars($value)) . "</$key> \n";
}
echo " </shipping>\n";
}
if ($order->info['payment_class']) {
echo " <payment>\n";
foreach ($afpayment as $key => $value) {
echo " <$key>" . decode_utf8(encode_htmlspecialchars($value)) . "</$key>\n";
}
}
echo " </payment>\n";
if ($order->info['payment_class'] == 'banktransfer') {
$sepa = get_sepa($payment_class, $res);
echo " <sepa>\n";
foreach ($sepa as $key => $value) {
echo " <$key>" . decode_utf8(encode_htmlspecialchars($value)) . "</$key>\n";
}
echo " </sepa>\n";
}
echo " <totals>\n";
if ((isset($order->info['pp_fee']) && $order->info['pp_fee'] <> 0) ||
(isset($order->info['pp_gs']) && $order->info['pp_gs'] <> 0 ))
get_tmodul_tax($order, $res);
foreach ($order->totals as $i) {
echo " <total>\n";
foreach ($i as $key => $value) {
echo " <$key>" . decode_utf8(encode_htmlspecialchars($value)) . "</$key>\n";
}
echo " </total>\n";
}
echo " </totals>\n";
echo "</ORDER>\n";
}
echo '</ORDERS>' . "\n";
}
function OrderUpdate() {
global $action, $version_major, $version_minor;
require_once (DIR_FS_INC . 'xtc_php_mail.inc.php');
require_once (DIR_FS_INC . 'get_tracking_link.inc.php');
$post = array();
$post = $_POST;
$afOrderID = $post['Order_id'];
$afStatus = $post['Status'];
$afComments = '';
if (isset($post['Sendungsdienstleister']) && isset($post['Sendungsnummer']) && !empty($post['Sendungsnummer'])) {
$afCarrier = strtoupper($post['Sendungsdienstleister']);
$afTrackNr = $post['Sendungsnummer'];
}
// initiate template engine for mail
$smarty = new Smarty;
//require (DIR_WS_CLASSES.'currencies.php');
require (DIR_WS_CLASSES . 'order.php');
$orders_query = xtc_db_query("-- /admin/orders.php
SELECT orders_id
FROM " . TABLE_ORDERS .
" WHERE orders_id = $afOrderID");
$order_exists = true;
if (!xtc_db_num_rows($orders_query)) {
$order_exists = false;
$output = " <INFO>Bestellung mit der ID: $afOrderID konnte nicht gefunden werden</INFO>\n";
}
$order_select_fields = 'o.orders_id,o.customers_id,o.customers_name,
o.customers_company,o.payment_method, o.shipping_method,
o.shipping_class,o.last_modified,o.date_purchased,
o.orders_status,o.currency,o.currency_value,
o.afterbuy_success,o.afterbuy_id,o.language,
o.delivery_country,o.delivery_country_iso_code_2
';
// invoice number and date
//include(DIR_WS_MODULES.'invoice_number/invoice_number_functions.php');
//$order_select_fields = add_select_ibillnr($order_select_fields);
if ($order = xtc_db_fetch_array($orders_query)) {
$oID = $order['orders_id'];
$order = new order($oID);
if (isset($order) && is_object($order)) {
$lang_query = xtc_db_query("SELECT languages_id, language_charset
code,image
FROM " . TABLE_LANGUAGES . "
WHERE directory = '" . $order->info['language'] . "'");
$lang_array = xtc_db_fetch_array($lang_query);
$lang = $lang_array['languages_id'];
$lang_code = $lang_array['code'];
$lang_charset = $lang_array['language_charset'];
}
$orders_query_raw = "-- /admin/orders.php
SELECT " . $order_select_fields . ",s.orders_status_name
FROM " . TABLE_ORDERS . " o
LEFT JOIN " . TABLE_ORDERS_STATUS . " s
ON (o.orders_status = s.orders_status_id
AND s.language_id = '" . (int) $lang . "')
WHERE o.orders_id LIKE '%" . $oID . "%'
ORDER BY o.orders_id DESC";
$orders_query = xtc_db_query($orders_query_raw);
// $order_exists = false;
if (xtc_db_num_rows($orders_query) == 1) {
// $order_exists = true;
$oID_array = xtc_db_fetch_array($orders_query);
$oID = $oID_array['orders_id'];
}
// track & trace
if (isset($afCarrier) && isset($afTrackNr)) {
$carriers = array();
$carriers_query = xtc_db_query("SELECT carrier_id, carrier_name
FROM " . TABLE_CARRIERS . "
ORDER BY carrier_sort_order ASC");
while ($carrier = xtc_db_fetch_array($carriers_query)) {
if (isset($afCarrier) && isset($afTrackNr)) {
if ($carrier['carrier_name'] == $afCarrier) {
$carrier_id = xtc_db_prepare_input($carrier['carrier_id']);
$parcel_id = xtc_db_prepare_input($afTrackNr);
$sql_data_array = array('orders_id' => $oID,
'carrier_id' => $carrier_id,
'parcel_id' => $parcel_id);
xtc_db_perform(TABLE_ORDERS_TRACKING, $sql_data_array);
$trackID = xtc_db_insert_id();
}
}
$carriers[] = array('id' => $carrier['carrier_id'], 'text' => $carrier['carrier_name']);
}
}
$orders_statuses = array();
$orders_status_array = array();
$orders_status_query = xtc_db_query("SELECT orders_status_id, orders_status_name
FROM " . TABLE_ORDERS_STATUS . "
WHERE language_id = '" . $lang . "'
ORDER BY sort_order");
while ($orders_status = xtc_db_fetch_array($orders_status_query)) {
$orders_statuses[] = array('id' => $orders_status['orders_status_id'], 'text' => $orders_status['orders_status_name']);
$orders_status_array[$orders_status['orders_status_id']] = $orders_status['orders_status_name'];
}
// set dirs manual
$smarty->caching = false;
$smarty->template_dir = DIR_FS_CATALOG . 'templates';
$smarty->compile_dir = DIR_FS_CATALOG . 'templates_c';
$smarty->config_dir = DIR_FS_CATALOG . 'lang';
$send_by_admin = true;
$insert_id = $oID;
// require_once(DIR_FS_CATALOG.DIR_WS_CLASSES.'xtcPri ce.php');
require_once(DIR_FS_INC . 'xtc_href_link_from_admin.inc.php');
// include (DIR_FS_CATALOG .'send_order.php');
require_once (DIR_FS_CATALOG . 'lang/' . $order->info['language'] . '/admin/' . $order->info['language'] . '.php');
$comments = xtc_db_prepare_input($afStatus);
$order_updated = false;
$customer_notified = 0;
$gender_query = xtc_db_query("SELECT customers_gender
FROM " . TABLE_CUSTOMERS . "
WHERE customers_id = '" . $order->customer['id'] . "'");
$gender_array = xtc_db_fetch_array($gender_query);
$order->customer['gender'] = $gender_array['customers_gender'];
if ($order->customer['gender'] == 'f') {
$smarty->assign('GENDER', FEMALE);
} elseif ($order->customer['gender'] == 'm') {
$smarty->assign('GENDER', MALE);
} else {
$smarty->assign('GENDER', '');
}
$smarty->assign('LASTNAME', $order->customer['lastname'] != '' ? $order->customer['lastname'] : $order->customer['name']);
$smarty->assign('order', $order);
// $smarty->assign('order_data', $order->getOrderData($oID));
$smarty->assign('tpl_path', DIR_WS_BASE . 'templates/' . CURRENT_TEMPLATE . '/');
$smarty->assign('logo_path', HTTP_SERVER . DIR_WS_CATALOG . 'templates/' . CURRENT_TEMPLATE . '/img/');
$smarty->assign('NAME', $order->customer['name']);
$smarty->assign('ORDER_NR', $order->info['order_id']);
$smarty->assign('ORDER_ID', $oID);
// track & trace
$tracking_array = get_tracking_link($oID, $lang_code, ((isset($afCarrier) && isset($afTrackNr)) ? array($trackID) : array('0')));
$smarty->assign('PARCEL_COUNT', count($tracking_array));
$smarty->assign('PARCEL_ARRAY', $tracking_array);
$smarty->assign('ORDER_DATE', xtc_date_long($order->info['date_purchased']));
//$smarty->assign('NOTIFY_COMMENTS', nl2br($notify_comments));
$smarty->assign('NOTIFY_COMMENTS', nl2br($afComments));
$smarty->assign('ORDER_STATUS', $orders_status_array[$afStatus]);
// assign language
$smarty->assign('language', $order->info['language']);
// $smarty->template_dir = DIR_FS_CATALOG.'templates';
// $smarty->compile_dir = DIR_FS_CATALOG.'templates_c';
// $smarty->config_dir = DIR_FS_CATALOG.'lang';
$html_mail = $smarty->fetch(CURRENT_TEMPLATE . '/admin/mail/' . $order->info['language'] . '/change_order_mail.html');
$txt_mail = $smarty->fetch(CURRENT_TEMPLATE . '/admin/mail/' . $order->info['language'] . '/change_order_mail.txt');
$order_subject_search = array('{$nr}', '{$date}', '{$lastname}', '{$firstname}');
$order_subject_replace = array($oID, strftime(DATE_FORMAT_LONG), $order->customer['lastname'], $order->customer['firstname']);
$order_subject = str_replace($order_subject_search, $order_subject_replace, EMAIL_BILLING_SUBJECT);
//EMAIL PREVIEW
include ('includes/modules/email_preview/email_preview.php');
xtc_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $order->customer['email_address'], $order->customer['name'], '', EMAIL_BILLING_REPLY_ADDRESS, EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', $order_subject, $html_mail, $txt_mail
);
$customer_notified = 1;
$sql_data_array = array('orders_id' => $oID,
'orders_status_id' => $afStatus,
'date_added' => 'now()',
'customer_notified' => $customer_notified,
'comments' => '',
'comments_sent' => 0
);
xtc_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);
$sql_data = array('orders_status' => $afStatus, 'last_modified' => 'now()');
xtc_db_perform(TABLE_ORDERS, $sql_data, 'update', "orders_id ='$oID'");
$order_updated = true;
}
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<STATUS>\n" .
" <STATUS_DATA>\n" .
" <MESSAGE>OK</MESSAGE>\n";
if (!$order_exists) {
echo $output;
}
echo " <SCRIPT_VERSION_MAJOR>$version_major</SCRIPT_VERSION_MAJOR>\n" .
" <SCRIPT_VERSION_MINOR>$version_minor</SCRIPT_VERSION_MINOR>\n" .
" </STATUS_DATA>\n" .
"</STATUS>\n\n";
} // Ende OrderUpdate()
function ReadLanguages() {
global $action;
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n"
. "<LANGUAGES>\n";
$cmd = "select languages_id,name,code from " . TABLE_LANGUAGES;
$languages_query = xtc_db_query($cmd);
while ($languages = xtc_db_fetch_array($languages_query)) {
echo " <LANGUAGES_DATA>\n" .
" <ID>$languages[languages_id]</ID>\n" .
" <NAME>" . htmlspecialchars($languages["name"]) . "</NAME>\n" .
" <CODE>" . htmlspecialchars($languages["code"]) . "</CODE>\n" .
" </LANGUAGES_DATA>\n";
}
echo "</LANGUAGES>\n";
}
function ReadCategories() {
global $action;
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<CATEGORIES>\n";
$cmd = "select categories_id, parent_id from " . TABLE_CATEGORIES .
" order by parent_id, categories_id";
$cat_query = xtc_db_query($cmd);
while ($cat = xtc_db_fetch_array($cat_query)) {
echo "<CATEGORIES_DATA>\n" .
" <ID>$cat[categories_id]</ID>\n" .
" <PARENT_ID>$cat[parent_id]</PARENT_ID>\n" .
" <NAMES>\n";
$cmd = "select language_id, categories_name from " . TABLE_CATEGORIES_DESCRIPTION .
" where categories_id=" . $cat['categories_id'];
$names_query = xtc_db_query($cmd);
while ($names = xtc_db_fetch_array($names_query)) {
echo " <NAMEENTRY>\n" .
" <LANGUAGEID>$names[language_id]</LANGUAGEID>\n" .
" <NAME>" . htmlspecialchars($names['categories_name']) . "</NAME>\n" .
" </NAMEENTRY>\n";
}
echo " </NAMES>\n" .
"</CATEGORIES_DATA>\n";
}
echo "</CATEGORIES>\n";
} // Ende ReadCategories()
function WriteArtikel() {
global $action, $version_major, $version_minor, $LangID, $post;
$btime = aftime();
$ExportModus = xtc_db_prepare_input($post['ExportModus']);
$Artikel_ID = (integer) (xtc_db_prepare_input($post['Artikel_ID']));
$Hersteller_ID = (integer) ($post['Hersteller_ID']);
$Artikel_Artikelnr = xtc_db_prepare_input($post['Artikel_Artikelnr']);
$Artikel_Menge = xtc_db_prepare_input($post['Artikel_Menge']);
$Artikel_Preis = xtc_db_prepare_input($post['Artikel_Preis']);
$Artikel_Gewicht = xtc_db_prepare_input($post['Artikel_Gewicht']);
$Artikel_Status = xtc_db_prepare_input($post['Artikel_Status']);
$Artikel_Steuersatz = xtc_db_prepare_input($post['Artikel_Steuersatz']);
$Artikel_Bilddatei = xtc_db_prepare_input($post['Artikel_Bilddatei']);
$Artikel_EAN = xtc_db_prepare_input($post['Artikel_EAN']);
$Artikel_Lieferstatus = (integer) (xtc_db_prepare_input($post['Artikel_Lieferstatus']));
$Artikel_Startseite = (integer) (xtc_db_prepare_input($post['Artikel_Startseite']));
$SkipImages = (bool) (xtc_db_prepare_input($post['SkipImages']));
$sql_data_array = array();
if (isset($post['Artikel_Lieferstatustext'])) {
$Artikel_Lieferstatustext = xtc_db_prepare_input($post['Artikel_Lieferstatustext']);
$cmd = "select shipping_status_id, language_id, shipping_status_name from " . TABLE_SHIPPING_STATUS . " where language_id = $LangID and shipping_status_name = '$Artikel_Lieferstatustext'";
$shipping_time_query = xtc_db_query($cmd);
$shipping_time = xtc_db_fetch_array($shipping_time_query);
if (!$shipping_time) {
$IDcmd = "SELECT shipping_status_id, language_id FROM " . TABLE_SHIPPING_STATUS . " where language_id = $LangID ORDER BY shipping_status_id DESC LIMIT 1";
$lastID_query = xtc_db_query($IDcmd);
$lastID = xtc_db_fetch_array($lastID_query);
$statusID = $lastID['shipping_status_id'] + 1;
$insert_shipping_status = array('shipping_status_id' => $statusID, 'language_id' => $LangID, 'shipping_status_name' => $Artikel_Lieferstatustext);
xtc_db_perform(TABLE_SHIPPING_STATUS, $insert_shipping_status);
$sql_data_array['products_shippingtime'] = $statusID;
$Artikel_Lieferstatus = $sql_data_array['products_shippingtime'];
} else {
$sql_data_array['products_shippingtime'] = $shipping_time['shipping_status_id'];
$Artikel_Lieferstatus = $sql_data_array['products_shippingtime'];
}
} else {
$sql_data_array['products_shippingtime'] = $Artikel_Lieferstatus;
}
$Artikel_Kategorien = array();
$i = 1;
while (isset($post["Artikel_KategorieID{$i}"])) {
$Artikel_Kategorien[$i] = (integer) (xtc_db_prepare_input($post["Artikel_KategorieID{$i}"]));
$i++;
}
$Artikel_Texte = array();
$i = 1;
while (isset($post["Artikel_Bezeichnung{$i}"])) {
$Artikel_Texte[$i] = array(
'B' => xtc_db_prepare_input($post["Artikel_Bezeichnung{$i}"]),
'T' => xtc_db_prepare_input($post["Artikel_Text{$i}"]),
'S' => xtc_db_prepare_input($post["Artikel_Kurztext{$i}"]),
'L' => (integer) (xtc_db_prepare_input($post["Artikel_TextLanguage{$i}"])),
'MT' => xtc_db_prepare_input($post["Artikel_MetaTitle{$i}"]),
'MD' => xtc_db_prepare_input($post["Artikel_MetaDescription{$i}"]),
'MK' => xtc_db_prepare_input($post["Artikel_MetaKeywords{$i}"]),
'URL' => xtc_db_prepare_input($post["Artikel_URL{$i}"]));
$i++;
}
$Artikel_Preise = array();
$i = 1;
while (isset($post["Artikelpreise_Preis{$i}"])) {
$Artikel_Preise[$i] = array(
'P' => xtc_db_prepare_input($post["Artikelpreise_Preis{$i}"]),
'G' => (integer) xtc_db_prepare_input($post["Artikelpreise_Gruppe{$i}"]),
'M' => (integer) xtc_db_prepare_input($post["Artikelpreise_Menge{$i}"]));
$i++;
}
$exists = FALSE;
$mode = 'NONE';
// if ($Artikel_ID == 0) {
$cmd = "SELECT products_id, products_model FROM " . TABLE_PRODUCTS
. " WHERE products_model = '" . $Artikel_Artikelnr
. "' OR products_id = '" . $Artikel_ID . "'";
$products_model_query = xtc_db_query($cmd);
if ($products_model_query) {
$products_model = xtc_db_fetch_array($products_model_query);
if ($products_model) {
$exists = TRUE;
$mode = 'UPDATED';
$Artikel_ID = $products_model['products_id'];
} else {
$exists = FALSE;
$mode = 'INSERTED';
}
}
// Artikel laden
// if ($Artikel_ID !=0) {
if ($exists) {
$cmd = "select products_image from " . TABLE_PRODUCTS . " where products_id='$Artikel_ID'";
$artikel_query = xtc_db_query($cmd);
if ($artikel = xtc_db_fetch_array($artikel_query)) {
$exists = TRUE;
$Bilddatei = $artikel['products_image'];
// Alte Bilder entfernen
if (!$SkipImages && $ExportModus == 'Overwrite') {
if ($Bilddatei != 'no_picture.gif' && $Bilddatei != '') {
$cmd = "select count(*) as total from " . TABLE_PRODUCTS .
" where products_image = '$Bilddatei'";
$duplicate_image_query = xtc_db_query($cmd);
$duplicate_image = xtc_db_fetch_array($duplicate_image_query);
if ($duplicate_image['total'] < 2) {
if (file_exists(DIR_FS_CATALOG_ORIGINAL_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_ORIGINAL_IMAGES . $Bilddatei);
}
if (file_exists(DIR_FS_CATALOG_THUMBNAIL_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_THUMBNAIL_IMAGES . $Bilddatei);
}
if (file_exists(DIR_FS_CATALOG_INFO_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_INFO_IMAGES . $Bilddatei);
}
if (file_exists(DIR_FS_CATALOG_POPUP_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_POPUP_IMAGES . $Bilddatei);
}
if (file_exists(DIR_FS_CATALOG_GALLERY_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_GALLERY_IMAGES . $Bilddatei);
}
$image_subdir = BIG_IMAGE_SUBDIR;
if (substr($image_subdir, -1) != '/') {
$image_subdir .= '/';
}
if (file_exists(DIR_FS_CATALOG_IMAGES . $image_subdir . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_IMAGES . $image_subdir . $Bilddatei);
}
}
}
$cmd = "select image_name from " . TABLE_PRODUCTS_IMAGES . " where products_id='$Artikel_ID'";
$images_query = xtc_db_query($cmd);
while ($images = xtc_db_fetch_array($images_query)) {
$Bilddatei = $images['image_name'];
if ($Bilddatei != 'no_picture.gif' && $Bilddatei != '') {
$cmd = "select count(*) as total from " . TABLE_PRODUCTS_IMAGES .
" where image_name = '$Bilddatei'";
$duplicate_image_query = xtc_db_query($cmd);
$duplicate_image = xtc_db_fetch_array($duplicate_image_query);
if ($duplicate_image['total'] < 2) {
if (file_exists(DIR_FS_CATALOG_ORIGINAL_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_ORIGINAL_IMAGES . $Bilddatei);
}
if (file_exists(DIR_FS_CATALOG_THUMBNAIL_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_THUMBNAIL_IMAGES . $Bilddatei);
}
if (file_exists(DIR_FS_CATALOG_INFO_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_INFO_IMAGES . $Bilddatei);
}
if (file_exists(DIR_FS_CATALOG_POPUP_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_POPUP_IMAGES . $Bilddatei);
}
if (file_exists(DIR_FS_CATALOG_GALLERY_IMAGES . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_GALLERY_IMAGES . $Bilddatei);
}
$image_subdir = BIG_IMAGE_SUBDIR;
if (substr($image_subdir, -1) != '/') {
$image_subdir .= '/';
}
if (file_exists(DIR_FS_CATALOG_IMAGES . $image_subdir . $Bilddatei)) {
@unlink(DIR_FS_CATALOG_IMAGES . $image_subdir . $Bilddatei);
}
}
}
}
xtc_db_query("delete from " . TABLE_PRODUCTS_IMAGES . " where products_id = '$Artikel_ID'");
}
} else {
$exists = FALSE;
}
}
// sofern es kein Datensatz gibt, oder er ueberschrieben werden kann, weitermachen
if (!$exists || $ExportModus != 'NoOverwrite') {
// Array nur komplett fuellen, wenn ein Insert oder ein Komplettes Update
// durchgefuehrt wird (und nicht nur der Preis)
if (!$exists || $ExportModus == 'Overwrite') {
$sql_data_array = array(
'products_id' => $Artikel_ID,
'products_quantity' => $Artikel_Menge,
'products_shippingtime' => $Artikel_Lieferstatus,
'products_model' => $Artikel_Artikelnr,
'products_price' => $Artikel_Preis,
'products_weight' => $Artikel_Gewicht,
'products_ean' => $Artikel_EAN,
'products_status' => $Artikel_Status,
'products_tax_class_id' => $Artikel_Steuersatz,
'products_startpage' => $Artikel_Startseite,
'manufacturers_id' => $Hersteller_ID);
if (!$SkipImages) {
$sql_data_array['products_image'] = $Artikel_Bilddatei;
}
if (isset($post['Artikel_VPEValue'])) {
$sql_data_array['products_vpe_status'] = 1;
$sql_data_array['products_vpe_value'] = xtc_db_prepare_input($post['Artikel_VPEValue']);
}
if (isset($post['Artikel_Grundeinheit']) && isset($post['Artikel_Masseinheit'])) {
$vpe_name = xtc_db_prepare_input($post['Artikel_Grundeinheit']) . ' ' . xtc_db_prepare_input($post['Artikel_Masseinheit']);
$vpe_id = 0;
foreach ($Artikel_Texte as $i => $AText) {
if ($AText['L'] <> 0) {
$cmd = "select products_vpe_id from " . TABLE_PRODUCTS_VPE . " where products_vpe_name='" . $vpe_name . "' and " .
"language_id='" . $AText['L'] . "'";
$vpe_query = xtc_db_query($cmd);
if ($vpe = xtc_db_fetch_array($vpe_query)) {
$vpe_id = $vpe['products_vpe_id'];
} else {
if ($vpe_id == 0) {
$cmd = "select max(products_vpe_id) vpemax from " . TABLE_PRODUCTS_VPE;
$vpemax_query = xtc_db_query($cmd);
$vpemax = xtc_db_fetch_array($vpemax_query);
$vpe_id = $vpemax['vpemax'] + 1;
}
$vpe_data = array(
'products_vpe_id' => $vpe_id,
'products_vpe_name' => $vpe_name,
'language_id' => $AText['L']);
xtc_db_perform(TABLE_PRODUCTS_VPE, $vpe_data);
}
}
}
$sql_data_array['products_vpe'] = $vpe_id;
}
} else {
if ($ExportModus == 'PriceOnly') {
// nur der Preis wird geaendert
$sql_data_array = array(
'products_price' => $Artikel_Preis);
}
if ($ExportModus == 'QuantityOnly') {
// nur die Menge wird geaendert
$sql_data_array = array(
'products_quantity' => $Artikel_Menge);
}
if ($ExportModus == 'PriceAndQuantityOnly') {
// nur der Preis und die Menge wird geaendert
$sql_data_array = array(
'products_quantity' => $Artikel_Menge,
'products_price' => $Artikel_Preis);
}
}
if (!$exists) { // Neuanlage (ID wird an Amicron-Faktura zurueckgegeben !!!)
$mode = 'INSERTED';
$insert_sql_data = array('products_date_added' => $btime);
$sql_data_array = array_merge($sql_data_array, $insert_sql_data);
xtc_db_perform(TABLE_PRODUCTS, $sql_data_array);
$Artikel_ID = xtc_db_insert_id();
} elseif ($exists || ($ExportModus == 'Overwrite')) { //Update
$mode = 'UPDATED';
$update_sql_data = array('products_last_modified' => $btime);
$sql_data_array = array_merge($sql_data_array, $update_sql_data);
xtc_db_perform(TABLE_PRODUCTS, $sql_data_array, 'update', "products_id = '$Artikel_ID'");
}
// Details nur beschreiben, wenn Uebermodus oder Datensatz nicht da ist
if (!$exists || $ExportModus == 'Overwrite') {
foreach ($Artikel_Texte as $i => $AText) {
if ($AText['L'] <> 0) {
$sql_data_array = array(
'products_name' => $AText['B'],
'products_description' => $AText['T'],
'products_short_description' => $AText['S'],
'products_meta_title' => $AText['MT'],
'products_meta_description' => $AText['MD'],
'products_meta_keywords' => $AText['MK'],
'products_url' => $AText['URL']);
// Bestehende Daten laden
$cmd = "select products_id from " . TABLE_PRODUCTS_DESCRIPTION .
" where products_id='$Artikel_ID' and language_id='" . $AText['L'] . "'";
$desc_query = xtc_db_query($cmd);
if ($desc = xtc_db_fetch_array($desc_query)) {
xtc_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array, 'update', "products_id ='$Artikel_ID' and language_id = '" . $AText['L'] . "'");
} else {
$sql_data_array['products_id'] = $Artikel_ID;
$sql_data_array['language_id'] = $AText['L'];
xtc_db_perform(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array);
}
}
}
// Kategorien eintragen, alte Kategorien vorher entfernen
if (count($Artikel_Kategorien) > 0) {
$cmd = "delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where " . "products_id=$Artikel_ID";
xtc_db_query($cmd);
foreach ($Artikel_Kategorien as $i => $Kategorie_ID) {
$insert_sql_data = array(
'products_id' => $Artikel_ID,
'categories_id' => $Kategorie_ID);
xtc_db_perform(TABLE_PRODUCTS_TO_CATEGORIES, $insert_sql_data);
}
}
// Bilder laden
if (!$SkipImages) {
if (isset($post['Artikel_Bilddatei'])) {
$products_image = new upload('artikel_image');
$products_image->set_destination(DIR_FS_CATALOG . DIR_WS_ORIGINAL_IMAGES);
if ($products_image->parse()) {
$products_image->save();
}
$products_image_name = $products_image->filename;
if (file_exists(DIR_FS_CATALOG_GALLERY_IMAGES)) {
require(DIR_FS_DOCUMENT_ROOT . 'admin/includes/product_gallery_images.php');
}
// generate resampled images
require(DIR_FS_DOCUMENT_ROOT . 'admin/includes/product_thumbnail_images.php');
require(DIR_FS_DOCUMENT_ROOT . 'admin/includes/product_info_images.php');
require(DIR_FS_DOCUMENT_ROOT . 'admin/includes/product_popup_images.php');
}
if (isset($post['Artikel_Bilddateien'])) {
for ($i = 0; $i < (integer) ($post['Artikel_Bilddateien']); $i++) {
$products_image = new upload("artikel_images$i");
$products_image->set_destination(DIR_FS_CATALOG . DIR_WS_ORIGINAL_IMAGES);
if ($products_image->parse()) {
$products_image->save();
}
$products_image_name = $products_image->filename;
if (file_exists(DIR_FS_CATALOG_GALLERY_IMAGES)) {
require(DIR_FS_DOCUMENT_ROOT . 'admin/includes/product_gallery_images.php');
}
// generate resampled images
require(DIR_FS_DOCUMENT_ROOT . 'admin/includes/product_thumbnail_images.php');
require(DIR_FS_DOCUMENT_ROOT . 'admin/includes/product_info_images.php');
require(DIR_FS_DOCUMENT_ROOT . 'admin/includes/product_popup_images.php');
$insert_sql_data = array(
'products_id' => $Artikel_ID,
'image_nr' => $i + 1, // ab 1
'image_name' => $products_image_name);
xtc_db_perform(TABLE_PRODUCTS_IMAGES, $insert_sql_data);
}
}
} // Bilder laden
} // Overwrite
} // NoOverwrite
if (!$exists || $ExportModus == 'Overwrite' || $ExportModus == 'PriceOnly' || $ExportModus == 'PriceAndQuantityOnly') {
$cmd = "select distinct(customers_status_id) from " . TABLE_CUSTOMERS_STATUS;
$ss_query = xtc_db_query($cmd);
while ($ss = xtc_db_fetch_array($ss_query)) {
xtc_db_query("delete from " . TABLE_PERSONAL_OFFERS_BY . $ss['customers_status_id'] . " where products_id = '$Artikel_ID'");
}
foreach ($Artikel_Preise as $i => $APreis) {
$sql_data_array = array(
'products_id' => $Artikel_ID,
'quantity' => $APreis['M'],
'personal_offer' => $APreis['P']);
xtc_db_perform(TABLE_PERSONAL_OFFERS_BY . $APreis['G'], $sql_data_array);
}
}
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<STATUS>\n" .
" <STATUS_DATA>\n" .
" <MESSAGE>OK</MESSAGE>\n" .
" <MODE>$mode</MODE>\n" .
" <ID>$Artikel_ID</ID>\n" .
" <SCRIPT_VERSION_MAJOR>$version_major</SCRIPT_VERSION_MAJOR>\n" .
" <SCRIPT_VERSION_MINOR>$version_minor</SCRIPT_VERSION_MINOR>\n" .
" </STATUS_DATA>\n" .
"</STATUS>\n\n";
} // Ende WriteArtikel()
function xtc_remove_product($product_id) {
global $LangID;
$product_image_query = xtc_db_query("select products_image from " . TABLE_PRODUCTS . " where products_id = '" . xtc_db_input($product_id) . "'");
$product_image = xtc_db_fetch_array($product_image_query);
$duplicate_image_query = xtc_db_query("select count(*) as total from " . TABLE_PRODUCTS . " where products_image = '" . xtc_db_input($product_image['products_image']) . "'");
$duplicate_image = xtc_db_fetch_array($duplicate_image_query);
if ($duplicate_image['total'] < 2) {
if (file_exists(DIR_FS_CATALOG_POPUP_IMAGES . $product_image['products_image'])) {
@unlink(DIR_FS_CATALOG_POPUP_IMAGES . $product_image['products_image']);
}
// START CHANGES
$image_subdir = BIG_IMAGE_SUBDIR;
if (substr($image_subdir, -1) != '/')
$image_subdir .= '/';
if (file_exists(DIR_FS_CATALOG_IMAGES . $image_subdir . $product_image['products_image'])) {
@unlink(DIR_FS_CATALOG_IMAGES . $image_subdir . $product_image['products_image']);
}
// END CHANGES
}
xtc_db_query("delete from " . TABLE_SPECIALS . " where products_id = '" . xtc_db_input($product_id) . "'");
xtc_db_query("delete from " . TABLE_PRODUCTS . " where products_id = '" . xtc_db_input($product_id) . "'");
xtc_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = '" . xtc_db_input($product_id) . "'");
xtc_db_query("delete from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id = '" . xtc_db_input($product_id) . "'");
xtc_db_query("delete from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id = '" . xtc_db_input($product_id) . "'");
xtc_db_query("delete from " . TABLE_CUSTOMERS_BASKET . " where products_id = '" . xtc_db_input($product_id) . "'");
xtc_db_query("delete from " . TABLE_CUSTOMERS_BASKET_ATTRIBUTES . " where products_id = '" . xtc_db_input($product_id) . "'");
// get statuses
$customers_statuses_array = array(array());
$customers_statuses_query = xtc_db_query("select * from " . TABLE_CUSTOMERS_STATUS . " where language_id = '" . $LangID . "' order by customers_status_id");
while ($customers_statuses = xtc_db_fetch_array($customers_statuses_query)) {
$customers_statuses_array[] = array('id' => $customers_statuses['customers_status_id'],
'text' => $customers_statuses['customers_status_name']);
}
for ($i = 0, $n = sizeof($customers_statuses_array); $i < $n; $i++) {
xtc_db_query("delete from personal_offers_by_customers_status_" . $i . " where products_id = '" . xtc_db_input($product_id) . "'");
}
$product_reviews_query = xtc_db_query("select reviews_id from " . TABLE_REVIEWS . " where products_id = '" . xtc_db_input($product_id) . "'");
while ($product_reviews = xtc_db_fetch_array($product_reviews_query)) {
xtc_db_query("delete from " . TABLE_REVIEWS_DESCRIPTION . " where reviews_id = '" . $product_reviews['reviews_id'] . "'");
}
xtc_db_query("delete from " . TABLE_REVIEWS . " where products_id = '" . xtc_db_input($product_id) . "'");
} // Ende xtc_remove Product()
function DeleteArtikel() {
global $action, $version_major, $version_minor;
$Artikel_ID = (integer) (xtc_db_prepare_input($_POST['Artikel_ID']));
// xtc_db_query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES .
// " where products_id='" . $Artikel_ID . "'");
xtc_remove_product($Artikel_ID);
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<STATUS>\n" .
" <STATUS_DATA>\n" .
" <MESSAGE>OK</MESSAGE>\n" .
" <SCRIPT_VERSION_MAJOR>$version_major</SCRIPT_VERSION_MAJOR>\n" .
" <SCRIPT_VERSION_MINOR>$version_minor</SCRIPT_VERSION_MINOR>\n" .
" </STATUS_DATA>\n" .
"</STATUS>\n\n";
} // Ende DeleteArtikel()
function WriteCategorie() {
global $action, $version_major, $version_minor, $post;
$btime = aftime();
$Kategorie_ID = (integer) ($post['Artikel_Kategorie_ID']);
$Kategorie_Vater_ID = (integer) (xtc_db_prepare_input($post['Kategorie_Vater_ID']));
$Kategorie_Names = array(
1 => array(
'N' => xtc_db_prepare_input($post['Kategorie_Name1']),
'L' => (integer) (xtc_db_prepare_input($post['Kategorie_NameLanguage1']))),
2 => array(
'N' => xtc_db_prepare_input($post['Kategorie_Name2']),
'L' => (integer) (xtc_db_prepare_input($post['Kategorie_NameLanguage2']))),
3 => array(
'N' => xtc_db_prepare_input($post['Kategorie_Name3']),
'L' => (integer) (xtc_db_prepare_input($post['Kategorie_NameLanguage3']))),
4 => array(
'N' => xtc_db_prepare_input($post['Kategorie_Name4']),
'L' => (integer) (xtc_db_prepare_input($post['Kategorie_NameLanguage4'])))
);
$exists = FALSE;
if ($Kategorie_ID != 0) {
$cmd = "select categories_id from " . TABLE_CATEGORIES . " where categories_id='" . $Kategorie_ID . "'";
$cat_query = xtc_db_query($cmd);
if ($cat = xtc_db_fetch_array($cat_query)) {
$exists = TRUE;
}
}
if (!$exists) {
// Kategorie erzeugen und ID ermitteln
$insert_sql_data = array('parent_id' => $Kategorie_Vater_ID,
'categories_status' => 1,
'date_added' => $btime,
'categories_template' => 'default',
'listing_template' => 'default',
'products_sorting' => 'p.products_price',
'products_sorting2' => 'ASC'
);
xtc_db_perform(TABLE_CATEGORIES, $insert_sql_data);
$Kategorie_ID = xtc_db_insert_id();
}
// Dateinamen aus der ID und der ueberlieferten Extension zusammensetzen, sofern Bild mitgeliefert
// wird
if (isset($post['Kategorie_Bildextension'])) {
$Kategorie_Bildextension = xtc_db_prepare_input($post['Kategorie_Bildextension']);
$filename = "cat" . $Kategorie_ID . $Kategorie_Bildextension;
$categories_image = new upload('Kategorie_image');
$categories_image->set_destination(DIR_FS_CATALOG . DIR_WS_IMAGES . 'categories/');
if ($categories_image->parse()) {
$categories_image->set_filename($filename);
$categories_image->save();
}
$sql_data_array = array('categories_image' => $filename);
xtc_db_perform(TABLE_CATEGORIES, $sql_data_array, 'update', "categories_id='$Kategorie_ID'");
}
// Namen eintragen
foreach ($Kategorie_Names as $i => $KName) {
if ($KName['L'] <> 0) {
// Bestehende Daten pruefen
$cmd = "select categories_id from " . TABLE_CATEGORIES_DESCRIPTION .
" where categories_id='$Kategorie_ID' and language_id='" . $KName['L'] . "'";
$desc_query = xtc_db_query($cmd);
$text = htmlspecialchars($KName['N']);
if ($desc = xtc_db_fetch_array($desc_query)) {
$sql_data_array = array('categories_name' => $KName['N']);
xtc_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array, 'update', "categories_id='$Kategorie_ID' and language_id = '" . $KName['L'] . "'");
} else {
$sql_data_array = array('categories_id' => $Kategorie_ID,
'language_id' => $KName['L'],
'categories_name' => $KName['N'],
'categories_heading_title' => $KName['N']
);
xtc_db_perform(TABLE_CATEGORIES_DESCRIPTION, $sql_data_array);
}
}
}
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<STATUS>\n" .
" <STATUS_DATA>\n" .
" <MESSAGE>OK</MESSAGE>\n" .
" <ID>$Kategorie_ID</ID>\n" .
" <SCRIPT_VERSION_MAJOR>$version_major</SCRIPT_VERSION_MAJOR>\n" .
" <SCRIPT_VERSION_MINOR>$version_minor</SCRIPT_VERSION_MINOR>\n" .
" </STATUS_DATA>\n" .
"</STATUS>\n\n";
} // Ende writeCategory()
function ReadArtikel() {
global $action, $LangID;
$SkipImages = (bool) (xtc_db_prepare_input($_GET['SkipImages']));
$cmd = "select * from " . TABLE_PRODUCTS;
if (isset($_GET['AbDatum'])) {
$cmd .= " where products_last_modified>='" . (xtc_db_prepare_input($_GET['AbDatum'])) . "'";
}
$HasLimit = (isset($_GET['LimitOffset']) && isset($_GET['LimitRowCount']));
if ($HasLimit) {
$cmd .= " limit " . (integer) (xtc_db_prepare_input($_GET['LimitOffset'])) . ', ' .
(integer) (xtc_db_prepare_input($_GET['LimitRowCount']));
}
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<ARTIKEL";
if ($HasLimit) {
echo ' WithLimit="True"';
}
echo ">\n";
$artikel_query = xtc_db_query($cmd);
while ($artikel = xtc_db_fetch_array($artikel_query)) {
// Bild auslesen, wenn vorhanden
$bildname = $artikel['products_image'];
$bild = '';
if ($bildname != '' && !$SkipImages && file_exists(DIR_FS_CATALOG . DIR_WS_ORIGINAL_IMAGES . $bildname) && $bildname != 'no_picture.gif') {
$bild = @implode("", @file(DIR_FS_CATALOG . DIR_WS_ORIGINAL_IMAGES . $bildname));
}
echo "<ARTIKEL_DATA>\n" .
" <ID>$artikel[products_id]</ID>\n" .
" <ARTIKELNR>" . (htmlspecialchars($artikel['products_model'])) . "</ARTIKELNR>\n" .
" <TEXTE>\n";
$cmd = "select language_id, products_name, products_description, products_short_description, products_meta_title," .
" products_meta_description, products_meta_keywords, products_url from " . TABLE_PRODUCTS_DESCRIPTION .
" where products_id=" . $artikel['products_id'];
$texte_query = xtc_db_query($cmd);
while ($texte = xtc_db_fetch_array($texte_query)) {
echo " <TEXT>\n" .
" <LANGUAGEID>$texte[language_id]</LANGUAGEID>\n" .
" <NAME>" . htmlspecialchars($texte['products_name']) . "</NAME>\n" .
" <DESCRIPTION>" . encode_htmlspecialchars($texte['products_description']) . "</DESCRIPTION>\n" .
" <SHORTDESCRIPTION>" . encode_htmlspecialchars($texte['products_short_description']) . "</SHORTDESCRIPTION>\n" .
" <METATITLE>" . htmlspecialchars($texte['products_meta_title']) . "</METATITLE>\n" .
" <METADESCRIPTION>" . htmlspecialchars($texte['products_meta_description']) . "</METADESCRIPTION>\n" .
" <METAKEYWORDS>" . htmlspecialchars($texte['products_meta_keywords']) . "</METAKEYWORDS>\n" .
" <URL>" . htmlspecialchars($texte['products_url']) . "</URL>\n" .
" </TEXT>\n";
}
echo " </TEXTE>\n" .
" <PREISE>\n";
$cmd = "select distinct(customers_status_id) from " . TABLE_CUSTOMERS_STATUS;
$ss_query = xtc_db_query($cmd);
while ($ss = xtc_db_fetch_array($ss_query)) {
$cmd = "select quantity, personal_offer from " . TABLE_PERSONAL_OFFERS_BY . $ss['customers_status_id'] .
" where products_id=" . $artikel['products_id'];
$preise_query = xtc_db_query($cmd);
while ($preise = xtc_db_fetch_array($preise_query)) {
echo " <PREIS>\n" .
" <GRUPPE>$ss[customers_status_id]</GRUPPE>\n" .
" <MENGE>" . $preise['quantity'] . "</MENGE>\n" .
" <PREIS>$preise[personal_offer]</PREIS>\n" .
" </PREIS>\n";
}
}
echo " </PREISE>\n" .
" <GEWICHT>$artikel[products_weight]</GEWICHT>\n" .
" <EAN>" . $artikel['products_ean'] . "</EAN>\n" .
" <PREIS>$artikel[products_price]</PREIS>\n" .
" <MENGE>$artikel[products_quantity]</MENGE>\n" .
" <STATUS>$artikel[products_status]</STATUS>\n" .
" <STEUERSATZ>$artikel[products_tax_class_id]</STEUERSATZ>\n" .
" <HERSTELLER_ID>$artikel[manufacturers_id]</HERSTELLER_ID>\n" .
" <KATEGORIEN>\n";
$cmd = "select categories_id from " . TABLE_PRODUCTS_TO_CATEGORIES . " where products_id = $artikel[products_id]";
$cat_query = xtc_db_query($cmd);
while ($cat = xtc_db_fetch_array($cat_query)) {
echo " <KATEGORIE>$cat[categories_id]</KATEGORIE>\n";
}
echo " </KATEGORIEN>\n" .
" <BILDDATEI>" . htmlspecialchars($artikel['products_image']) . "</BILDDATEI>\n" .
" <BILD>" . base64_encode($bild) . "</BILD>\n" .
" <IMAGES>\n";
$lastbild = $bild;
if (!$SkipImages) {
$cmd = "select image_name from " . TABLE_PRODUCTS_IMAGES .
" where products_id=" . $artikel['products_id'];
$images_query = xtc_db_query($cmd);
while ($images = xtc_db_fetch_array($images_query)) {
$bildname = $images['image_name'];
$bild = '';
if ($bildname != '' && file_exists(DIR_FS_CATALOG . DIR_WS_ORIGINAL_IMAGES . $bildname) && $bildname != 'no_picture.gif') {
$bild = @implode("", @file(DIR_FS_CATALOG . DIR_WS_ORIGINAL_IMAGES . $bildname));
}
if ($bild != $lastbild) {
echo " <IMAGE>\n" .
" <NAME>" . htmlspecialchars($bildname) . "</NAME>\n" .
" <BILD>" . base64_encode($bild) . "</BILD>\n" .
" </IMAGE>\n";
$lastbild = $bild;
}
}
}
echo " </IMAGES>\n";
$cmd = "select shipping_status_name from " . TABLE_SHIPPING_STATUS . ", " . TABLE_PRODUCTS
. " where shipping_status_id = products_shippingtime"
. " AND products_id = $artikel[products_id] "
. "AND language_id = $LangID";
$shipping_time_query = xtc_db_query($cmd);
$shipping_time = xtc_db_fetch_array($shipping_time_query);
echo " <LIEFERSTATUSTEXT>" . htmlspecialchars($shipping_time['shipping_status_name']) . "</LIEFERSTATUSTEXT>\n" .
" <STARTSEITE>$artikel[products_startpage]</STARTSEITE>\n";
if ($artikel['products_vpe_status'] == 1) {
echo " <VPEValue>$artikel[products_vpe_value]</VPEValue>";
}
if ($artikel['products_vpe'] != 0) {
$cmd = "select products_vpe_name from " . TABLE_PRODUCTS_VPE . " where products_vpe_id='" . $artikel['products_vpe'] . "'";
$vpe_query = xtc_db_query($cmd);
if ($vpe = xtc_db_fetch_array($vpe_query)) {
echo " <VPEName>" . htmlspecialchars($vpe['products_vpe_name']) . "</VPEName>";
}
}
echo "</ARTIKEL_DATA>\n";
}
echo "</ARTIKEL>\n";
} // Ende ReadArtikel()
function ReadShopData() {
global $action, $LangID;
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<SHOPDATA>\n" .
" <TAXRATES>\n";
$cmd = "select tax_class_id,tax_rate from " . TABLE_TAX_RATES . " WHERE tax_zone_id =5";
$tax_query = xtc_db_query($cmd);
while ($tax = xtc_db_fetch_array($tax_query)) {
echo " <TAX>\n" .
" <ID>$tax[tax_class_id]</ID>\n" .
" <RATE>$tax[tax_rate]</RATE>\n" .
" </TAX>\n";
}
echo " </TAXRATES>\n" .
"<SHIPPINGSTATUS>\n";
$cmd = "select shipping_status_id, language_id, shipping_status_name from " . TABLE_SHIPPING_STATUS . " WHERE language_id = '2'";
$ss_query = xtc_db_query($cmd);
while ($ss = xtc_db_fetch_array($ss_query)) {
echo " <SHIPPINGSTATUS_DATA>\n" .
" <ID>$ss[shipping_status_id]</ID>\n" .
" <LANGUAGEID>$ss[language_id]</LANGUAGEID>\n" .
" <NAME>" . htmlspecialchars($ss['shipping_status_name']) . "</NAME>\n" .
" </SHIPPINGSTATUS_DATA>\n";
}
echo "</SHIPPINGSTATUS>\n" .
"<CUSTOMERSSTATUS>\n";
$cmd = "select customers_status_id, language_id, customers_status_name from " . TABLE_CUSTOMERS_STATUS . " WHERE language_id = '2'";
$ss_query = xtc_db_query($cmd);
while ($ss = xtc_db_fetch_array($ss_query)) {
echo " <CUSTOMERSSTATUS_DATA>\n" .
" <ID>$ss[customers_status_id]</ID>\n" .
" <LANGUAGEID>$ss[language_id]</LANGUAGEID>\n" .
" <NAME>" . htmlspecialchars($ss['customers_status_name']) . "</NAME>\n" .
" </CUSTOMERSSTATUS_DATA>\n";
}
echo "</CUSTOMERSSTATUS>\n" .
"</SHOPDATA>\n";
} // Ende ReadShopData()
function ReadHersteller() {
global $action;
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<MANUFACTURERS>\n";
$cmd = "select manufacturers_id,manufacturers_name from " . TABLE_MANUFACTURERS;
$manufacturers_query = xtc_db_query($cmd);
while ($manufacturers = xtc_db_fetch_array($manufacturers_query)) {
echo " <MANUFACTURERS_DATA>\n" .
" <ID>$manufacturers[manufacturers_id]</ID>\n" .
" <NAME>" . htmlspecialchars($manufacturers["manufacturers_name"]) . "</NAME>\n" .
" </MANUFACTURERS_DATA>\n";
}
echo "</MANUFACTURERS>\n";
} // EndeReadHersteller()
function WriteHersteller() {
global $action, $version_major, $version_minor, $post;
$btime = aftime();
$Hersteller_Name = xtc_db_prepare_input($post['Hersteller_Name']);
$cmd = "select manufacturers_id,manufacturers_name from " . TABLE_MANUFACTURERS .
" where manufacturers_name='$Hersteller_Name'";
$manufacturers_query = xtc_db_query($cmd);
if ($manufacturers = xtc_db_fetch_array($manufacturers_query)) {
$Hersteller_ID = $manufacturers['manufacturers_id'];
} else {
$insert_sql_data = array('manufacturers_name' => $Hersteller_Name,
'date_added' => $btime);
xtc_db_perform(TABLE_MANUFACTURERS, $insert_sql_data);
$Hersteller_ID = xtc_db_insert_id();
}
echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" .
"<STATUS>\n" .
" <STATUS_DATA>\n" .
" <MESSAGE>OK</MESSAGE>\n" .
" <ID>$Hersteller_ID</ID>\n" .
" <SCRIPT_VERSION_MAJOR>$version_major</SCRIPT_VERSION_MAJOR>\n" .
" <SCRIPT_VERSION_MINOR>$version_minor</SCRIPT_VERSION_MINOR>\n" .
" </STATUS_DATA>\n" .
"</STATUS>\n\n";
} // Ende WriteHersteller()
//county code abfragen CJ
function xtc_get_county_code($country_name) {
$zone_query = xtc_db_query("select zone_code from " . TABLE_ZONES . " where zone_name = '" . $country_name . "'");
$zone = xtc_db_fetch_array($zone_query);
return $zone['zone_code'];
} // Ende xtc_get_county_code()
function aftime() {
return date('Y-m-d H:i:s', time());
} // Ende aftime
function get_tmodul_tax($order, $res) {
$module = array(array('name' => 'ot_cod_fee', 'prefix' => '0'),
array('name' => 'ot_loworderfee', 'prefix' => '0'),
array('name' => 'ot_ps_fee', 'prefix' => '0'),
array('name' => 'ot_coupon', 'prefix' => '0'),
array('name' => 'ot_gv', 'prefix' => '0')
);
foreach ($order->totals as $key => $value) {
$k = array_search($value['class'], array_column($module, 'name'));
if (is_numeric($k)) {
if (file_exists(DIR_WS_MODULES . 'order_total/' . $value['class'] . '.php')) {
require_once (DIR_WS_MODULES . 'order_total/' . $value['class'] . '.php');
}
$total_name = str_replace('ot_', '', $value['class']);
$mTaxRate = xtc_get_tax_rate(constant(strtoupper('MODULE_ORDER _TOTAL_' . $total_name . '_TAX_CLASS')), $res['zone_country_id'], $res['geo_zone_id']);
$order->totals[$key]['tax'] = $mTaxRate;
$order->totals[$key]['prefix'] = $module[$k]['prefix'];
unset($k);
}
}
return $order->totals;
} // Ende get_tmodul_tax()
function get_shipping($shipping_class, $language, $res) {
$shipping_class_array = explode('_', $shipping_class);
$shipping_class = $shipping_class_array[0];
$shipping_method = $shipping_class;
if (file_exists(DIR_FS_CATALOG . 'lang/' . $language . '/modules/shipping/' . $shipping_class . '.php')) {
include(DIR_FS_CATALOG . 'lang/' . $language . '/modules/shipping/' . $shipping_class . '.php');
$shipping_method = constant(strtoupper('MODULE_SHIPPING_' . $shipping_class . '_TEXT_TITLE'));
// MODULE_SHIPPING_FLAT_TAX_CLASS
$cmd = "select * from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_SHIPPING_" . $shipping_class . "_TAX_CLASS'";
$shipping_query = xtc_db_query($cmd);
if ($shipping = xtc_db_fetch_array($shipping_query)) {
$shipping_tax_class = $shipping['configuration_value'];
$tax_rate = xtc_get_tax_rate(constant(strtoupper('MODULE_SHIPP ING_' . $shipping_class . '_TAX_CLASS')), $res['zone_country_id'], $res['geo_zone_id']);
}
$shipping_array = array('class' => $shipping_class,
'method' => $shipping_method,
'tax_rate' => $tax_rate
);
}
return $shipping_array;
} // Ende get_shipping()
function get_sepa($payment_method, $res) {
$cmd = "select * from banktransfer where orders_id = {$res['oID']}";
$query = xtc_db_query($cmd);
if ($pbanktr = xtc_db_fetch_array($query)) {
$payment_array = array('banktransfer_owner' => $pbanktr['banktransfer_owner'],
'banktransfer_bankname' => $pbanktr['banktransfer_bankname'],
'banktransfer_iban' => $pbanktr['banktransfer_iban'],
'banktransfer_bic' => $pbanktr['banktransfer_bic']
);
return $payment_array;
}
} // Ende get_sepa()
function get_payment($payment_method, $language, $res) {
$payment_array = array();
$payment_class = $payment_method;
if (file_exists(DIR_FS_CATALOG . 'lang/' . $language . '/modules/payment/' . $payment_method . '.php')) {
require_once (DIR_FS_CATALOG . 'lang/' . $language . '/modules/payment/' . $payment_method . '.php');
$payment_method = constant(strtoupper('MODULE_PAYMENT_' . $payment_class . '_TEXT_TITLE'));
if ($payment_class == 'cod') {
$payment_class = 'cod_fee';
}
if (substr($payment_class, 0, 6) == 'paypal') {
$cmd = "select * from paypal_ipn "
. "where orders_id = '{$res['oID']}'";
$query = xtc_db_query($cmd);
if ($ppaypal = xtc_db_fetch_array($query)) {
$payment_array['transaction_id'] = $ppaypal['transaction_id'];
$payment_array['payment_status'] = $ppaypal['payment_status'];
}
}
$payment_array['method'] = $payment_method;
$payment_array['class'] = $payment_class;
//'code' => $code
}
return $payment_array;
} // Ende get_payment()
function get_tracking($order) {
$oID = $order->info['orders_id'];
$cmd = "Select max(ot.tracking_id) as tracking_id, ot.orders_id, ot.parcel_id, c.carrier_name from " . TABLE_ORDERS_TRACKING . " ot, " . TABLE_CARRIERS . " c "
. "where ot.carrier_id = c.carrier_id and ot.orders_id = '{$oID}'";
$query = xtc_db_query($cmd);
$res = xtc_db_fetch_array($query);
if (!$res['tracking_id']) {
return false;
} else {
$order->tracking = array();
$order->tracking['carrier_name'] = $res['carrier_name'];
$order->tracking['parcel_id'] = $res['parcel_id'];
return $order->tracking;
}
} // Ende get_tracking()
function CheckLogin($user, $password) {
require_once (DIR_FS_INC . 'xtc_validate_password.inc.php');
require_once(DIR_FS_INC . 'xtc_not_null.inc.php');
$ok = FALSE;
$check_customer_query = xtc_db_query('SELECT customers_id,customers_password,customers_email_ad dress
FROM ' . TABLE_CUSTOMERS . '
WHERE customers_email_address = "' . xtc_db_input($user) . '"
AND customers_status = 0');
$check_customer = xtc_db_fetch_array($check_customer_query);
if (!xtc_validate_password(xtc_db_input($password), $check_customer['customers_password'], $check_customer['customers_id'])) {
die('Login Anfrage fehlgeschlagen');
echo "\nZugriff verweigert. E-Mail und/oder Passwort falsch!";
} else {
$ok = TRUE;
return $ok;
}
} // Ende CheckLogin()
?>
Kommentar