Jump to content
xt:Commerce Community Forum

flavor

Members
  • Content Count

    393
  • Joined

  • Last visited

About flavor

  • Rank
    Erfahrener Benutzer

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Moin! Ich benötige eine kleine Hilfestellung. In der 4er Version waren in der Bestätigungsmail die Artikelauslistungen abwechselnd farbig gestaltet um diese besser lesen zu können. In der 5er ist das leider nicht mehr der Fall. Gibt es eine Möglichkeit das einfach zu lösen, PHP oder CSS? Die aktuelle send_order sieht so aus: {include file="file:$_system_root_templates/email/email_top.html"} <!-- // Begin Content \\ --> <table class="email-content" cellpadding="0" cellspacing="0" width="660" style="font: 12px Arial, Helvetica, sans-serif;color: #484848;"> <tr> <td colspan="6" class="left" align="left"> <h1 style="font-size:14px;">Ihre Bestellung zur Kontrolle</h1> Hallo {$order_data.delivery_firstname} {$order_data.delivery_lastname},<br /><br /> vielen Dank f&uuml;r Ihre Bestellung in unserem Online Shop.</td> </tr> <tr> <td colspan="6"><br /></td> </tr> <tr> <td colspan="3" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_ORDER_NUMBER}</h2> {$order_data.orders_id} </td> <td colspan="3" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_ORDER_DATE}</h2> {$order_data.date_purchased} </td> </tr> <tr> <td colspan="6"><br /></td> </tr> <tr> <td colspan="3" align="left"> <h2 style="font-size:12px;">{if $order_data.customers_cid}{txt key=TEXT_CUSTOMER_ID}</h2> {$order_data.customers_cid}{/if} </td> <td colspan="3" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_EMAIL}</h2> {$order_data.customers_email_address} </td> </tr> <tr> <td colspan="6"><br /></td> </tr> <tr> <td colspan="3" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_SHIPPING_ADDRESS}</h2> {if $order_data.delivery_company}{$order_data.delivery_company}<br />{/if} {if $order_data.delivery_company_2}{$order_data.delivery_company_2}<br />{/if} {if $order_data.delivery_company_3}{$order_data.delivery_company_3}<br />{/if} {$order_data.delivery_firstname} {$order_data.delivery_lastname}<br /> {$order_data.delivery_street_address}<br /> {if $order_data.delivery_suburb}{$order_data.delivery_suburb}<br />{/if} {$order_data.delivery_postcode} {$order_data.delivery_city}<br /> {if $order_data.delivery_state}{$order_data.delivery_state}<br />{/if} {$order_data.delivery_country}<br /> {if $order_data.delivery_phone OR $order_data.delivery_mobile_phone OR $order_data.delivery_fax}<br />{/if} {if $order_data.delivery_phone}{txt key=TEXT_PHONE} {$order_data.delivery_phone}<br />{/if} {if $order_data.delivery_mobile_phone}{txt key=TEXT_MOBILE_PHONE} {$order_data.delivery_mobile_phone}<br />{/if} {if $order_data.delivery_fax}{txt key=TEXT_FAX} {$order_data.delivery_fax}<br />{/if} </td> <td colspan="3" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_PAYMENT_ADDRESS}</h2> {if $order_data.billing_company}{$order_data.billing_company}<br />{/if} {if $order_data.billing_company_2}{$order_data.billing_company_2}<br />{/if} {if $order_data.billing_company_3}{$order_data.billing_company_3}<br />{/if} {$order_data.billing_firstname} {$order_data.billing_lastname}<br /> {$order_data.billing_street_address}<br /> {if $order_data.billing_suburb}{$order_data.billing_suburb}<br />{/if} {$order_data.billing_postcode} {$order_data.billing_city}<br /> {if $order_data.billing_state}{$order_data.billing_state}<br />{/if} {$order_data.billing_country}<br /> {if $order_data.billing_phone OR $order_data.billing_mobile_phone OR $order_data.billing_fax}<br />{/if} {if $order_data.billing_phone}{txt key=TEXT_PHONE} {$order_data.billing_phone}<br />{/if} {if $order_data.billing_mobile_phone}{txt key=TEXT_MOBILE_PHONE} {$order_data.billing_mobile_phone}<br />{/if} {if $order_data.billing_fax}{txt key=TEXT_FAX} {$order_data.billing_fax}<br />{/if} </td> </tr> <tr> <td colspan="6"><br /></td> </tr> <tr> <td colspan="3" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_SHIPPING_METHOD}</h2> {$order_data.shipping_code} </td> <td colspan="3" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_PAYMENT_METHOD}</h2> {$order_data.payment_name} {if $order_data.bank_details} <br /> {txt key='TEXT_BANK_DETAILS'}<br /> {foreach from=$order_data.bank_details item=bd} {txt key='TEXT_BAD_ACCOUNT_NAME'}: {$bd.bad_account_name}<br /> {txt key='TEXT_BAD_BANK_IDENTIFIER_CODE'}: {$bd.bad_bank_identifier_code}<br /> {txt key='TEXT_BAD_DUE_DATE'}: {$bd.bad_due_date}<br /> {txt key='TEXT_BAD_INTERNATIONAL_BANK_ACCOUNT_NUMBER'}: {$bd.bad_international_bank_account_number}<br /> {txt key='TEXT_BAD_REFERENCE_NUMBER'}: {$bd.bad_reference_number} {/foreach} {/if} </td> </tr> <tr> <td colspan="6"><br /></td> </tr> {if $shipping_info_html} <tr> <td colspan="6" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_SHIPPING_INFOS}</h2> {$shipping_info_html} </td> </tr> <tr> <td colspan="6"><br /></td> </tr> {/if} {if $payment_info_html} <tr> <td colspan="6" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_PAYMENT_INFOS}</h2> {$payment_info_html} </td> </tr> <tr> <td colspan="6"><br /></td> </tr> {/if} {if $order_data.comments} <tr> <td colspan="6" align="left"> <h2 style="font-size:12px;">{txt key=TEXT_COMMENTS}</h2> {$order_data.comments} </td> </tr> <tr> <td colspan="6"><br /></td> </tr> {/if} <tr> <td colspan="6" align="left"> <h2 style="font-size:12px;">Ihre Bestellung</h2> </td> </tr> <tr> <td align="left" class="left bold myfont" style="font-weight:bold;">{txt key=TEXT_QTY}</td> <td align="left" class="left bold" style="font-weight:bold;">{txt key=TEXT_ARTICLE}</td> <td align="left" class="left bold" style="font-weight:bold;">{txt key=TEXT_PRODUCTS_MODEL}</td> <td align="right" class="right bold" style="font-weight:bold;">{txt key=TEXT_SINGLE_PRICE}</td> <td align="right" class="right bold" style="font-weight:bold;">{txt key=TEXT_PRODUCTS_DISCOUNT}</td> <td align="right" class="right bold" style="font-weight:bold;">{txt key=TEXT_TOTAL_PRICE}</td> </tr> <tr> <td colspan="6"><br /></td> </tr> {foreach name=aussen item=order_values from=$order_products} <tr class="order-products"> <td align="left" class="left">{$order_values.products_quantity} x</td> <td align="left" class="left">{$order_values.products_name}</td> <td align="left" class="left">{$order_values.products_model}</td> <td align="right" class="right">{$order_values.products_price.formated}</td> <td align="right" class="right">{if $order_values.products_discount != ""}{$order_values.products_discount}%{else}-{/if}</td> <td align="right" class="right">{$order_values.products_final_price.formated}</td> </tr> <tr> <td colspan="6"><br /></td> </tr> {$order_values.products_information.html_content} {/foreach} <tr class="order-subtotal"> <td colspan="4"></td> <td align="right" class="right bold" style="font-weight:bold;">{txt key=TEXT_SUB_TOTAL}:</td> <td align="right" class="right">{$total.product_total.formated}</td> </tr> <tr> <td colspan="6"><br /></td> </tr> {foreach name=aussen item=order_total_values from=$order_total_data} <tr class="order-shipping" > <td colspan="4"></td> <td align="right" class="right">{$order_total_values.orders_total_name}:</td> <td align="right" class="right">{$order_total_values.orders_total_price.formated}</td> </tr> {/foreach} {foreach name=aussen item=tax_data from=$total.total_tax} <tr class="order-tax"> <td colspan="4"></td> <td align="right" class="right">MwSt. {$tax_data.tax_key}%:</td> <td align="right" class="right">{$tax_data.tax_value.formated}</td> </tr> {/foreach} <tr> <td colspan="6"><br /></td> </tr> <tr class="order-total"> <td colspan="4"></td> <td align="right" class="right bold" style="font-weight:bold;">{txt key=TEXT_TOTAL}:</td> <td align="right" class="right">{$total.total.formated}</td> </tr> {hook key=email_send_order_rows_bottom} </table> <!-- // End Content \\ --> {include file="file:$_system_root_templates/email/email_bottom.html"}
  2. Moin! Wenn ich den Code von Google für die Google Kundenrezensionen in die subpage_success.html eingebe bekomme ich eine weiße Seite. Ich habe es auch schon mit {block name='frontend_index_header_javascript_jquery'} , {$smarty.block.parent} , {literal} versucht. Kein Erfolg. Hat jemand eine Idee? <script src="https://apis.google.com/js/platform.js?onload=renderOptIn" async defer></script> <script> window.renderOptIn = function() { window.gapi.load('surveyoptin', function() { window.gapi.surveyoptin.render( { "merchant_id": XXXXXX, "order_id": "ORDER_ID", "email": "CUSTOMER_EMAIL", "delivery_country": "COUNTRY_CODE", "estimated_delivery_date": "YYYY-MM-DD" }); }); } </script>
  3. liegt wohl an den Zeichen die ich benutze. "=!= usw.. Somit kann ich mich nicht über das Backend einloggen, aber mit der WAWI gehts. ein einfacheres Passwort funktioniert. Sind jetzt einige Sonderzeichen verboten? Ich habe gerade in der Anleitung gesehen dass unter andrem das Sonderzeichen ! verboten ist. Vor dem Update hatte das Shopsystem kein Problem damit. Egal, ist für mich erledigt. Darauf könnte man ja bei der Passworterstellung hingewiesen werden um unnötige Zeit zu verschwenden.
  4. Nach dem Sicherheitsupdate konnte ich mich nicht mehr ins Backend einloggen. Mit der "Passwort vergessen" Funktion ging es dann. ABER! Neues Passwort vergeben geht nicht mehr, bzw. man kann sich dann wieder nicht einloggen mit dem neu vergebenen Passwort.
  5. Danke für die Antworten. Wie hat sich den die ganze Struktur von XTC 5 zu XTC 4 geändert. Ich meine, werde ich meine WAWI Schnittstelle irgendwie anpassen müssen? Siehe Anhang: <?php // Standard-Defines define('_VALID_CALL', 'true'); define('CHARSET', 'iso-8859-1'); // Skriptversion $version_major = 4; $version_minor = 1; $version_datum = 'Mai 2016'; // Benötigte Konfigurationsdateien require_once("../conf/config.php"); require_once("../conf/database.php"); require_once("../conf/paths.php"); // POST / GET auslesen if (isset($_POST['action'])) { $aktion = $_POST['action']; } else { $aktion = $_GET['action']; } if (isset($_POST['user'])) { $user = $_POST['user']; } else { $user = $_GET['user']; } if (isset($_POST['password'])) { $password = $_POST['password']; } else { $password = $_GET['password']; } // XML-Header erzeugen header("Last-Modified:" . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); header("Content-type: text/xml"); // Debug aktiv? //if ($_GET['Debug']=="Y") { ShowDebug(); exit; } // DB-Verbindung herstellen, // Authentifizierung und Autorisierung durchführen if (($mysqli = db_connect()) && login($user, $password)) { // Aufgerufene Aktion ausführen switch ($aktion) { case 'read_shopdata': // Allgemeine Shopdaten auslesen readShopdata(); exit; case 'read_languages': // Sprachen auslesen readLanguages(); exit; case 'read_hersteller': // Hersteller auslesen readHersteller(); exit; case 'read_categories': // Kategorien auslesen readCategories(); exit; case 'read_artikel': // Artikeldaten auslesen readArtikel(); exit; case 'write_categorie': // Kategorie schreiben writeCategorie(); exit; case 'write_artikel': // Artikel schreiben writeArtikel(); exit; case 'write_hersteller': // Hersteller schreiben WriteHersteller(); exit; case 'delete_artikel': // Artikel löschen deleteArtikel((integer) ($_POST['Artikel_ID'])); exit; case 'orders_export': // Bestellungen abrufen ordersExport(); exit; case 'order_update': // Bestellstatus ändern orderUpdate(); exit; default: // Default: Versionsinfo ReadVersion(); exit; } $mysqli->close(); } else { ReadVersion(); } // - - - Versionsinfo - - - function ReadVersion() { global $action, $version_datum, $version_major, $version_minor, $n; 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_DATE>$version_datum</SCRIPT_DATE>" . $n . " <SCRIPT_DEFAULTCHARSET>" . htmlspecialchars(ini_get('default_charset'), NULL, '') . "</SCRIPT_DEFAULTCHARSET>" . $n . " </STATUS_DATA>" . $n . "</STATUS>" . $n . $n; } // - - - Shopdaten auslesen - - - function readShopData() { global $n, $hk, $mysqli; $cmd = "SELECT languages_id, code FROM " . TABLE_LANGUAGES . " WHERE code = 'de'"; $languages_query = $mysqli->query($cmd) or die(mysqli_error()); $languages = $languages_query->fetch_array(); echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . $n . "<SHOPDATA>" . $n . " <TAXRATES>" . $n; $cmd = "select tax_class_id,tax_rate from " . TABLE_TAX_RATES; $tax_query = $mysqli->query($cmd) or die(mysqli_error()); while ($tax = $tax_query->fetch_array()) { if ((int) ($tax['tax_rate']) > 0) { 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 a.status_id, b.status_name FROM " . TABLE_SYSTEM_STATUS . " a, " . TABLE_SYSTEM_STATUS_DESCRIPTION . " b WHERE a.status_id = b.status_id AND a.status_class = 'shipping_status' AND b.language_code = 'de' "; $status_query = $mysqli->query($cmd) or die(mysqli_error()); while ($status = $status_query->fetch_array()) { echo " <SHIPPINGSTATUS_DATA>" . $n . " <ID>" . $status['status_id'] . "</ID>" . $n . " <LANGUAGEID>" . $languages['languages_id'] . "</LANGUAGEID>" . $n . " <NAME>" . htmlspecialchars($status['status_name'], NULL, '') . "</NAME>" . $n . " </SHIPPINGSTATUS_DATA>" . $n; } echo " </SHIPPINGSTATUS>" . $n . " <CUSTOMERSSTATUS>" . $n; $cmd = "select * from " . TABLE_CUSTOMERS_STATUS_DESCRIPTION . " WHERE language_code = 'de'"; $customer_query = $mysqli->query($cmd) or die(mysqli_error()); while ($customer = $customer_query->fetch_array()) { echo " <CUSTOMERSSTATUS_DATA>" . $n . " <ID>" . $customer['customers_status_id'] . "</ID>" . $n . " <LANGUAGEID>" . $languages['languages_id'] . "</LANGUAGEID>" . $n . " <NAME>" . htmlspecialchars($customer['customers_status_name'], NULL, '') . "</NAME>" . $n . " </CUSTOMERSSTATUS_DATA>" . $n; } echo " </CUSTOMERSSTATUS>" . $n . "</SHOPDATA>" . $n; $customer_query->close(); $status_query->close(); $languages_query->close(); $tax_query->close(); } // - - - Sprachen auslesen - - - function readLanguages() { global $n, $hk, $mysqli; echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . $n . "<LANGUAGES>" . $n; $cmd = "select languages_id, name, code from " . TABLE_LANGUAGES . " where allow_edit = '1'"; $languages_query = $mysqli->query($cmd) or die(mysqli_error()); while ($language = $languages_query->fetch_array()) { echo " <LANGUAGES_DATA>" . $n . " <ID>" . $language['languages_id'] . "</ID>" . $n . " <NAME>" . htmlspecialchars($language["name"], NULL, '') . "</NAME>" . $n . " <CODE>" . htmlspecialchars($language["code"], NULL, '') . "</CODE>" . $n . " </LANGUAGES_DATA>" . $n; } echo "</LANGUAGES>" . $n; $languages_query->close(); } // - - - Kategorien abrufen - - - function readCategories() { global $n, $hk, $mysqli; 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 = $mysqli->query($cmd) or die(mysqli_error()); while ($cat = $cat_query->fetch_array()) { echo " <CATEGORIES_DATA>" . $n . " <ID>" . $cat['categories_id'] . "</ID>" . $n . " <PARENT_ID>" . $cat['parent_id'] . "</PARENT_ID>" . $n . " <NAMES>" . $n; $cmd = "select a.language_code, a.categories_name, b.languages_id from " . TABLE_CATEGORIES_DESCRIPTION . " a, " . TABLE_LANGUAGES . " b where categories_id=" . $cat['categories_id'] . " AND a.language_code = b.code AND b.allow_edit = '1'"; $names_query = $mysqli->query($cmd) or die(mysqli_error()); while ($names = $names_query->fetch_array()) { echo " <NAMEENTRY>" . $n . " <LANGUAGEID>" . $names['languages_id'] . "</LANGUAGEID>" . $n . " <NAME>" . htmlspecialchars($names['categories_name'], NULL, '') . "</NAME>" . $n . " </NAMEENTRY>" . $n; } echo " </NAMES>" . $n; echo " </CATEGORIES_DATA>" . $n; } echo "</CATEGORIES>" . $n; $cat_query->close(); $names_query->close(); } // - - - Hersteller abrufen - - - function readHersteller() { global $n, $hk, $mysqli; echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . $n . "<MANUFACTURERS>" . $n; $cmd = "select manufacturers_id,manufacturers_name from " . TABLE_MANUFACTURERS; $manufacturers_query = $mysqli->query($cmd) or die(mysqli_connect_error()); while ($manufacturers = $manufacturers_query->fetch_array()) { echo " <MANUFACTURERS_DATA>" . $n . " <ID>" . $manufacturers['manufacturers_id'] . "</ID>" . $n . " <NAME>" . htmlspecialchars($manufacturers["manufacturers_name"], NULL, '') . "</NAME>" . $n . " </MANUFACTURERS_DATA>" . $n; } echo "</MANUFACTURERS>" . $n; $manufacturers_query->close(); } // - - - Artikel auslesen - - - function readArtikel() { global $n, $hk, $mysqli; $SkipImages = (bool) ($_GET['SkipImages']); if (defined('SET_TIME_LIMIT')) { xtc_set_time_limit(0); } $cmd = "select * from " . TABLE_PRODUCTS; if (isset($_GET['AbDatum'])) { $cmd .= " where last_modified>='" . $_GET['AbDatum'] . "'"; } $HasLimit = (isset($_GET['LimitOffset']) && isset($_GET['LimitRowCount'])); if ($HasLimit) { $cmd .= " limit " . (integer) ($_GET['LimitOffset']) . ', ' . (integer) ($_GET['LimitRowCount']); } echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . $n . "<ARTIKEL"; if ($HasLimit) { echo ' WithLimit="True"'; } echo ">" . $n; $artikel_query = $mysqli->query($cmd); while ($artikel = $artikel_query->fetch_array()) { echo " <ARTIKEL_DATA>" . $n . " <ID>" . $artikel['products_id'] . "</ID>" . $n . " <ARTIKELNR>" . htmlspecialchars($artikel['products_model'], NULL, '') . "</ARTIKELNR>" . $n . " <TEXTE>" . $n; $cmd = "select * from " . TABLE_PRODUCTS_DESCRIPTION . " a, " . TABLE_LANGUAGES . " b where products_id=" . $artikel['products_id'] . " and a.language_code = b.code and b.allow_edit = '1'"; $texte_query = $mysqli->query($cmd) or die($mysqli->error); while ($texte = $texte_query->fetch_array()) { // $cmd = "SELECT languages_id FROM " . TABLE_LANGUAGES ." WHERE allow_edit ='1' AND code = '".$texte['language_code']. "'"; // $languages_query = mysql_query($cmd) or die(mysql_error()); // $languages = mysql_fetch_array($languages_query); $cmd = "SELECT * FROM " . TABLE_SEO_URL . " WHERE link_id = " . $artikel['products_id'] . " AND language_code = 'de'"; $seo_query = $mysqli->query($cmd) or die($mysqli->error); $seo = $seo_query->fetch_array(); echo " <TEXT>" . $n . " <LANGUAGEID>" . $texte['languages_id'] . "</LANGUAGEID>" . $n . " <NAME>" . htmlspecialchars($texte['products_name'], NULL, '') . "</NAME>" . $n . " <DESCRIPTION>" . htmlspecialchars($texte['products_description'], NULL, '') . "</DESCRIPTION>" . $n . " <SHORTDESCRIPTION>" . htmlspecialchars($texte['products_short_description'], NULL, '') . "</SHORTDESCRIPTION>" . $n . " <METATITLE>" . htmlspecialchars($seo['meta_title'], NULL, '') . "</METATITLE>" . $n . " <METADESCRIPTION>" . htmlspecialchars($seo['meta_description'], NULL, '') . "</METADESCRIPTION>" . $n . " <METAKEYWORDS>" . htmlspecialchars($seo['meta_keywords'], NULL, '') . "</METAKEYWORDS>" . $n . " <URL>" . htmlspecialchars($texte['products_url'], NULL, '') . "</URL>" . $n . " </TEXT>" . $n; } echo " </TEXTE>" . $n . " <PREISE>" . $n; $texte_query->close(); $seo_query->close(); $cmd = "select customers_status_id from " . TABLE_CUSTOMERS_STATUS; $ss_query = $mysqli->query($cmd); while ($ss = $ss_query->fetch_array()) { $cmd = "select discount_quantity, price from " . TABLE_PRODUCTS_PRICE_GROUP . $ss['customers_status_id'] . " where products_id=" . $artikel['products_id']; $preise_query = $mysqli->query($cmd) or die($mysqli->error); while ($preise = $preise_query->fetch_array()) { echo " <PREIS>" . $n . " <GRUPPE>" . $ss['customers_status_id'] . "</GRUPPE>" . $n . " <MENGE>" . $preise['discount_quantity'] . "</MENGE>" . $n . " <PREIS>" . $preise['price'] . "</PREIS>" . $n . " </PREIS>" . $n; } } echo " </PREISE>" . $n . " <GEWICHT>" . $artikel['products_weight'] . "</GEWICHT>" . $n . " <EAN>" . htmlspecialchars($artikel['products_ean'], NULL, '') . "</EAN>" . $n . " <PREIS>" . $artikel['products_price'] . "</PREIS>" . $n . " <MENGE>" . round($artikel['products_quantity'], 0) . "</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; $preise_query->close(); $ss_query->close(); $cmd = "SELECT categories_id FROM " . TABLE_PRODUCTS_TO_CATEGORIES . " WHERE products_id = $artikel[products_id]"; $cats_query = $mysqli->query($cmd); while ($cats = $cats_query->fetch_array()) { echo " <KATEGORIE>" . $cats['categories_id'] . "</KATEGORIE>" . $n; } echo " </KATEGORIEN>" . $n; $cats_query->close(); $bildname = $artikel['products_image']; $bild = ''; $pfad = "../" . _SRV_WEB_IMAGES . _DIR_ORG; if ($bildname != '' && file_exists($pfad . $bildname)) { $bild = @implode("", @file($pfad . $bildname)); } if (!$SkipImages) { echo " <BILDDATEI>" . htmlspecialchars($artikel['products_image'], NULL, '') . "</BILDDATEI>" . $n . " <BILD>" . base64_encode($bild) . "</BILD>" . $n; $cmd = "SELECT L.m_id, L.link_id, L.class, L.type, file FROM " . TABLE_MEDIA_LINK . " L " . "INNER JOIN " . TABLE_MEDIA . " ON L.m_id = " . TABLE_MEDIA . ".id " . "WHERE L.class='product' AND L.type='images' AND L.link_id='" . $artikel['products_id'] . "'"; $bilder_query = $mysqli->query($cmd) or die($mysqli->error); while ($bilder = $bilder_query->fetch_array()) { $bildname = $bilder['file']; $bild = ''; if ($bildname != '' && file_exists($pfad . $bildname)) { $bild = @implode("", @file($pfad . $bildname)); echo " <IMAGES>" . $n . " <IMAGE>" . $n . " <NAME>" . htmlspecialchars($bildname, NULL, '') . "</NAME>" . $n . " <BILD>" . base64_encode($bild) . "</BILD>" . $n . " </IMAGE>" . $n . " </IMAGES>\n"; } } $bilder_query->close(); } $cmd = "select status_name from " . TABLE_SYSTEM_STATUS_DESCRIPTION . "," . TABLE_PRODUCTS . " where status_id = products_shippingtime AND products_id =" . $artikel['products_id'] . " AND language_code = 'de'"; $shipping_time_query = $mysqli->query($cmd) or die($mysqli->error); $shipping_time = $shipping_time_query->fetch_array(); echo " <LIEFERSTATUSTEXT>" . htmlspecialchars($shipping_time['status_name'], NULL, '') . "</LIEFERSTATUSTEXT>" . $n; // " <STARTSEITE>".$artikel['products_startpage']."</STARTSEITE>" . $n; $shipping_time_query->close(); if ($artikel['products_vpe_status'] == 1) { echo " <VPEValue>" . $artikel['products_vpe_value'] . "</VPEValue>" . $n; } echo " </ARTIKEL_DATA>" . $n; } $artikel_query->close(); echo "</ARTIKEL>" . $n; } // - - - Artikel-Löschen - - - function deleteArtikel() { global $action, $version_major, $version_minor, $version_datum, $mysqli, $n; $Artikel_ID = (integer) ($_POST['Artikel_ID']); $erg = bildloschen($Artikel_ID); if ($erg) { $cmd = " SELECT m.id, m.file FROM " . TABLE_MEDIA . " m, " . TABLE_PRODUCTS . " p, " . TABLE_MEDIA_TO_MEDIA_GALLERY . " mmg WHERE p.products_id = '$Artikel_ID' AND m.file = p.products_image AND m.id = mmg.m_id"; $equery = $mysqli->query($cmd); while ($erg1 = $equery->fetch_array()) { $mysqli->query("delete from " . TABLE_MEDIA . " where id = '" . $erg1['id'] . "' AND type = 'images'"); $mysqli->query("delete from " . TABLE_MEDIA_TO_MEDIA_GALLERY . " where m_id = '" . $erg1['id'] . "' and mg_id = 2"); } } $bilddatei = bilderloschen($Artikel_ID); if (count($bilddatei) > 0) { for ($i = 0; $i < count($bilddatei); $i++) { echo $bilddatei[$i]['id'] . " -> id "; $mysqli->query("delete from " . TABLE_MEDIA . " where id = '" . $bilddatei[$i]['id'] . "' AND type = 'images'"); $mysqli->query("delete from " . TABLE_MEDIA_LINK . " where m_id = '" . $bilddatei[$i]['id'] . "' and type = 'images'"); $mysqli->query("delete from " . TABLE_MEDIA_TO_MEDIA_GALLERY . " where m_id = '" . $bilddatei[$i]['id'] . "' and mg_id = 2"); } } $mysqli->query("DELETE FROM " . TABLE_PRODUCTS . " WHERE products_id='" . $Artikel_ID . "'"); $mysqli->query("DELETE FROM " . TABLE_PRODUCTS_PRICE_SPECIAL . " WHERE products_id='" . $Artikel_ID . "'"); $cmd = "select distinct(customers_status_id) from " . TABLE_CUSTOMERS_STATUS; $ss_query = $mysqli->query($cmd); while ($ss = $ss_query->fetch_array()) { $mysqli->query("delete from xt_products_price_group_all where products_id = '$Artikel_ID'"); } $mysqli->query("DELETE FROM xt_products_price_group_all WHERE products_id='" . $Artikel_ID . "'"); $mysqli->query("DELETE FROM " . TABLE_PRODUCTS_DESCRIPTION . " WHERE products_id='" . $Artikel_ID . "'"); $mysqli->query("DELETE FROM " . TABLE_PRODUCTS_TO_CATEGORIES . " WHERE products_id='" . $Artikel_ID . "'"); $mysqli->query("DELETE FROM " . TABLE_PRODUCTS_CROSS_SELL . " WHERE products_id='" . $Artikel_ID . "' OR products_id_cross_sell='" . $Artikel_ID . "'"); $mysqli->query("DELETE FROM " . TABLE_PRODUCTS_SERIAL . " WHERE products_id='" . $Artikel_ID . "'"); $mysqli->query("DELETE FROM " . TABLE_SEO_URL . " WHERE link_type='1' AND link_id='" . $Artikel_ID . "'"); $ss_query->close(); 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" . $n; " <SCRIPT_DATE>$version_datum</SCRIPT_DATE>" . $n; " </STATUS_DATA>" . $n; "</STATUS>" . $n . $n; } // - - - Bestellungen abrufen - - - function ordersExport() { global $n, $hk, $mysqli; if (isset($_GET['order_from']) ? $order_from = (int) ($_GET['order_from']) : $order_from = 0); $cmd = "SELECT * FROM " . TABLE_ORDERS . " where orders_id >= " . $hk . $order_from . $hk; $result = $mysqli->query($cmd); echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . $n . '<ORDER>' . $n; while ($orders = $result->fetch_array()) { echo ' <ORDER_INFO>' . $n . ' <ORDER_HEADER>' . $n . ' <ORDER_ID>' . $orders['orders_id'] . '</ORDER_ID>' . $n . ' <FREIFELD1>' . $orders['orders_id'] . '</FREIFELD1>' . $n . ' <CUSTOMER_ID>' . $orders['customers_id'] . '</CUSTOMER_ID>' . $n . ' <CUSTOMER_CID>' . $orders['customers_cid'] . '</CUSTOMER_CID>' . $n . ' <CUSTOMER_GROUP>' . $orders['customers_status'] . '</CUSTOMER_GROUP>' . $n . ' <ORDER_DATE>' . $orders['date_purchased'] . '</ORDER_DATE>' . $n . ' <ORDER_STATUS>' . $orders['orders_status'] . '</ORDER_STATUS>' . $n . ' <ORDER_IP>' . $orders['customers_ip'] . '</ORDER_IP>' . $n . ' <ORDER_CURRENCY>' . htmlspecialchars($orders['currency_code'], NULL, '') . '</ORDER_CURRENCY>' . $n . ' <ORDER_CURRENCY_VALUE>' . $orders['currency_value'] . '</ORDER_CURRENCY_VALUE>' . $n . ' </ORDER_HEADER>' . $n . ' <BILLING_ADDRESS>' . $n; if (htmlspecialchars($orders['billing_gender']) == "m") { $billing_gender = "Herr"; } else if (htmlspecialchars($orders['billing_gender']) == "f") { $billing_gender = "Frau"; } else if (htmlspecialchars($orders['billing_gender']) == "c") { $billing_gender = "Firma"; } else { $billing_gender = ""; } echo ' <GENDER>' . $billing_gender . '</GENDER>' . $n . ' <FIRSTNAME>' . htmlspecialchars($orders['billing_firstname'], NULL, '') . '</FIRSTNAME>' . $n . ' <LASTNAME>' . htmlspecialchars($orders['billing_lastname'], NULL, '') . '</LASTNAME>' . $n . ' <COMPANY>' . htmlspecialchars($orders['billing_company'], NULL, '') . '</COMPANY>' . $n . ' <COMPANY2>' . htmlspecialchars($orders['billing_company_2'], NULL, '') . " " . htmlspecialchars($orders['billing_company_3'], NULL, '') . '</COMPANY2>' . $n . ' <STREET>' . htmlspecialchars($orders['billing_street_address'], NULL, '') . '</STREET>' . $n . ' <CITY>' . htmlspecialchars($orders['billing_city'], NULL, '') . " " . htmlspecialchars($orders['billing_suburb'], NULL, '') . '</CITY>' . $n . ' <ZIP>' . htmlspecialchars($orders['billing_postcode'], NULL, '') . '</ZIP>' . $n . ' <ZONE>' . htmlspecialchars($orders['billing_zone'], NULL, '') . '</ZONE>' . $n . ' <ZONE_CODE>' . htmlspecialchars($orders['billing_zone_code'], NULL, '') . '</ZONE_CODE>' . $n . ' <COUNTRY>' . htmlspecialchars($orders['billing_country'], NULL, '') . '</COUNTRY>' . $n . ' <COUNTRY_CODE>' . htmlspecialchars($orders['billing_country_code'], NULL, '') . '</COUNTRY_CODE>' . $n . ' <EMAIL>' . htmlspecialchars($orders['customers_email_address'], NULL, '') . '</EMAIL>' . $n . ' <TELEPHONE>' . htmlspecialchars($orders['billing_phone'], NULL, '') . '</TELEPHONE>' . $n . ' <FAX>' . htmlspecialchars($orders['billing_fax'], NULL, '') . '</FAX>' . $n . ' <UID>' . htmlspecialchars($orders['customers_vat_id'], NULL, '') . '</UID>' . $n; $query_dob = "select customers_dob from " . TABLE_CUSTOMERS_ADDRESSES . " where address_book_id = " . $hk . $orders['billing_address_book_id'] . $hk; $result_dob = $mysqli->query($query_dob); $orders_dob = $result_dob->fetch_array(); echo ' <DOB>' . $orders_dob['customers_dob'] . '</DOB>' . $n; $result_dob->close(); echo ' </BILLING_ADDRESS>' . $n . ' <DELIVERY_ADDRESS>' . $n; if (htmlspecialchars($orders['delivery_gender']) == "m") { $delivery_gender = "Herr"; } else if (htmlspecialchars($orders['delivery_gender']) == "f") { $delivery_gender = "Frau"; } else if (htmlspecialchars($orders['delivery_gender']) == "c") { $delivery_gender = "Firma"; } else { $delivery_gender = ""; } echo ' <GENDER>' . $delivery_gender . '</GENDER>' . $n . ' <FIRSTNAME>' . htmlspecialchars($orders['delivery_firstname'], NULL, '') . '</FIRSTNAME>' . $n . ' <LASTNAME>' . htmlspecialchars($orders['delivery_lastname'], NULL, '') . '</LASTNAME>' . $n . ' <COMPANY>' . htmlspecialchars($orders['delivery_company'], NULL, '') . '</COMPANY>' . $n . ' <COMPANY2>' . htmlspecialchars($orders['delivery_company_2'], NULL, '') . " " . htmlspecialchars($orders['delivery_company_3'], NULL, '') . '</COMPANY2>' . $n . ' <STREET>' . htmlspecialchars($orders['delivery_street_address'], NULL, '') . '</STREET>' . $n . ' <CITY>' . htmlspecialchars($orders['delivery_city'], NULL, '') . " " . htmlspecialchars($orders['delivery_suburb'], NULL, '') . '</CITY>' . $n . ' <ZIP>' . htmlspecialchars($orders['delivery_postcode'], NULL, '') . '</ZIP>' . $n . ' <ZONE>' . htmlspecialchars($orders['delivery_zone'], NULL, '') . '</ZONE>' . $n . ' <ZONE_CODE>' . htmlspecialchars($orders['delivery_zone_code'], NULL, '') . '</ZONE_CODE>' . $n . ' <COUNTRY>' . htmlspecialchars($orders['delivery_country'], NULL, '') . '</COUNTRY>' . $n . ' <COUNTRY_CODE>' . htmlspecialchars($orders['delivery_country_code'], NULL, '') . '</COUNTRY_CODE>' . $n . ' <TELEPHONE>' . htmlspecialchars($orders['delivery_phone'], NULL, '') . '</TELEPHONE>' . $n . ' <FAX>' . htmlspecialchars($orders['delivery_fax'], NULL, '') . '</FAX>' . $n . ' </DELIVERY_ADDRESS>' . $n; echo ' <PAYMENT>' . $n . ' <PAYMENT_CODE>' . htmlspecialchars($orders['payment_code'], NULL, '') . '</PAYMENT_CODE>' . $n; switch ($orders['payment_code']) { case 'xt_banktransfer': $a = $orders['orders_data']; $a = unserialize($a); echo ' <PAYMENT_BANKTRANSFER_OWNER>' . htmlspecialchars($a['banktransfer_owner'], NULL, '') . '</PAYMENT_BANKTRANSFER_OWNER>' . $n . ' <PAYMENT_BANKTRANSFER_OWNER>' . htmlspecialchars($a['banktransfer_owner'], NULL, '') . '</PAYMENT_BANKTRANSFER_OWNER>' . $n . ' <PAYMENT_BANKTRANS_BNAME>' . htmlspecialchars($a['banktransfer_bank_name'], NULL, '') . '</PAYMENT_BANKTRANS_BNAME>' . $n . ' <PAYMENT_BANKTRANS_BLZ>' . htmlspecialchars($a['banktransfer_blz'], NULL, '') . '</PAYMENT_BANKTRANS_BLZ>' . $n . ' <PAYMENT_BANKTRANS_NUMBER>' . htmlspecialchars($a['banktransfer_number'], NULL, '') . '</PAYMENT_BANKTRANS_NUMBER>' . $n . ' <PAYMENT_BANKTRANS_BIC>' . htmlspecialchars($a['banktransfer_bic'], NULL, '') . '</PAYMENT_BANKTRANS_BIC>' . $n . ' <PAYMENT_BANKTRANS_IBAN>' . htmlspecialchars($a['banktransfer_iban'], NULL, '') . '</PAYMENT_BANKTRANS_IBAN>' . $n; break; case 'xt_paypal': case 'xt_payments': echo ' <PAYPAL_TXNID>' . htmlspecialchars($orders['orders_data'], NULL, '') . '</PAYPAL_TXNID>' . $n; break; } echo ' </PAYMENT>' . $n; $cmd = "SELECT * from xt_tracking, xt_shipper b WHERE tracking_order_id = '{$orders['orders_id']}' AND tracking_shipper_id = b.id ORDER BY `tracking_added` DESC"; $query = $mysqli->query($cmd); echo ' <SHIPPING>' . $n . ' <SHIPPING_CODE>' . htmlspecialchars($orders['shipping_code'], NULL, '') . '</SHIPPING_CODE>' . $n; if ($tx_resultat = $query->fetch_array()) { echo ' <tracking_code>' .htmlspecialchars($tx_resultat['tracking_code']) . '</tracking_code>' . $n . ' <tracking_added>' .htmlspecialchars($tx_resultat['tracking_added']) . '</tracking_added>' . $n . ' <shipper_name>' . htmlspecialchars($tx_resultat['shipper_name'], NULL, '') .'</shipper_name>' . $n; } echo ' </SHIPPING>' . $n . ' <ORDER_PRODUCTS>' . $n; $cmd = "SELECT customers_status_show_price_tax FROM " . TABLE_CUSTOMERS_STATUS . " WHERE customers_status_id = '" . $orders['customers_status'] . "'"; $query = $mysqli->query($cmd); $resulte = $query->fetch_array(); $cmd1 = "select * from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . $orders['orders_id'] . "'"; $prod_query = $mysqli->query($cmd1); if ($resulte && $produkt = $prod_query->fetch_array()) { if (($resulte['customers_status_show_price_tax'] == 0 && $produkt['allow_tax'] == 0 && $produkt['products_tax'] <= 0)) $tax_flag = '0'; if (($resulte['customers_status_show_price_tax'] == 0 && $produkt['allow_tax'] == 0 && $produkt['products_tax'] > 0)) $tax_flag = 'N'; if (($resulte['customers_status_show_price_tax'] == 1 && $produkt['allow_tax'] == 1)) $tax_flag = 'J'; if (($resulte['customers_status_show_price_tax'] == 1 && $produkt['allow_tax'] == 0)) $tax_flag = 'N'; } echo " <TAX_FLAG>$tax_flag</TAX_FLAG>\n"; $query_prod = "select * from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . $orders['orders_id'] . "'"; $result_prod = $mysqli->query($query_prod); while ($products = $result_prod->fetch_array()) { echo ' <PRODUCT>' . $n . ' <PRODUCTS_ID>' . $products['products_id'] . '</PRODUCTS_ID>' . $n . ' <PRODUCTS_QUANTITY>' . $products['products_quantity'] . '</PRODUCTS_QUANTITY>' . $n . ' <PRODUCTS_MODEL>' . htmlspecialchars($products['products_model'], NULL, '') . '</PRODUCTS_MODEL>' . $n . ' <PRODUCTS_NAME>' . htmlspecialchars($products['products_name'], NULL, '') . '</PRODUCTS_NAME>' . $n . ' <PRODUCTS_TAX>' . $products['products_tax'] . '</PRODUCTS_TAX>' . $n; if ($products['allow_tax'] == 1) { $steuer = ($products['products_tax'] * 0.01) + 1; $epreis = $products['products_price'] * $steuer; echo ' <PRODUCTS_EPRICE>' . $epreis . '</PRODUCTS_EPRICE>' . $n; } else { echo ' <PRODUCTS_EPRICE>' . $products['products_price'] . '</PRODUCTS_EPRICE>' . $n; } echo ' <PRODUCTS_TAX_CLASS>' . $products['products_tax_class'] . '</PRODUCTS_TAX_CLASS>' . $n . ' <PRODUCTS_DISCOUNT>' . $products['products_discount'] . '</PRODUCTS_DISCOUNT>' . $n . ' </PRODUCT>' . $n; } $result_prod->close(); echo ' </ORDER_PRODUCTS>' . $n . ' <ORDER_TOTAL>' . $n; $query_total = "select * from " . TABLE_ORDERS_TOTAL . " where orders_id = " . $hk . $orders['orders_id'] . $hk; $result_total = $mysqli->query($query_total); while ($totals = $result_total->fetch_array()) { echo ' <TOTAL>' . $n . ' <TOTAL_KEY_ID>' . htmlspecialchars($totals['orders_total_key_id'], NULL, '') . '</TOTAL_KEY_ID>' . $n . ' <TOTAL_MODEL>' . htmlspecialchars($totals['orders_total_model'], NULL, '') . '</TOTAL_MODEL>' . $n; (($totals['orders_total_model'] == 'xt_cashondelivery') ? $totals['orders_total_key'] = 'ot_cod_fee' : $totals['orders_total_key'] = get_ot_class(htmlspecialchars($totals['orders_total_key']))); if ($tax_flag == 'J' ) { $totals_steuer = ($totals['orders_total_tax'] * 0.01) + 1; $totals_price = $totals['orders_total_price'] * $totals_steuer; } else { $totals_price = $totals['orders_total_price']; } echo ' <TOTAL_NAME>' . htmlspecialchars($totals['orders_total_name'], NULL, '') . '</TOTAL_NAME>' . $n . ' <TOTAL_PRICE>' . $totals_price . '</TOTAL_PRICE>' . $n . ' <TOTAL_KEY>' . $totals['orders_total_key'] . '</TOTAL_KEY>' . $n . ' <TOTAL_TAX>' . htmlspecialchars($totals['orders_total_tax'], NULL, '') . '</TOTAL_TAX>' . $n . ' <TOTAL_TAX_CLASS>' . htmlspecialchars($totals['orders_total_tax_class'], NULL, '') . '</TOTAL_TAX_CLASS>' . $n . ' <TOTAL_QUANTITY>' . htmlspecialchars($totals['orders_total_quantity'], NULL, '') . '</TOTAL_QUANTITY>' . $n . ' <TOTAL_ALLOW_TAX>' . htmlspecialchars($totals['allow_tax'], NULL, '') . '</TOTAL_ALLOW_TAX>' . $n . ' </TOTAL>' . $n; } echo ' </ORDER_TOTAL>' . $n; $result_total->close(); $cmd = "select * from " . TABLE_ORDERS_STATS . " where orders_id = " . $orders['orders_id']; $resultsumme = $mysqli->query($cmd); if ($summe = $resultsumme->fetch_array()) { echo " <ORDER_SUMME>" . $summe['orders_stats_price'] . "</ORDER_SUMME>" . $n; } $resultsumme->close(); echo ' <ORDER_COMMENTS>' . htmlspecialchars($orders['comments'], NULL, '') . '</ORDER_COMMENTS>' . $n . ' </ORDER_INFO>' . $n; } echo '</ORDER>' . $n; $result->close(); } // - - - xtc4 Klassenbezeichnung in xtc3 ot_Klasse umbenennen - - - function get_ot_class($ot) { If ($ot == "shipping") { $otc = "ot_shipping"; } elseif ($ot == "Coupon/Gutschein") { $otc = "ot_coupon"; } elseif ($ot == "discount") { $otc = "ot_discount"; } elseif ($ot == "loworderfee") { $otc = "ot_loworderfee"; } elseif ($ot == "gv") { $otc = "ot_gv"; } elseif ($ot == "total") { $otc = "ot_total"; } elseif ($ot == "fixcod") { $otc = "ot_fixcod"; } elseif ($ot == "cod_fee") { $otc = "ot_cod_fee"; } elseif ($ot == "payment") { $otc = "ot_payment"; } else { $otc = "ot_shipping"; } return $otc; } // - - - Auftragsstatus setzen - - - function orderUpdate() { global $action, $LangID, $version_major, $version_minor, $n, $hk, $mysqli; $Order_ID = (integer) ($_POST['Order_id']); $Status = (integer) ($_POST['Status']); $Sendungsnummer = $_POST['Sendungsnummer']; $Sendungsdienstleister = $_POST['Sendungsdienstleister']; $StatusText = ""; if ($Status == 2) { $xtStatus = 17; $StatusText = "Auftrag in Bearbeitung."; } else if ($Status == 3) { $xtStatus = 46; $StatusText = "Bestellung Abgeschlossen."; } $btime = aftime(); $orders_array = array('orders_status' => $xtStatus, 'last_modified' => $btime); //Fehler gefunden: xtStatus muss stehen und nicht Status db_insert(TABLE_ORDERS, $orders_array, 'update', " orders_id = " . $Order_ID); $cmd = "SELECT orders_id, customers_email_address, billing_gender, billing_firstname, billing_lastname, date_purchased, shop_id FROM " . TABLE_ORDERS . " WHERE orders_id = " . $Order_ID; $result = $mysqli->query($cmd) or die($mysqli->error); $order = $result->fetch_array(); if (!empty($Sendungsnummer) && $Status == 3) { $cmd = "SELECT * from xt_shipper WHERE shipper_name LIKE '%{$Sendungsdienstleister}%' "; $query = $mysqli->query($cmd) or die($mysqli->error); $parcel = $query->fetch_array(); if ($parcel) { $url = str_replace('[TRACKING_CODE]', $Sendungsnummer, $parcel['shipper_tracking_url']); $insert_tracking_data = array('tracking_shipper_id' => $parcel['id'], 'tracking_code'=>$Sendungsnummer, 'tracking_order_id' => $Order_ID, 'tracking_status_id' => 1, 'tracking_added' => $btime ); db_insert('xt_tracking', $insert_tracking_data); $tx_text = "Die Sendungsverfolgung für Ihre Bestellung können Sie über den unten stehenden Link aufrufen: \n {$url} \n"; $p_status = true; } } $cmd = "SELECT config_value FROM " . TABLE_CONFIGURATION_MULTI . $order['shop_id'] . " WHERE config_key = '_STORE_CONTACT_EMAIL'"; $result = $mysqli->query($cmd) or die($mysqli->error); $conf_mail = $result->fetch_array(); $cmd = "SELECT config_value FROM " . TABLE_CONFIGURATION_MULTI . $order['shop_id'] . " WHERE config_key = '_STORE_EMAIL_FOOTER_TXT'"; $result = $mysqli->query($cmd) or die($mysqli->error); $conf_txt = $result->fetch_array(); $notified = 0; // $mail_absender = $store['_STORE_CONTACT_EMAIL']; $mail_absender = $conf_mail['config_value']; // $mail_empfaenger = $conf_mail['config_value']; /* (versendet Emails bei Auftragsbearbeitung) $mail_empfaenger = $order['customers_email_address']; $mail_footer = $conf_txt['config_value']; if ($order['billing_gender'] == "m") { $anrede = "Sehr geehrter Herr "; } else if ($order['billing_gender'] == "f") { $anrede = "Sehr geehrte Frau "; } else { $anrede = "Hallo "; } if ($order['customers_email_address'] <> "") { $betreff = "Ihre Bestellung Nr." . $Order_ID; $text = "\n" . $anrede . $order['billing_firstname'] . " " . $order['billing_lastname'] . ",\n" . "\nDer Status Ihrer Bestellung hat sich ge�ndert.\n Neuer Status: " . $StatusText ."\n"; if ($p_status) { $text .= "\n{$tx_text}\n"; } $text .= "\n" . $mail_footer; mail($mail_empfaenger, $betreff, $text, "from:$mail_absender"); $notified = 1; }*/ $orders_status_array = array('orders_id' => $Order_ID, 'orders_status_id' => $xtStatus, 'date_added' => $btime, 'customer_notified' => $notified, 'comments' => $StatusText, 'change_trigger' => 'Amicron Faktura', 'callback_id' => '0' ); db_insert(TABLE_ORDERS_STATUS_HISTORY, $orders_status_array); $result->close(); echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . $n . "<STATUS>" . $n . " <STATUS_DATA>" . $n . " <MESSAGE>OK</MESSAGE>" . $n . " <ORDER_ID>$Order_ID</ORDER_ID>" . $n . " <ORDER_STATUS>$Status</ORDER_STATUS>" . $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; } // - - - Artikel-Export - - - function writeArtikel() { global $action, $version_major, $version_minor, $version_datum, $mysqli; $ExportModus = $_POST['ExportModus']; $Hersteller_ID = (integer) ($_POST['Hersteller_ID']); $Artikel_Artikelnr = $_POST['Artikel_Artikelnr']; $Artikel_Menge = $_POST['Artikel_Menge']; $Artikel_Preis = $_POST['Artikel_Preis']; $Artikel_Gewicht = $_POST['Artikel_Gewicht']; $Artikel_Status = $_POST['Artikel_Status']; $Artikel_Steuersatz = $_POST['Artikel_Steuersatz']; $Artikel_Bilddatei = $_POST['Artikel_Bilddatei']; $Artikel_EAN = $_POST['Artikel_EAN']; $Artikel_Freifeld1 = $_POST['Artikel_Freifeld1']; $Artikel_Freifeld2 = $_POST['Artikel_Freifeld2']; $Artikel_Freifeld3 = $_POST['Artikel_Freifeld3']; $Artikel_Freifeld4 = $_POST['Artikel_Freifeld4']; $Artikel_Freifeld5 = $_POST['Artikel_Freifeld5']; $Artikel_Freifeld6 = $_POST['Artikel_Freifeld6']; $Artikel_Freifeld7 = $_POST['Artikel_Freifeld7']; $Artikel_Freifeld8 = $_POST['Artikel_Freifeld8']; $Artikel_Freifeld9 = $_POST['Artikel_Freifeld9']; $Artikel_Freifeld10 = $_POST['Artikel_Freifeld10']; $Artikel_Freifeld11 = $_POST['Artikel_Freifeld11']; $Artikel_Freifeld12 = $_POST['Artikel_Freifeld12']; $Artikel_Freifeld13 = $_POST['Artikel_Freifeld13']; $Artikel_Freifeld14 = $_POST['Artikel_Freifeld14']; $Artikel_Freifeld15 = $_POST['Artikel_Freifeld15']; $Artikel_Freifeld16 = $_POST['Artikel_Freifeld16']; $Artikel_Freifeld17 = $_POST['Artikel_Freifeld17']; $Artikel_Freifeld18 = $_POST['Artikel_Freifeld18']; $Artikel_Freifeld19 = $_POST['Artikel_Freifeld19']; $Artikel_Freifeld20 = $_POST['Artikel_Freifeld20']; $Artikel_Lieferstatus = (integer) ($_POST['Artikel_Lieferstatus']); //$Artikel_Startseite = (integer)($_POST['Artikel_Startseite']); $SkipImages = (bool) ($_POST['SkipImages']); $Artikel_ID = (integer) ($_POST['Artikel_ID']); $sql_data_array = array(); if (isset($_POST['Artikel_Lieferstatustext']) && $ExportModus == 'Overwrite') { $Artikel_Lieferstatustext = $_POST['Artikel_Lieferstatustext']; $cmd = "select a.status_id, a.status_name, b.status_class from " . TABLE_SYSTEM_STATUS_DESCRIPTION . " a, " . TABLE_SYSTEM_STATUS . " b where a.status_id = b.status_id AND b.status_class = 'shipping_status' AND a.status_name = '$Artikel_Lieferstatustext'"; $shipping_time_query = $mysqli->query($cmd) or die($mysqli->error); $shipping_time = $shipping_time_query->fetch_array(); if (!$shipping_time) { $insert_system_status = array('status_class' => 'shipping_status'); db_insert(TABLE_SYSTEM_STATUS, $insert_system_status); $status_id = $mysqli->insert_id; $insert_status_description = array('status_id' => $status_id, 'language_code' => 'de', 'status_name' => $Artikel_Lieferstatustext); db_insert(TABLE_SYSTEM_STATUS_DESCRIPTION, $insert_status_description); $sql_data_array['products_shippingtime'] = $status_id; $Artikel_Lieferstatus = $sql_data_array['products_shippingtime']; } else { $sql_data_array['products_shippingtime'] = $shipping_time['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) ($_POST["Artikel_KategorieID{$i}"]); $i++; } $Artikel_Texte = array(); $i = 1; while (isset($_POST["Artikel_Bezeichnung{$i}"])) { $Artikel_Texte[$i] = array('B' => htmlspecialchars($_POST["Artikel_Bezeichnung{$i}"], NULL, ''), 'T' => $_POST["Artikel_Text{$i}"], 'S' => $_POST["Artikel_Kurztext{$i}"], 'L' => (integer) ($_POST["Artikel_TextLanguage{$i}"]), 'MT' => htmlspecialchars($_POST["Artikel_MetaTitle{$i}"], NULL, ''), 'MD' => htmlspecialchars($_POST["Artikel_MetaDescription{$i}"], NULL, ''), 'MK' => htmlspecialchars($_POST["Artikel_MetaKeywords{$i}"], NULL, ''), 'URL' => $_POST["Artikel_URL{$i}"] ); $i++; } $Artikel_Preise = array(); $AnzahlPreisGrp = 0; $i = 1; while (isset($_POST["Artikelpreise_Preis{$i}"])) { $Artikel_Preise[$i] = array( 'P' => $_POST["Artikelpreise_Preis{$i}"], 'G' => 1, 'M' => (integer) $_POST["Artikelpreise_Menge{$i}"], 'Index' => $i ); $AnzahlPreisGrp = $i; $i++; } $exists = FALSE; $mode = 'NONE'; $cmd = "SELECT products_id, products_model FROM " . TABLE_PRODUCTS . " WHERE products_model = '" . $Artikel_Artikelnr . "'"; // if ($Artikel_ID == 0) { $products_model_query = $mysqli->query($cmd); if ($products_model_query) { $products_model = $products_model_query->fetch_array(); if ($products_model) { $exists = TRUE; $mode = 'UPDATED'; $Artikel_ID = $products_model['products_id']; } else { $exists = FALSE; $mode = 'INSERTED'; } } $cmd = "SELECT * from " . TABLE_MANDANT_CONFIG . " where shop_title ='Main Store'"; //$cmd = "SELECT shop_id from ". TABLE_MANDANT_CONFIG . " where shop_titel = 'Main Store'"; /*$store_id_query = $mysqli->query($cmd); $store_id = $store_id_query->fetch_array(); if ($store_id) { $store_id = $store_id['shop_id']; } else { $store_id = 1; }*/ //multistore mod JCP if (isset($_GET['store_id'])) { $store_id = $_GET['store_id']; } else { $store_id = 1; } // sofern es kein Datensatz gibt, oder er �berschrieben werden kann, weitermachen if (!$exists || $ExportModus != 'NoOverwrite') { // Array nur komplett f�llen, wenn ein Insert oder ein Komplettes Update // durchgef�hrt wird (und nicht nur der Preis) $btime = aftime(); if (!$exists || $ExportModus == 'Overwrite' or 'PriceAndQuantityOnly') { $Artikel_Freifeld1 = str_replace(',', '.', $_POST['Artikel_Freifeld1']); $sql_data_array = array( 'products_id' => $Artikel_ID, 'permission_id' => $Artikel_ID, 'products_price' => $Artikel_Preis, 'products_quantity' => $Artikel_Menge, 'products_shippingtime' => $Artikel_Lieferstatus, 'products_model' => $Artikel_Artikelnr, 'products_weight' => $Artikel_Gewicht, 'products_ean' => $Artikel_EAN, 'products_refund_price' => $Artikel_Freifeld1 / 1.19, // Englische Notation ohne Tausendergruppierung //$english_format_number = number_format($number, 2, '.', ''); // 1234.57 'products_Freifeld2' => $Artikel_Freifeld2, 'products_Freifeld3' => $Artikel_Freifeld3, 'products_Freifeld4' => $Artikel_Freifeld4, 'products_Freifeld5' => $Artikel_Freifeld5, 'products_Freifeld6' => $Artikel_Freifeld6, 'products_Freifeld8' => $Artikel_Freifeld8, 'products_Freifeld9' => $Artikel_Freifeld9, 'products_Freifeld10' => $Artikel_Freifeld10, 'products_Freifeld11' => $Artikel_Freifeld11, 'products_Freifeld12' => $Artikel_Freifeld12, 'products_Freifeld13' => $Artikel_Freifeld13, 'products_Freifeld14' => $Artikel_Freifeld14, 'products_Freifeld15' => $Artikel_Freifeld15, 'products_Freifeld16' => $Artikel_Freifeld16, 'products_Freifeld17' => $Artikel_Freifeld17, 'products_Freifeld18' => $Artikel_Freifeld18, 'products_Freifeld19' => $Artikel_Freifeld19, 'products_Freifeld20' => $Artikel_Freifeld20, 'products_status' => "1", 'products_tax_class_id' => $Artikel_Steuersatz, // 'products_startpage' => $Artikel_Startseite, 'product_template' => "", 'product_list_template' => "", 'products_option_template' => "", 'products_option_list_template' => "", 'manufacturers_id' => $Hersteller_ID ); for ($i = 1; $i <= $AnzahlPreisGrp; $i++) { foreach ($Artikel_Preise as $i => $APreis) { if (isset($APreis['G']) && $APreis > 0) { $sql_data_array["price_flag_graduated_all"] = 1; } else { $sql_data_array["price_flag_graduated_$APreis[G]"] = 0; } } } if (!$SkipImages) { $sql_data_array['products_image'] = $Artikel_Bilddatei; } if (isset($_POST['Artikel_Grundeinheit']) && isset($_POST['Artikel_Masseinheit'])) { $sql_data_array['products_vpe_value'] = $_POST['Artikel_Grundgewicht']; $sql_data_array['products_vpe_status'] = 1; $cmd = "SELECT * from " . TABLE_SYSTEM_STATUS_DESCRIPTION . " where status_name LIKE '" . $_POST['Artikel_Masseinheit'] . "' AND language_code = 'de'"; $vpe_query = $mysqli->query($cmd); if ($vpe_id = $vpe_query->fetch_array()) { $sql_data_array['products_vpe'] = $vpe_id['status_id']; } } if (isset($_POST['Artikel_Mengeneinheit'])) { $cmd = "SELECT * from " . TABLE_SYSTEM_STATUS_DESCRIPTION . " where status_name LIKE '" . $_POST['Artikel_Mengeneinheit'] . "' AND language_code = 'de'"; $sql_data_array['products_vpe_status'] = 1; $unit_query = $mysqli->query($cmd); if ($unit_id = $unit_query->fetch_array()) { $sql_data_array['products_unit'] = $unit_id['status_id']; } } } else { if ($ExportModus == 'PriceOnly') { $sql_data_array = array(); // nur der Preis wird ge�ndert $sql_data_array['products_price'] = $Artikel_Preis; for ($i = 1; $i <= $AnzahlPreisGrp; $i++) { foreach ($Artikel_Preise as $i => $APreis) { if (isset($APreis['G']) && $APreis > 0) { $sql_data_array["price_flag_graduated_all"] = 1; } else { $sql_data_array["price_flag_graduated_$APreis[G]"] = 0; } } } } if ($ExportModus == 'QuantityOnly') { $sql_data_array = array(); // nur die Menge wird ge�ndert $sql_data_array['products_quantity'] = $Artikel_Menge; } if ($ExportModus == 'PriceAndQuantityOnly') { $sql_data_array = array(); // nur der Preis und die Menge wird ge�ndert $sql_data_array = array('products_quantity' => $Artikel_Menge, 'products_price' => $Artikel_Preis ); for ($i = 1; $i <= $AnzahlPreisGrp; $i++) { foreach ($Artikel_Preise as $i => $APreis) { if (isset($APreis['G']) && $APreis > 0) { $sql_data_array["price_flag_graduated_all"] = 1; } else { $sql_data_array["price_flag_graduated_$APreis[G]"] = 0; } } } } } if (!$exists) { // Neuanlage (ID wird an Amicron-Faktura zurueckgegeben !!!) $mode = 'INSERTED'; $insert_sql_data = array('date_added' => $btime); $sql_data_array = array_merge($sql_data_array, $insert_sql_data); $sql_data_array = array_slice($sql_data_array, 1); db_insert(TABLE_PRODUCTS, $sql_data_array); $Artikel_ID = $mysqli->insert_id; } elseif ($exists || ($ExportModus == 'Overwrite')) { $mode = 'UPDATED'; $update_sql_data = array('last_modified' => $btime); $sql_data_array = array_merge($sql_data_array, $update_sql_data); db_insert(TABLE_PRODUCTS, $sql_data_array, 'update', "products_id = '$Artikel_ID'"); } if (!$exists || $ExportModus == 'Overwrite') { //multistore Rechte setzen (Blacklist) if(!$exists){ $cmd = "select shop_id from xt_stores"; $store_query = $mysqli->query($cmd); while ($store = $store_query->fetch_array()) { if ($store['shop_id']!=$store_id) { $multisstore_data_array = array( 'pid' => $Artikel_ID, 'permission' => 1, 'pgroup' => "shop_".$store['shop_id'] ); db_insert('xt_products_permission', $multisstore_data_array); } } } else { $mysqli->query("delete from xt_products_permission where pid = '$Artikel_ID' and pgroup = 'shop_".$store_id."'"); } foreach ($Artikel_Texte as $AText) { if ($AText['L'] <> 0) { $sql_data_array = array( 'products_name' => $AText['B'], 'products_description' => $AText['T'], 'products_short_description' => $AText['S'], 'products_keywords' => $AText['B'], 'products_url' => $AText['URL'], 'products_store_id' => $store_id ); $sql_seo_url = array( 'meta_title' => $AText['MT'], 'meta_description' => $AText['MD'], 'meta_keywords' => $AText['MK'] ); $cmd = "select languages_id,name,code from " . TABLE_LANGUAGES . " WHERE languages_id = " . $AText['L'] . " AND allow_edit ='1'"; $language_query = $mysqli->query($cmd); $language = $language_query->fetch_array(); $seoUrl = ''; $AText['B'] = ersetzen($AText['B']); $seoUrl = $language['code'] . "/" . $AText['B']; $cmd = "SELECT products_id FROM " . TABLE_PRODUCTS_DESCRIPTION . " WHERE products_id = '" . $Artikel_ID . "' AND language_code = '" . $language['code'] . "'"; $products_query = $mysqli->query($cmd); if ($products_query->fetch_array()) { db_insert(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array, 'update', "products_id = '$Artikel_ID' AND language_code = '" . $language['code'] . "' AND products_store_id='$store_id'"); } else { //multistore Texte in alle Shops wenn !exists $cmd = "select shop_id from xt_stores"; $store_query = $mysqli->query($cmd); while ($store = $store_query->fetch_array()) { $sql_data_array['products_id'] = $Artikel_ID; $sql_data_array['language_code'] = $language['code']; $sql_data_array['products_store_id'] = $store['shop_id']; db_insert(TABLE_PRODUCTS_DESCRIPTION, $sql_data_array); } } $cmd = "SELECT link_id FROM " . TABLE_SEO_URL . " WHERE link_id = '" . $Artikel_ID . "' AND link_type = '1' AND language_code = '" . $language['code'] . "'"; $seo_query = $mysqli->query($cmd); $cmd = "SELECT url_text FROM " . TABLE_SEO_URL . " WHERE link_id = '" . $Artikel_Kategorien[1] . "' AND language_code = '" . $language['code'] . "' AND link_type ='2'"; $catname_query = $mysqli->query($cmd); $catname_Url = $catname_query->fetch_array(); if ($catname_Url) { $catUrl = $catname_Url['url_text']; } else { $catUrl = $seoUrl; } if (!$seo_query->fetch_array()) { $text = "{$catUrl}/" . $AText["B"]; $cmd = "SELECT url_md5 FROM " . TABLE_SEO_URL . " WHERE url_md5 = '" . md5($text) . "'"; $seo_query = $mysqli->query($cmd); if (!$seo_query->fetch_array()) { $sql_seo_url['url_md5'] = md5($text); } else { $text = $text . "{$Artikel_ID}"; $sql_seo_url['url_md5'] = md5($text); } $sql_seo_url['url_text'] = $text; $sql_seo_url['link_id'] = $Artikel_ID; $sql_seo_url['link_type'] = 1; $sql_seo_url['language_code'] = $language['code']; $sql_seo_url['store_id'] = $store_id; //db_insert(TABLE_SEO_URL, $sql_seo_url); } } } /* für nur Fotos - deaktivieren */ if (count($Artikel_Kategorien) > 0) { $mysqli->query("delete from " . TABLE_PRODUCTS_TO_CATEGORIES . " WHERE products_id='$Artikel_ID' AND store_id=$store_id"); foreach ($Artikel_Kategorien as $i => $Kategorie_ID) { $insert_sql_data = array('products_id' => $Artikel_ID, 'categories_id' => $Kategorie_ID, 'store_id' => $store_id ); if ($i <= 1) $insert_sql_data['master_link'] = 1; else $insert_sql_data['master_link'] = 0; db_insert(TABLE_PRODUCTS_TO_CATEGORIES, $insert_sql_data); } } // Bilder laden if (!$SkipImages) { //Bildgr��en aus den Einstellungen einlesen $type_cmd = "select folder, width, height from " . TABLE_IMAGE_TYPE; $type_query = $mysqli->query($type_cmd); while ($typesize = $type_query->fetch_array()) { if ($typesize['folder'] == "thumb") { $width_thumb = $typesize['width']; $height_thumb = $typesize['height']; } elseif ($typesize['folder'] == "info") { $width_info = $typesize['width']; $height_info = $typesize['height']; } elseif ($typesize['folder'] == "popup") { $width_popup = $typesize['width']; $height_popup = $typesize['height']; } elseif ($typesize['folder'] == "icon") { $width_icon = $typesize['width']; $height_icon = $typesize['height']; } // Neu ab Ver 4.1 elseif ($typesize['folder'] == "smallproduct") { $width_smallproduct = $typesize['width']; $height_smallproduct = $typesize['height']; } } //MediaGallery Standards holen $mg_cmd = "select mg_id from " . TABLE_MEDIA_GALLERY . " where class='product'"; $mg_query = $mysqli->query($mg_cmd); if ($mg = $mg_query->fetch_array()) { $mg_id = $mg['mg_id']; } if (isset($_POST['Artikel_Bilddatei'])) { bildloschen($Artikel_ID); // Tempor�res Bild im Ordner Originale ablegen und Typ ermitteln $filename = $_FILES['artikel_image']['name']; $uploaddir = _SRV_WEB_IMAGES . _DIR_ORG; $uploadfile = "../" . $uploaddir . $filename; move_uploaded_file($_FILES['artikel_image']['tmp_name'], $uploadfile); $typename = strtolower($filename); bildbearbeiten($filename, $uploaddir, $uploadfile, $typename, $width_thumb, $width_info, $width_popup, $width_icon, $height_thumb, $height_info, $height_icon, $height_popup, $width_smallproduct, $height_smallproduct); //Die neue Bildern in DB Media, Media Gallery eintragen $insert_sql_data = array( 'file' => $filename, 'type' => "images", 'class' => "product", 'download_status' => "free", 'status' => "true", 'owner' => 1 ); $cmd = "SELECT id from " . TABLE_MEDIA . ", " . TABLE_PRODUCTS . " where file = '" . $filename . "' AND products_image = '" . $filename . "'"; $bquery = $mysqli->query($cmd); if ($media = $bquery->fetch_array()) { // 'update'; $data = array('file' => $filename); db_insert(TABLE_MEDIA, $data, 'update', "id = '" . $media['id'] . "'"); //db_insert(TABLE_MEDIA_TO_MEDIA_GALLERY,array('m_id'=>),'update',"m_id = '" . $media['id'] ."'"); } else { // $bmodus = 'insert'; db_insert(TABLE_MEDIA, $insert_sql_data); $m_id = $mysqli->insert_id; $insert_sql_data = array( 'm_id' => $m_id, 'mg_id' => $mg_id ); db_insert(TABLE_MEDIA_TO_MEDIA_GALLERY, $insert_sql_data); } } $bilddatei = bilderloschen($Artikel_ID); $anzUpdates = count($bilddatei); $anzInsert = 0; if (isset($_POST['Artikel_Bilddateien'])) { for ($i = 0; $i < (integer) ($_POST['Artikel_Bilddateien']); $i++) { // Tempor�res Bild im Ordner Originale ablegen und Typ ermitteln $filename = $_FILES["artikel_images$i"]["name"]; $uploaddir = _SRV_WEB_IMAGES . _DIR_ORG; $uploadfile = "../" . $uploaddir . $filename; move_uploaded_file($_FILES["artikel_images$i"]["tmp_name"], $uploadfile); $typename = strtolower($filename); bildbearbeiten($filename, $uploaddir, $uploadfile, $typename, $width_thumb, $width_info, $width_popup, $width_icon, $height_thumb, $height_info, $height_icon, $height_popup, $width_smallproduct, $height_smallproduct); //Die neue Bildern in DB Media, Media Link und Gallery eintragen if ($anzUpdates > $i) { $cmd = "SELECT id, file from " . TABLE_MEDIA . " WHERE id = '" . $bilddatei[$i]['id'] . "'"; $bquery = $mysqli->query($cmd); if ($media = $bquery->fetch_array()) { //update $data = array('file' => $filename); db_insert(TABLE_MEDIA, $data, 'update', "id = '" . $bilddatei[$i]['id'] . "'"); } } else { $insert_sql_data = array( 'file' => $filename, 'type' => "images", 'class' => "product", 'download_status' => "free", 'status' => "true", 'owner' => 1 ); db_insert(TABLE_MEDIA, $insert_sql_data); $m_id = $mysqli->insert_id; $insert_sql_data = array( 'm_id' => $m_id, 'mg_id' => $mg_id ); db_insert(TABLE_MEDIA_TO_MEDIA_GALLERY, $insert_sql_data); $insert_sql_data = array( 'm_id' => $m_id, 'link_id' => $Artikel_ID, 'class' => "product", 'type' => "images", 'sort_order' => $i + 1 ); db_insert(TABLE_MEDIA_LINK, $insert_sql_data); } } $anzInsert = $i; } if ($anzUpdates > $anzInsert) { for ($k = $anzInsert; $k < $anzUpdates; $k++) { $mysqli->query("delete from " . TABLE_MEDIA . " where id = '" . $bilddatei[$k]['id'] . "' AND type = 'images'"); $mysqli->query("delete from " . TABLE_MEDIA_LINK . " where m_id = '" . $bilddatei[$k]['id'] . "' and type = 'images'"); $mysqli->query("delete from " . TABLE_MEDIA_TO_MEDIA_GALLERY . " where m_id = '" . $bilddatei[$k]['id'] . "' and mg_id = 2"); } } } // Bilder laden } // Ende OverWrite } if (!$exists || $ExportModus == 'Overwrite' || $ExportModus == 'PriceOnly' || $ExportModus == 'PriceAndQuantityOnly') { $cmd = "select distinct(customers_status_id) from " . TABLE_CUSTOMERS_STATUS; $ss_query = $mysqli->query($cmd); while ($ss = $ss_query->fetch_array()) { $mysqli->query("delete from xt_products_price_group_all where products_id = '$Artikel_ID'"); } foreach ($Artikel_Preise as $i => $APreis) { $sql_data_array = array( 'products_id' => $Artikel_ID, 'discount_quantity' => $APreis['M'], 'price' => $APreis['P'] ); db_insert('xt_products_price_group_all', $sql_data_array); } $sql_data_array = array( 'products_id' => $Artikel_ID, 'discount_quantity' => 1, 'price' => $Artikel_Preis ); db_insert('xt_products_price_group_all', $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" . " <SCRIPT_DATE>$version_datum</SCRIPT_DATE>\n" . " </STATUS_DATA>\n" . "</STATUS>\n\n"; } function writeCategorie() { global $action, $version_major, $version_minor, $version_datum, $mysqli; $Kategorie_ID = (integer) ($_POST['Artikel_Kategorie_ID']); $Kategorie_Vater_ID = (integer) ($_POST['Kategorie_Vater_ID']); $Kategorie_Names = array( 1 => array( 'N' => $_POST['Kategorie_Name1'], 'L' => (integer) ($_POST['Kategorie_NameLanguage1']) ), 2 => array( 'N' => $_POST['Kategorie_Name2'], 'L' => (integer) ($_POST['Kategorie_NameLanguage2']) ), 3 => array( 'N' => $_POST['Kategorie_Name3'], 'L' => (integer) ($_POST['Kategorie_NameLanguage3']) ), 4 => array( 'N' => $_POST['Kategorie_Name4'], 'L' => (integer) ($_POST['Kategorie_NameLanguage4']) ) ); $exists = FALSE; // Kategorie wurde von AF schon angelegt if ($Kategorie_ID != 0) { $cmd = "SELECT categories_id FROM " . TABLE_CATEGORIES . " WHERE categories_id='" . $Kategorie_ID . "'"; $cat_query = $mysqli->query($cmd); if ($cat = $cat_query->fetch_array()) ; { $exists = TRUE; } } /*$cmd = "SELECT * from " . TABLE_MANDANT_CONFIG . " where shop_title ='Main Store'"; //$cmd = "SELECT shop_id from ". TABLE_MANDANT_CONFIG . " where shop_titel = 'Main Store'"; $store_id_query = $mysqli->query($cmd); $store_id = $store_id_query->fetch_array(); if ($store_id) { $store_id = $store_id['shop_id']; } else { $store_id = 1; }*/ //multistore mod JCP if (isset($_GET['store_id'])) { $store_id = $_GET['store_id']; } else { $store_id = 1; } $btime = aftime(); if (!$exists) { $insert_categorie = array('permission_id' => 0, 'categories_owner' => 1, 'parent_id' => $Kategorie_Vater_ID, 'categories_status' => 1, 'date_added' => $btime ); // Kategorie erzeugen und ID ermitteln db_insert(TABLE_CATEGORIES, $insert_categorie); $Kategorie_ID = $mysqli->insert_id; // $id = array('permission_id' => $Kategorie_ID); // db_insert(TABLE_CATEGORIES, $id['permission_id'], 'update',"categories_id='$Kategorie_ID'"); // Namen eintragen foreach ($Kategorie_Names as $i => $KName) { if ($KName['L'] <> 0) { // language_code ermitteln $cmd = "SELECT code FROM " . TABLE_LANGUAGES . " WHERE languages_id = " . $KName['L'] . " AND allow_edit= 1"; $result_language_code = $mysqli->query($cmd); $language_code = $result_language_code->fetch_array(); // Daten in die Tabelle TABLE_CATEGORIES_DESCRIPTION schreiben $insert_categorieDescription = array('categories_id' => $Kategorie_ID, 'language_code' => $language_code['code'], 'categories_name' => $KName['N'], 'categories_heading_title' => $KName['N'], 'categories_store_id' => $store_id ); db_insert(TABLE_CATEGORIES_DESCRIPTION, $insert_categorieDescription); /* $sql_seo_url = array('meta_title' => $KName['N'], 'meta_description' => $KName['N'], 'meta_keywords' => $KName['N'] ); */ $lcode = $language_code['code']; $cat_seo_Url = kategoriebaum($Kategorie_ID, $lcode); $cmd = "SELECT url_md5 FROM " . TABLE_SEO_URL . " WHERE link_id = '" . $Kategorie_ID . "' AND link_type ='2' AND language_code = '$lcode'"; $seo_query = $mysqli->query($cmd); // $KName['N'] = ersetzen($KName['N']); $url_categorie = "$lcode/" . $cat_seo_Url; /* if (mysql_fetch_array($seo_query)) { //$sql_seo_url['url_text'] = $seoUrl; //$sql_seo_url['url_md5'] = md5($url_categorie); $sql_seo_url['url_text'] = $url_categorie; $sql_seo_url['link_type'] = 2; db_insert(TABLE_SEO_URL, $sql_seo_url, 'update', "link_id = '$Kategorie_ID' AND language_code = '$lcode'"); } else { */ if (!$seo_query->fetch_array()) { $sql_seo_url = array('url_md5' => md5($url_categorie), 'url_text' => $url_categorie, 'link_id' => $Kategorie_ID, 'link_type' => 2, 'language_code' => $lcode, 'store_id' => $store_id ); db_insert(TABLE_SEO_URL, $sql_seo_url); } } } } if (isset($_POST['Kategorie_Bildextension'])) { $Kategorie_Bildextension = $_POST['Kategorie_Bildextension']; //Bildgr��en aus den Einstellungen einlesen $type_cmd = "select folder, width, height from " . TABLE_IMAGE_TYPE . " WHERE class='category'"; $type_query = $mysqli->query($type_cmd); while ($typesize = $type_query->fetch_array()) { if ($typesize['folder'] == "category/thumb") { $width_thumb = $typesize['width']; $height_thumb = $typesize['height']; } elseif ($typesize['folder'] == "category/info") { $width_info = $typesize['width']; $height_info = $typesize['height']; } elseif ($typesize['folder'] == "category/popup") { $width_popup = $typesize['width']; $height_popup = $typesize['height']; } elseif ($typesize['folder'] == "category/icon") { $width_icon = $typesize['width']; $height_icon = $typesize['height']; } } $filename = "cat" . $Kategorie_ID . $Kategorie_Bildextension; // $filename = $_FILES['artikel_image']['name']; $uploaddir = _SRV_WEB_IMAGES . _DIR_ORG; // Tempor�res Bild im Ordner Originale ablegen und Typ ermitteln $uploadfile = "../" . $uploaddir . $filename; move_uploaded_file($_FILES['Kategorie_image']['tmp_name'], $uploadfile); // move_uploaded_file($filename, $uploadfile); $typename = strtolower($filename); catbildbearbeiten($filename, $uploaddir, $uploadfile, $typename, $width_thumb, $width_info, $width_popup, $width_icon, $height_thumb, $height_info, $height_icon, $height_popup); // } $sql_data_array['categories_image'] = $filename; db_insert(TABLE_CATEGORIES, $sql_data_array, 'update', "categories_id='$Kategorie_ID'"); $insert_cat_media = array('file' => $filename, 'type' => 'images', 'class' => 'category', 'status' => 'true', 'owner' => 1 ); db_insert(TABLE_MEDIA, $insert_cat_media); $Kat_MID = $mysqli->insert_id; $sql_catmedia_array = array('m_id' => $Kat_MID, 'mg_id' => 3 ); db_insert(TABLE_MEDIA_TO_MEDIA_GALLERY, $sql_catmedia_array, 'insert', "ml_id='$Kat_MID'"); } $mode = 'INSERTED'; echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . "\n" . "<STATUS>\n" . " <STATUS_DATA>\n" . " <MESSAGE>OK</MESSAGE>\n" . " <MODE>$mode</MODE>\n" . " <ID>$Kategorie_ID</ID>\n" . " <SCRIPT_VERSION_MAJOR>$version_major</SCRIPT_VERSION_MAJOR>\n" . " <SCRIPT_VERSION_MINOR>$version_minor</SCRIPT_VERSION_MINOR>\n" . " <SCRIPT_DATE>$version_datum</SCRIPT_DATE>\n" . " </STATUS_DATA>\n" . "</STATUS>\n\n"; } function writeHersteller() { global $action, $version_major, $version_minor, $version_datum, $mysqli; $Hersteller_Name = $_POST['Hersteller_Name']; $mode = 'NONE'; /*$cmd = "SELECT * from " . TABLE_MANDANT_CONFIG . " where shop_title ='Main Store'"; // $cmd = "SELECT shop_id from ". TABLE_MANDANT_CONFIG . " where shop_titel = 'Main Store'"; $store_id_query = $mysqli->query($cmd); $store_id = $store_id_query->fetch_array(); if ($store_id) { $store_id = $store_id['shop_id']; } else { $store_id = 1; }*/ //multistore mod JCP if (isset($_GET['store_id'])) { $store_id = $_GET['store_id']; } else { $store_id = 1; } $cmd = "SELECT manufacturers_id,manufacturers_name FROM " . TABLE_MANUFACTURERS . " WHERE manufacturers_name='$Hersteller_Name'"; $manufacturers_query = $mysqli->query($cmd); // Datensatz schon vorhanden if ($manufacturers = $manufacturers_query->fetch_array()) { $Hersteller_ID = $manufacturers['manufacturers_id']; } else { $mode = 'INSERTED'; $btime = aftime(); $insert_sql_data = array('manufacturers_name' => $Hersteller_Name, 'manufacturers_status' => 1, 'external_id' => 'TEXT_EXTERNAL_ID', 'date_added' => $btime ); db_insert(TABLE_MANUFACTURERS, $insert_sql_data); $Hersteller_ID = $mysqli->insert_id; //$cmd = "select languages_id,name,code from " . TABLE_LANGUAGES . " WHERE language_status = '1'"; //$languages_query = mysql_query($cmd) or die(mysql_error()); //while ($language = mysql_fetch_array($languages_query)) $language['code'] = 'de'; $cmd = "SELECT manufacturers_id FROM " . TABLE_MANUFACTURERS_DESCRIPTION . " WHERE manufacturers_id = '$Hersteller_ID'" . " AND language_code = '" . $language['code'] . "'"; $result_query = $mysqli->query($cmd); if (!$result = $result_query->fetch_array()) { $insert_sql_info = array('manufacturers_id' => $Hersteller_ID, 'language_code' => $language['code'], 'manufacturers_description' => $Hersteller_Name, 'manufacturers_url' => '', 'manufacturers_store_id' => $store_id ); db_insert(TABLE_MANUFACTURERS_DESCRIPTION, $insert_sql_info); } $sql_seo_url = array('meta_title' => $Hersteller_Name, 'meta_description' => $Hersteller_Name, 'meta_keywords' => $Hersteller_Name ); $seoUrl = $language['code'] . "/" . ersetzen($Hersteller_Name); $cmd = "SELECT url_md5 FROM " . TABLE_SEO_URL . " WHERE language_code = '" . $language['code'] . "' AND link_type = 4 AND link_id = '" . $Hersteller_ID . "'"; $result_query = $mysqli->query($cmd); /* if(mysql_fetch_array($result)) { $sql_seo_url['url_md5'] = md5($seoUrl); $sql_seo_url['url_text'] = $seoUrl; $sql_seo_url['link_type'] = 4; db_insert(TABLE_SEO_URL, $sql_seo_url,'update', "link_id = '$Hersteller_ID' AND link_type='4' AND language_code = '".$language_code['code']."'"); } else { */ if (!$result = $result_query->fetch_array()) { $sql_seo_url = array('url_md5' => md5($seoUrl), 'url_text' => $seoUrl, 'language_code' => $language['code'], 'link_type' => 4, 'link_id' => $Hersteller_ID, 'store_id' => $store_id ); db_insert(TABLE_SEO_URL, $sql_seo_url); } } $cmd = "SELECT pid FROM " . TABLE_MANUFACTURERS_PERMISSION . " WHERE pid = '$Hersteller_ID'" . " AND (pgroup = 'group_permission_1' OR pgroup = 'shop_1')"; $result_query = $mysqli->query($cmd); // Info noch nicht enthalten if (!$result = $result_query->fetch_array()) { $insert_sql_permission = array('pid' => $Hersteller_ID, 'permission' => '1', 'pgroup' => 'shop_1' ); db_insert(TABLE_MANUFACTURERS_PERMISSION, $insert_sql_permission); for ($i = 1; $i <= 3; $i++) { $insert_sql_permission = array('pid' => $Hersteller_ID, 'permission' => '1', 'pgroup' => 'group_permission_' . $i); db_insert(TABLE_MANUFACTURERS_PERMISSION, $insert_sql_permission); } } 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" . " <SCRIPT_DATE>$version_datum</SCRIPT_DATE>\n" . " </STATUS_DATA>\n" . "</STATUS>\n\n"; } function db_insert($tabelle, $data, $action = 'insert', $parameters = '') { global $mysqli; // #### Datensatz einfuegen ##### if ($action == 'insert') { $insert_query = 'INSERT INTO ' . $tabelle . ' ('; while (list($columns, ) = each($data)) { $insert_query .= $columns . ', '; } $insert_query = substr($insert_query, 0, -2) . ') VALUES ('; reset($data); while (list(, $value) = each($data)) { $insert_query .= "'" . $mysqli->real_escape_string($value) . "'" . ', '; } $insert_query = substr($insert_query, 0, -2) . ')'; return $insert = $mysqli->query($insert_query) or die("MySQLFehler: $insert_query;\n" . $mysqli->error); } // #### Datensatz aendern ##### elseif ($action == 'update') { $update_query = 'UPDATE ' . $tabelle . ' SET '; while (list($columns, $value) = each($data)) { $update_query .= $columns . ' = ' . "'" . $mysqli->real_escape_string($value) . "'" . ', '; } $update_query = substr($update_query, 0, -2) . ' '; $update_query .= ' WHERE ' . $parameters; return $update = $mysqli->query($update_query) or die("MySQLFehler: $update_query;\n" . $mysqli->error); } } // - - - Verbindung zur Datenbank - - - function db_connect() { try { $c = false; // $db=mysql_connect(_SYSTEM_DATABASE_HOST,_SYSTEM_DATABASE_USER,_SYSTEM_DATABASE_PWD); $mysqli = new mysqli(_SYSTEM_DATABASE_HOST, _SYSTEM_DATABASE_USER, _SYSTEM_DATABASE_PWD, _SYSTEM_DATABASE_DATABASE); if ($mysqli->connect_error) { echo "Datenbankverbindungsfehler:" . mysqli_connect_error(); exit; } else { $c = TRUE; return $mysqli; } /* if (!$db) { die('Keine Verbindung m�glich: ' . mysql_error()); } else { mysql_select_db(_SYSTEM_DATABASE_DATABASE); $c=true; } */ } catch (Exception $e) { echo "==> Es ist ein Fehler aufgetreten: " . $e->getMessage(); $c = false; //exit(); return $c; } //return $mysqli; } // - - - Login - - - function login($user, $pass) { global $n, $hk; $n = "\n"; $hk = "'"; $c = false; if ($mysqli = db_connect()) { $query_login = $mysqli->query("SELECT handle, user_password FROM " . TABLE_ADMIN_ACL_AREA_USER . " where handle = " . $hk . $user . $hk); $login = $query_login->fetch_array(); if (($user != $login['handle']) OR ( $pass != $login['user_password']) OR ( $user == "") OR ( $login == "")) { if ($_GET['error'] == '') $_GET['error'] = 'FALSCHES PASSWORT ODER BENUTZERNAME'; if ($_GET['code'] == '') $_GET['code'] = '100'; echo '<?xml version="1.0" encoding="' . CHARSET . '"?>' . $n . "<STATUS>" . $n . " <STATUS_DATA>" . $n . " <CODE>" . $_GET['code'] . "</CODE>" . $n . " <MESSAGE>" . $_GET['error'] . "</MESSAGE>" . $n . " </STATUS_DATA>" . $n . "</STATUS>" . $n; exit(); } else { $c = true; } } return $c; } // - - - Debuginfo - - - function ShowDebug() { global $action, $version_major, $version_minor, $n; echo "<DEBUG>" . $n . " <GetAction>$_GET[action]</GetAction>" . $n . " <PostAction>$_POST[action]</PostAction>" . $n . " <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 bildbearbeiten($filename, $uploaddir, $uploadfile, $typename, $width_thumb, $width_info, $width_popup, $width_icon, $height_thumb, $height_info, $height_icon, $height_popup, $width_smallproduct, $height_smallproduct) { if (strstr($typename, '.gif')) { $image = imagecreatefromgif($uploadfile); } elseif ((strstr($typename, '.jpg')) || (strstr($typename, '.jpeg'))) { $image = imagecreatefromjpeg($uploadfile); } elseif (strstr($typename, '.png')) { $image = imagecreatefrompng($uploadfile); } //Originalgr��e und Ratio ermitteln $width = imagesx($image); $height = imagesy($image); $imgratio = ($width / $height); if ($imgratio > 1) { $new_width_thumb = $width_thumb; $new_height_thumb = ($width_thumb / $imgratio); $new_width_info = $width_info; $new_height_info = ($width_info / $imgratio); $new_width_popup = $width_popup; $new_height_popup = ($width_popup / $imgratio); $new_width_icon = $width_icon; $new_height_icon = ($width_icon / $imgratio); // Neu ab Ver 4.1 $new_width_smallproduct = $width_smallproduct; $new_height_smallproduct = ($width_smallproduct / $imgratio); } else { $new_height_thumb = $height_thumb; $new_width_thumb = ($height_thumb * $imgratio); $new_height_info = $height_info; $new_width_info = ($height_info * $imgratio); $new_height_popup = $height_popup; $new_width_popup = ($height_popup * $imgratio); $new_height_icon = $height_icon; $new_width_icon = ($height_icon * $imgratio); // Neu ab Ver 4.1 $new_height_smallproduct = $height_smallproduct; $new_width_smallproduct = ($height_smallproduct * $imgratio); } //Neue Resizebilder erstellen und speichern $new_image_thumb = imagecreatetruecolor($new_width_thumb, $new_height_thumb); ImageCopyResized($new_image_thumb, $image, 0, 0, 0, 0, $new_width_thumb, $new_height_thumb, $width, $height); $new_image_info = imagecreatetruecolor($new_width_info, $new_height_info); ImageCopyResized($new_image_info, $image, 0, 0, 0, 0, $new_width_info, $new_height_info, $width, $height); $new_image_popup = imagecreatetruecolor($new_width_popup, $new_height_popup); ImageCopyResized($new_image_popup, $image, 0, 0, 0, 0, $new_width_popup, $new_height_popup, $width, $height); $new_image_icon = imagecreatetruecolor($new_width_icon, $new_height_icon); ImageCopyResized($new_image_icon, $image, 0, 0, 0, 0, $new_width_icon, $new_height_icon, $width, $height); // Neu ab Ver 4.1 $new_image_smallproduct = imagecreatetruecolor($new_width_smallproduct, $new_height_smallproduct); ImageCopyResized($new_image_smallproduct, $image, 0, 0, 0, 0, $new_width_smallproduct, $new_height_smallproduct, $width, $height); $path_info = "../" . _SRV_WEB_IMAGES . _DIR_INFO . $filename; $path_popup = "../" . _SRV_WEB_IMAGES . "popup/" . $filename; $path_thumb = "../" . _SRV_WEB_IMAGES . _DIR_THUMB . $filename; $path_icon = "../" . _SRV_WEB_IMAGES . _DIR_ICON . $filename; // Neu ab Ver 4.1 $path_smallproduct = "../" . _SRV_WEB_IMAGES . "smallproduct/" . $filename; if (strstr($typename, '.gif')) { imagegif($new_image_thumb, $path_thumb); imagegif($new_image_info, $path_info); imagegif($new_image_popup, $path_popup); imagegif($new_image_icon, $path_icon); // Neu ab Ver 4.1 imagegif($new_image_smallproduct, $path_smallproduct); } elseif ((strstr($typename, '.jpg')) || (strstr($typename, '.jpeg'))) { imagejpeg($new_image_thumb, $path_thumb, 90); imagejpeg($new_image_info, $path_info, 90); imagejpeg($new_image_popup, $path_popup, 90); imagejpeg($new_image_icon, $path_icon, 90); // Neu ab Ver 4.1 imagejpeg($new_image_smallproduct, $path_smallproduct, 90); } elseif (strstr($typename, '.png')) { imagepng($new_image_thumb, $path_thumb, 9); imagepng($new_image_info, $path_info, 9); imagepng($new_image_popup, $path_popup, 9); imagepng($new_image_icon, $path_icon, 9); // Neu ab Ver 4.1 imagepng($new_image_smallproduct, $path_smallproduct, 9); } //Images freigeben imagedestroy($new_image_thumb); imagedestroy($new_image_info); imagedestroy($new_image_popup); imagedestroy($new_image_icon); // Neu ab Ver 4.1 imagedestroy($new_image_smallproduct); imagedestroy($image); return $filename; } function catbildbearbeiten($filename, $uploaddir, $uploadfile, $typename, $width_thumb, $width_info, $width_popup, $width_icon, $height_thumb, $height_info, $height_icon, $height_popup) { if (strstr($typename, '.gif')) { $image = imagecreatefromgif($uploadfile); } elseif ((strstr($typename, '.jpg')) || (strstr($typename, '.jpeg'))) { $image = imagecreatefromjpeg($uploadfile); } elseif (strstr($typename, '.png')) { $image = imagecreatefrompng($uploadfile); } //Originalgr��e und Ratio ermitteln $width = imagesx($image); $height = imagesy($image); $imgratio = ($width / $height); if ($imgratio > 1) { $new_width_thumb = $width_thumb; $new_height_thumb = ($width_thumb / $imgratio); $new_width_info = $width_info; $new_height_info = ($width_info / $imgratio); $new_width_popup = $width_popup; $new_height_popup = ($width_popup / $imgratio); $new_width_icon = $width_icon; $new_height_icon = ($width_icon / $imgratio); } else { $new_height_thumb = $height_thumb; $new_width_thumb = ($height_thumb * $imgratio); $new_height_info = $height_info; $new_width_info = ($height_info * $imgratio); $new_height_popup = $height_popup; $new_width_popup = ($height_popup * $imgratio); $new_height_icon = $height_icon; $new_width_icon = ($height_icon * $imgratio); } //Neue Resizebilder erstellen und speichern $new_image_thumb = imagecreatetruecolor($new_width_thumb, $new_height_thumb); ImageCopyResized($new_image_thumb, $image, 0, 0, 0, 0, $new_width_thumb, $new_height_thumb, $width, $height); $new_image_info = imagecreatetruecolor($new_width_info, $new_height_info); ImageCopyResized($new_image_info, $image, 0, 0, 0, 0, $new_width_info, $new_height_info, $width, $height); $new_image_popup = imagecreatetruecolor($new_width_popup, $new_height_popup); ImageCopyResized($new_image_popup, $image, 0, 0, 0, 0, $new_width_popup, $new_height_popup, $width, $height); $new_image_icon = imagecreatetruecolor($new_width_icon, $new_height_icon); ImageCopyResized($new_image_icon, $image, 0, 0, 0, 0, $new_width_icon, $new_height_icon, $width, $height); $path_info = "../" . _SRV_WEB_IMAGES . "category/" . _DIR_INFO . $filename; $path_popup = "../" . _SRV_WEB_IMAGES . "category/popup/" . $filename; $path_thumb = "../" . _SRV_WEB_IMAGES . "category/" . _DIR_THUMB . $filename; $path_icon = "../" . _SRV_WEB_IMAGES . "category/" . _DIR_ICON . $filename; if (strstr($typename, '.gif')) { imagegif($new_image_thumb, $path_thumb); imagegif($new_image_info, $path_info); imagegif($new_image_popup, $path_popup); imagegif($new_image_icon, $path_icon); } elseif ((strstr($typename, '.jpg')) || (strstr($typename, '.jpeg'))) { imagejpeg($new_image_thumb, $path_thumb); imagejpeg($new_image_info, $path_info); imagejpeg($new_image_popup, $path_popup); imagejpeg($new_image_icon, $path_icon); } elseif (strstr($typename, '.png')) { imagepng($new_image_thumb, $path_thumb); imagepng($new_image_info, $path_info); imagepng($new_image_popup, $path_popup); imagepng($new_image_icon, $path_icon); } //Images freigeben imagedestroy($new_image_thumb); imagedestroy($new_image_info); imagedestroy($new_image_popup); imagedestroy($new_image_icon); imagedestroy($image); return $filename; } function ersetzen($text) { $text = strtolower($text); $suche = array(' ', '(', ')', '�', '�', '�', '�', '�', '�', '�', '+', '/', '*', '\'', '?', '"', '\\'); $ersetzen = array('-', '', '', 'AE', 'OE', 'UE', 'ae', 'ss', 'oe', 'ue', '', '', '', '', '', '', ''); return str_replace($suche, $ersetzen, $text); } function aftime() { return date('Y-m-d H:i:s', time()); } function kategoriebaum($Kategorie_ID, $language_code) { global $mysqli; $cmd = "SELECT tc.categories_id, tc.parent_id, tcd.language_code, tcd.categories_name FROM " . TABLE_CATEGORIES . " tc, " . TABLE_CATEGORIES_DESCRIPTION . " tcd WHERE tc.categories_id = '$Kategorie_ID' AND tc.categories_id=tcd.categories_id AND tcd.language_code = '" . $language_code . "'"; $result_query = $mysqli->query($cmd); $result = $result_query->fetch_array(); if ($result['parent_id'] <> 0) { $result['categories_name'] = ersetzen($result['categories_name']); $result = kategoriebaum($result['parent_id'], $result['language_code']) . '/' . $result['categories_name']; return $result; } else return ersetzen($result['categories_name']); } function bildloschen($Artikel_ID) { global $mysqli; $dirIcon = "../" . _SRV_WEB_IMAGES . "icon/"; $dirInfo = "../" . _SRV_WEB_IMAGES . "info/"; $dirOrg = "../" . _SRV_WEB_IMAGES . "org/"; $dirPopup = "../" . _SRV_WEB_IMAGES . "popup/"; $dirThumb = "../" . _SRV_WEB_IMAGES . "thumb/"; // Neu ab Vers.4.1 $dirSmalproduct = "../" . _SRV_WEB_IMAGES . "smallproduct/"; $cmd = "select products_id, products_image, count(*) as total from " . TABLE_PRODUCTS . " where products_id = '$Artikel_ID'"; $duplicate_image_query = $mysqli->query($cmd); $duplicate_image = $duplicate_image_query->fetch_array(); $Bilddatei = $duplicate_image['products_image']; // Bild ist weniger als 2 Artikeln zugewiesen if ($duplicate_image['total'] < 1) { if (file_exists($dirIcon . $Bilddatei)) { @unlink($dirIcon . $Bilddatei); } if (file_exists($dirInfo . $Bilddatei)) { @unlink($dirInfo . $Bilddatei); } if (file_exists($dirOrg . $Bilddatei)) { @unlink($dirOrg . $Bilddatei); } if (file_exists($dirPopup . $Bilddatei)) { @unlink($dirPopup . $Bilddatei); } if (file_exists($dirThumb . $Bilddatei)) { @unlink($dirThumb . $Bilddatei); } //if (file_exists($dirSmalproduct . $Bilddatei)) { @unlink($dirSmalproduct . $Bilddatei); } } return true; } function bilderloschen($Artikel_ID) { global $mysqli; $dirIcon = "../" . _SRV_WEB_IMAGES . "icon/"; $dirInfo = "../" . _SRV_WEB_IMAGES . "info/"; $dirOrg = "../" . _SRV_WEB_IMAGES . "org/"; $dirPopup = "../" . _SRV_WEB_IMAGES . "popup/"; $dirThumb = "../" . _SRV_WEB_IMAGES . "thumb/"; // Neu ab Vers.4.1 //$dirSmalproduct = "../"._SRV_WEB_IMAGES."smallproduct/"; $bilder2 = array(); //$cmd = "select a.id, a.file from " .TABLE_MEDIA. " a, " .TABLE_MEDIA_LINK. " b, " .TABLE_MEDIA_TO_MEDIA_GALLERY . // " c where b.link_id = $Artikel_ID AND b.m_id = a.id AND b.m_id = c.m_id"; $cmd = "SELECT m.id, m.file from " . TABLE_MEDIA . " m, " . TABLE_MEDIA_LINK . " ml WHERE ml.link_id = '$Artikel_ID' AND m.id = ml.m_id"; $result = $mysqli->query($cmd) or die($mysqli->error); while ($bilder = $result->fetch_array()) { if (file_exists($dirIcon . $bilder['file'])) { @unlink($dirIcon . $bilder['file']); } if (file_exists($dirInfo . $bilder['file'])) { @unlink($dirInfo . $bilder['file']); } if (file_exists($dirOrg . $bilder['file'])) { @unlink($dirOrg . $bilder['file']); } if (file_exists($dirPopup . $bilder['file'])) { @unlink($dirPopup . $bilder['file']); } if (file_exists($dirThumb . $bilder['file'])) { @unlink($dirThumb . $bilder['file']); } // Neu ab Vers.4.1. //if (file_exists($dirSmalproduct . $bilder['file'])) { @unlink($dirSmalproduct . $bilder['file']); } $bilder2[] = array('id' => $bilder['id'], 'file' => $bilder['file']); } return $bilder2; } ?>
  6. Hallo giller! so wird gehostet: https://www.profihost.com/webhosting/expert/ Hallo jwinkel! Die 5er zu testen (und ggf. zu kaufen) bedeutet tausende von €uronen in den Sand zu setzen. Plugins, Schnittstellenapassung und Template... da sträuben sich mir die Nackenhaare. Sehe noch keinen Vorteil die 5er zu kaufen.
  7. Hallo oldbear! Ja index ist gesetzt. Der Leistungseinbruch ist so krass, dass man das Ding eben nur ausklammern kann. Nachteil für die Kundeninformation, Bedienbarkeit und erheblicher Nachteil für SEO. Schade. Hätte mir eine andere Lösung gewünscht. Muss mir überlegen ob man da nicht eine extra Seite macht. Ich könnte schwören die 4.1 Version lief bei mir deutlich schneller...hmm Gibt es nicht ein Programm mit dem man messen kann warum die Datenbank so lange braucht? Welche Anfragen an die Datenbank so zeitintensiv sind?
  8. Danke für die Info! Habe gerade festgestellt, dass die Hersteller hier den Großteil der Geschwindigkeit ausmachen. Wenn ich {box name=manufacturers order_by='m.manufacturers_name'} aus der index entferne geht der Kategorieaufruf ca. doppelt so schnell (von 2,8s auf 1,4s). Kann man das in der DB optimieren oder die Hersteller nachladen lassen?
  9. Ich muss ein alten Hut aufgreifen. Bei unserem Schop ist die Antwortzeit der Datenbank bei 2,7-2,8 s. Wie ist im Admin der "System/Datenbankmonitor/Query" zu verstehen und wie kann ich die Felder optimieren? Was bedutet hier max, min und Load? Und warum bekomme ich bei der "Live Performance" nur ein "504 Gateway Time-out"). Vielen Dank und freundliche Grüße Expensive SQL Tuning the following SQL could reduce the server load substantially Load Count SQL Max Min 32.984752 284 SELECT o.shop_id as shopid, p.products_id as pid, p.products_name as name, p.products_model as model, p.products_price as price, sum(p.products_quantity) as quantity, ((p.products_price)*sum(p.products_quantity)) as amount FROM xt_orders o, xt_orders_products p WHERE o.orders_id = p.orders_id GROUP BY pid ORDER BY amount DESC LIMIT 20 0.144876 0.105247 2.315218 2 DELETE FROM xt_products_description WHERE products_store_id=? 1.162182 1.153036 0.323596 2 INSERT INTO xt_google_categories (`google_category_id`,`language`,`country`,`sort_order`,`category_path`) VALUE 0.172476 0.151120 0.187035 2 ALTER TABLE `xt_orders` ADD `ratingchamp_review_sent_status` TINYINT NULL, ADD `ratingchamp_review_status` TINYINT NULL; 0.093832 0.093203 0.158897 2 DELETE FROM xt_seo_url WHERE store_id=? 0.081041 0.077856 0.123267 2 SELECT o.shop_id as shopid, p.products_id as pid, p.products_name as name, p.products_model as model, p.products_price as 0.073194 0.050073 0.110179 2 SELECT xt_orders.orders_id FROM xt_orders WHERE xt_orders.orders_id != 0 and ((orders_id LIKE '%botte%') or (... 0.055824 0.054355 0.106202 2 SELECT xt_orders.orders_id FROM xt_orders WHERE xt_orders.orders_id != 0 and ((orders_id LIKE '%schrader%') ... 0.053138 0.053064 0.105868 2 SELECT xt_orders.orders_id FROM xt_orders WHERE xt_orders.orders_id != 0 and ((orders_id LIKE '%abt%') or... 0.053196 0.052672 0.105641 2 SELECT sum(s.orders_stats_price) as sales, count(s.orders_id) as orders, o.shop_id as shopid FROM xt_orders o, xt_orders_stats s WHE,,... 0.054251 0.051390 Suspicious SQL The following SQL have high average execution times Avg Time Count SQL Max Min 1.157609 2 DELETE FROM xt_products_description WHERE products_store_id=? 1.162182 1.153036 0.177928 1 SELECT sum(s.orders_stats_price) as amount, o.shop_id as shopid FROM xt_orders o LEFT JOIN xt_orders_stats s USING(orders_id) LEFT JOIN xt_customers_addresses... 0.177928 0.177928 0.161798 2 INSERT INTO xt_google_categories (`google_category_id`,`language`,`country`,`sort_order`,`category_path`) VALUES 0.172476 0.151120 0.135056 1 ALTER TABLE xt_orders ADD `feedback_reminder` INT( 1 ) NOT NULL DEFAULT '0'; 0.135056 0.135056 0.123033 1 ALTER TABLE xt_orders ADD `feedback_hash` VARCHAR( 64 ) NOT NULL DEFAULT '0'; 0.123033 0.123033 0.116228 1 ALTER TABLE xt_orders ADD `feedback_life_circle_id` INT( 11 ) NOT NULL DEFAULT '0'; 0.116228 0.116228 0.116143 284 SELECT o.shop_id as shopid, p.products_id as pid, p.products_name as name, p.products_model as model, p.products_price as price, sum(p.products_quantity) as quantity, ((p.pro 0.144876 0.105247 0.099474 1 ALTER TABLE `xt_orders` DROP `ratingchamp_review_sent_status`, DROP `ratingchamp_review_status`; 0.099474 0.099474 0.093518 2 ALTER TABLE `xt_orders` ADD `ratingchamp_review_sent_status` TINYINT NULL, ADD `ratingchamp_review_status` TINYINT NULL; 0.093832 0.093203 0.079714 1 SELECT sum(s.orders_stats_price) as sales, count(s.orders_id) as orders, o.shop_id as shopid FROM xt_orders o, 0.079714 0.079714 Invalid SQL count(*) sql1 error_msg 1 SELECT `ew_evelations_show_text_status` FROM `xt_content` LIMIT 1 ERROR: Unknown column 'ew_evelations_show_text_status' in 'field list' ...xtAdmin/plugin_install.php 1 SELECT `ew_evelations_hyperlink` FROM `xt_content` LIMIT 1 ERROR: Unknown column 'ew_evelations_hyperlink' in 'field list' ...xtAdmin/plugin_install.php 1 SELECT `ew_evelations_hyperlink_status` FROM `xt_content` LIMIT 1 ERROR: Unknown column 'ew_evelations_hyperlink_status' in 'field list' ...xtAdmin/plugin_install.php
  10. Oder kann ich es über die Template index.html eingrenzen indem ich <div class="hidden"><img src="cronjob.php" width="1" height="1" alt="" /></div> nur einem Shop zuweise? Z.B. {if $smarty.const.SHOP_ID == 1} <div class="hidden"><img src="cronjob.php" width="1" height="1" alt="" /></div> {/if}
  11. Kann ich die Datei cron.feed.php irgendwie anpassen das diese nur auf eine Shop ID reagiert? <?php class cron_feed { public function _run($params) { if (!isset($params['id'])) { return 'no id in cron parameters'; } $feed_id=(int)$params['id']; include_once _SRV_WEBROOT.'xtFramework/classes/class.export.php'; $export = new export($feed_id); $export->cronjob='internal'; if ($export===false) return 'no feed with this id'; // rewrite price class, rewrite currency class unset($customers_status); $customers_status = new customers_status($export->data['feed_p_customers_status']); if ($export->data['feed_type']=='1') { unset($price); $price = new price($customers_status->customers_status_id, $customers_status->customers_status_master,$export->data['feed_p_currency_code']); } $return=$export->_run(); if ($return!==true) { return $return; } return true; } }
  12. Hallo! Der letzte Woche eingerichtete automatische Export für Preisvergleichseiten exportiert mal Brutto mal netto Preise ohne erkennbaren Grund. Der Preis wird mit $data.products_price.plain und einem Cronjob per file:cron.feed.php exportiert. Also über das aufrufen der Indexseite. Einzige Idee die ich habe ist: Wir haben zwei Shops, bei einem werden alle Preise netto, und bei dem eigentlichem Shop, alle Preise Brutto ausgegeben...
  13. Ja ist wirklich ungewöhnlich. Die Kategorie die man als erstes betritt, dort wird die h1 Überschrift in den cache geschrieben und bleibt dann bei allen Kategorien so. Diese wird praktisch nicht neu geladen bei betreten einer neuen Kategorie. Ich würde mal versuchen die categorie_listing gegen die Standard categorie_listing auszutauschen, cache löschten und gucken ob sich nicht dort der Fehler befindet. so oder so ähnlich: {if $categories_heading_title|strip_tags|trim != ''} <h1 class="breaking-headline">{$categories_heading_title}</h1> {else} <h1 class="breaking-headline">{$categories_name}</h1> {/if}
  14. plugin_cache, aber der ist nicht dafür zuständig. Wenn du die andren gelöscht hast und es nicht geht, dann mal mit einem andren Browser versuchen. Wie ist der Link zu deiner Seite?
×
×
  • Create New...