miniShop (Warenkorb, Produktdarstellung,...)

feuerball-design
Beiträge: 20
Registriert: Fr 24. Apr 2009, 11:19
Kontaktdaten:

miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von feuerball-design » Do 6. Mai 2010, 10:28

Kleiner, sehr reduzierter Shop bestehend aus fünf Teilen:
  • Produktseite (Seite zur Darstellung eines Produkts, Daten werden teilweise in Datenbank gespeichert (Preis, Steuer, Versand,.... Button zum Hinzufügen der Produkte in den Warenkorb)
  • Produktübersicht/Shopseite (Seite zur Auflistung mehrerer Produkte. Button zum Hinzufügen der Produkte in den Warenkorb)
  • Warenkorb (wird in einer Session gespeichert und aus dieser ausgelesen. Produkte können hinzugefügt, entfernt werden. Button zum Bestellabschluss)
  • Bestellseite (Listet dann engültig alle Produkte des Warenkorbs/der Session und dazu ein Bestellformular mit Angabe der Zahlungsoption)
  • Warenkorbvorschau (dient der kurzen Übersicht der Session. Kann in der Produktseite und/oder der Produktübersicht angehängt werden)
Links zu Seiten mit AGBs, Widerruf und Versandkosten sind überall enthalten. Die Artikel müssen aber selbst (da individuell verschieden) erstellt werden.

Wichtiger Hinweis:
Dieser Shop ist rechtlich eventuell nicht problemlos. Deshalb auch nur Version 0.91! Es geht mir auch weniger darum einen fertigen Contenido-Shop vorzulegen, sondern eher einen Ansatz auf dem man einen eigenen Shop aufbauen kann. Gerade die Session-Verwaltung wird dort ganz praktisch gezeigt und dürfte für viele interessant sein, da das im Contenido-Forum nicht allzu häufig gezeigt wird.
Wer also einen fertigen Shop zum direkten Einsatz sucht, der ist mit diesem Modul falsch beraten und sollte statt dessen auf diverse bestehende Lösungen ausweichen.

Historie:
Das Modul Produktübersicht basiert hauptsächlich auf dem Modul "Article List Advanced V4.6.x V1.4" von Björn Behrens (HerrB).
Das Modul Bestellseite basiert hauptsaechlich auf dem Modul "Contact Form Input" von Andreas Lindner (4fb).
Insgesamt wurde das Warenkorb-Konzept nach einem Tutorial von Richard Clark (http://www.qualitycodes.com/tutorial.ph ... art-in-PHP) umgesetzt und auf Contenido angepasst.

miniShop
Version: 0.91 (Download unter Contenido-Wiki: MiniShop_v091.zip)
Autor: Florian Bube (http://www.feuerball-design.de)
Erstellt am: 06.05.2010
Letztes Update: 27.08.2010

Changelog:
im Vergleich zur Version 0.9 wurden in der Version 0.91 zwei kleinere Fehler behoben, die in der Berechnung des Warenkorbs und im Bestellabschluss versteckt waren. Es haben sich deshalb nur die beiden Module "shop_Produkt" und shop_Bestellung" verändert.

Installation und Beschreibung:
siehe ReadMe.txt (im Download)

To Do:
Natürlich gibt auch bei diesem Modul noch einiges was man verbessern kann. Vielleicht habt ihr ja auch noch ein paar Ideen und wollt/könnt selbst was dran machen? Vielleicht habt ihr ja auch noch rechtliche Aspekte die durch das Modul nicht erfüllt werden?

Was aus meiner Sicht noch zu ändern wäre:
  • Soweit ich weiß wird intern nur mit 19% USt. gerechnet. D.h. die Angabe der USt. in der Produkt-Konfiguration wird nicht berücksichtigt.
  • Die Paypal-Einbindung ist die primitivste Möglichkeit die angeboten wird und es gibt da noch sichere Möglichkeiten.
  • Die Produkt-Tabelle enthält noch einige Felder die aktuell nicht gebraucht werden. Vielleicht macht es ja aber auch Sinn, da noch mehr einzutragen?
  • Das Bestelldatum, aber nicht die Zeit, wird in der Datenbank erfasst.
  • Die momentane Rabatt-Geschichte ist sehr speziell. Vielleicht gibts da noch Ideen?
  • ...
Ich freue mich auf eure Ideen, Anmerkungen und Verbesserungen!
Zuletzt geändert von feuerball-design am Fr 27. Aug 2010, 12:12, insgesamt 2-mal geändert.

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von idea-tec » Do 6. Mai 2010, 10:44

... snipp ... falsch formuliert, missverständlich
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

CaZper
Beiträge: 6
Registriert: Mo 15. Nov 2010, 17:09
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von CaZper » Mo 15. Nov 2010, 17:22

Hi !

Erstmal Super Arbeit ! :) , wenn die Artikel so angezeigt werden wie im Editor :) und da wären
wir dann auch schon bei meinem Problemm...

Ich lege einen Artikel an und gebe dann die Preise des Produktes ein, um mit der Produktbeschreibung fortzufahren,
das ist soweit auch alles super, doch wenn ich speicher und in die Vorschau gehe (natürlcih auch auf der HP selbst)
ist die schrifft viel zu groß und das Bild ist weg ^^ die komplette Formatierung ist weg...

HILFE !! :) DANKE

der Link zur Produktübersicht http://anja-berger.de/shop/cms/front_co ... p?idart=44 ( da stimmt die Textgröße noch )
der Link zum Test Produkt ( da noch keine Navi vorhanden :) ) http://anja-berger.de/shop/cms/front_co ... 2&idcat=43

Ich weiß nicht welche Codes interessant währen ^^ hier mal von der Index... meine CSS sagt 13px. für den body ^^

Code: Alles auswählen

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title> |</title>
<link rel="stylesheet" href="css/design.css" type="text/css" media="all" />
</head>

<body>
<div id="header"><div id="logo"></div>
<div id="header_nav">Startseite * Unser Laden * Kontakt * Wiederrufsrecht </div>
</div>
<div id="navi_a1"></div>
<div id="navi"></div>
<div id="navi_r"></div>
<div id="navi_r1"></div>
<div id="content_kasten">
  <table width="762" border="0" cellpadding="0" cellspacing="0">
    <tr>
      <td width="605" valign="top"><div id="content_pic"></div>
        <table border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td></td>
          </tr>
        </table></td>
      <td width="157" colspan="2"><div id="content_r"></div>       </td>
    </tr>
    <tr>
      <td><div id="content">
        <container id="52" name="Text" types="Content" mode="optional" default="">
          <div align="center">Content 1</div>
        </container>
        <container id="53" name="Text" types="Content" mode="optional" default="">
          <div align="center">Content 2</div>
        </container>
        <container id="54" name="Text" types="Content" mode="optional" default="">
          <div align="center">Content 3</div>
        </container>
        <container id="55" name="Text" types="Content" mode="optional" default="">
          <div align="center">Content 4</div>
        </container>
        <container id="56" name="Text" types="Content" mode="optional" default="">
          <div align="center">Content 5</div>
        </container>
        <container id="57" name="Text" types="Content" mode="optional" default="">
          <div align="center">Content 6</div>
        </container>
        <container id="58" name="Text" types="Content" mode="optional" default="">
          <div align="center">Content 7</div>
        </container>
        <container id="59" name="Text" types="Content" mode="optional" default="">
          <div align="center">Content 8</div>
        </container>
      </div></td>
      <td valign="top"><div id="content_r1"></div></td>
      <td>&nbsp;</td>
    </tr>
  </table>
</div>
</body>
</html>

</div>
</p>
</body>
</html>
eine ordentliche tabellen struktur ist auch nur css

feuerball-design
Beiträge: 20
Registriert: Fr 24. Apr 2009, 11:19
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von feuerball-design » Mo 15. Nov 2010, 17:46

CaZper hat geschrieben:Ich lege einen Artikel an und gebe dann die Preise des Produktes ein, um mit der Produktbeschreibung fortzufahren,
das ist soweit auch alles super, doch wenn ich speicher und in die Vorschau gehe (natürlcih auch auf der HP selbst)
ist die schrifft viel zu groß und das Bild ist weg ^^ die komplette Formatierung ist weg...
Hallo CaZper,

das Problem kommt daher, dass du den kompletten Text (wahrscheinlich auch noch das Bild) in den Überschriften-Container/-Modul (h1) eingetragen hast. Und da steht der Inhalt komplett ohne Formatierungen (und ohne Bilder) in einem h1-Tag.
Statt dessen müsstest du die Beschreibung in einen eigenen Text-Container eintragen. Dann wird da auch nix weggelöscht.

Schöne Grüße
Florian

CaZper
Beiträge: 6
Registriert: Mo 15. Nov 2010, 17:09
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von CaZper » Mo 15. Nov 2010, 17:53

ACH! :D

Ich bin ja doof ! !!!!!!!!!!!!!!!!!!! :D

Danke !! :D
eine ordentliche tabellen struktur ist auch nur css

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von benja » Sa 26. Feb 2011, 22:05

Hallo, wurde das Modul inzwischen eigentlich weiter entwickelt? Ich habe es unter 4.8.12 getestet und Fehlermeldungen (getimagesize) erhalten.
Nach Änderung folgender Zeilen ist der Fehler weg.

Modul Shop Produkt:

Code: Alles auswählen

list ($originalwidth, $originalheight, $type, $attr) = getimagesize($originalpicture);
ändern in:

Code: Alles auswählen

list ($originalwidth, $originalheight, $type, $attr) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $originalpicture));
und

Code: Alles auswählen

list ($picwidth, $picheight, $type, $attr) = getimagesize($semipicture);
ändern in:

Code: Alles auswählen

list ($picwidth, $picheight, $type, $attr) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $semipicture));

Modul Shop Produktübersicht:

Code: Alles auswählen

list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["WebPath"]);
ändern in:

Code: Alles auswählen

list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["ServerPath"]);
LG
Benja

SoFly
Beiträge: 6
Registriert: Mi 8. Sep 2010, 13:53
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von SoFly » Di 5. Apr 2011, 23:29

ich nutze contenido 4.8.14. allerdings werden mir keine produkte in der produktübersicht ausgegeben. ich habe alles wie in der readme datei eingestellt/erstellt. hat jemand eine lösung für mein problem? :)

gruß sofly

reeen83
Beiträge: 8
Registriert: Do 28. Jul 2011, 09:25
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von reeen83 » Do 28. Jul 2011, 09:33

hallo

finde den ansatz des shops echt super. habe ihn verwendet um einen kleinen shop aufzusetzen. habe dann noch eine grössenwahl für produkte hinzugefügt und läuft soweit alles super.
anmerkung: die auslagerung der echo-ausgaben in modultemplates (html gerüst) wäre sicher ein angenehmes update. diesen aufwand habe ich mir auch gespart, da es sich nur um eine sehr kleine seite handelt.


eine frage habe ich jedoch: hattest du probleme mit den sessions während der entwicklung? ich habe folgenden effekt:
teilweise werden die artikle hinzugefügt und teilweise nicht. manchmal 10 mal hintereinander nicht und dann klappts 20mal wieder einwandfrei.
im büro, wo ich eine höhere bandbreite habe, funktioniert es non-stop.

greifst du hier auf eine session-klasse zu? hätte nix gefunden.

danke für dein feedback und weiter so :D

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von Peer » Mo 28. Nov 2011, 19:57

Hallo,

ich habe das Modul für die Version 4.8.15 angepasst, mit CSS, einstellungen über den Mandanten und Co...

Jetzt war ich beim Bestell Formular. Leider bekomme ich die Bestellung nicht raus. Er gibt mir Fehler an wenn ich ich ein Pflichtfeld vergessen habe aber die Mail geht nicht raus.

Hat jemand eine Idee ?

Hier ist der Code den ich verwende

Bestellung Input

Code: Alles auswählen

?><?php
/*** 
* Bestellseite-INPUT 
*
* miniShop
*
* @version    0.9
* @author     Florian Bube
* @link       http://www.feuerball-design.de
*
* basiert hauptsaechlich auf: Contact Form Input von Andreas Lindner (4fb)
*
***/

?>

<table border="0">
<tr>
        <td><?php echo mi18n("PayPal");?></td>
        <td><input type="text" name="<?php echo "CMS_VAR[10]";?>" value="<?php echo "CMS_VALUE[10]"; ?>"></td>
    </tr>
    <tr>
        <td><?php echo mi18n("25% Rabatt-Option aktiv?");?></td>
        <td><input type="checkbox" name="<?php echo "CMS_VAR[9]";?>" value="1" <?php if ("CMS_VALUE[9]" == 1) echo ' checked="checked"'; ?>/> (Rabatt aktivieren?)</td>
    </tr>
    <tr>
        <td><?php echo mi18n("Absender Name");?></td>
        <td><input type="text" name="<?php echo "CMS_VAR[2]";?>" value="<?php echo "CMS_VALUE[2]"; ?>"></td>
    </tr>
    <tr>
        <td><?php echo mi18n("Empfänger EMail");?></td>
        <td><input type="text" name="<?php echo "CMS_VAR[1]";?>" value="<?php echo "CMS_VALUE[1]"; ?>"></td>
    </tr>
    <tr>
        <td><?php echo mi18n("2. Empfänger EMail");?></td>
        <td><input type="text" name="<?php echo "CMS_VAR[8]";?>" value="<?php echo "CMS_VALUE[8]"; ?>"></td>
    </tr>
    <tr>
        <td><?php echo mi18n("Betreff");?></td>
        <td><input type="text" name="<?php echo "CMS_VAR[3]";?>" value="<?php echo "CMS_VALUE[3]"; ?>"></td>
    </tr>
    <?php
    $c1 = '';
    $c2 = '';
    $c3 = '';
    $c4 = '';
    switch (strtolower("CMS_VALUE[4]")) {
        case "smtp" :
            $c1 = ' checked';
            break;
        case "mail" :
            $c2 = ' checked';
            break;
        case "sendmail" :
            $c3 = ' checked';
            break;
        case "qmail" :
            $c4 = ' checked';
            break;
        default :
            $c3 = ' checked';
    }
    ?>
    <tr>
        <td valign="top"><?php echo mi18n("Mailer");?></td>
        <td>
            <input type="radio" name="<?php echo "CMS_VAR[4]";?>" value="mail"<?php echo $c2;?>>&nbsp;<?php echo mi18n("mail");?><br/>
            <input type="radio" name="<?php echo "CMS_VAR[4]";?>" value="qmail"<?php echo $c4;?>>&nbsp;<?php echo mi18n("qmail");?><br/>
            <input type="radio" name="<?php echo "CMS_VAR[4]";?>" value="sendmail"<?php echo $c3;?>>&nbsp;<?php echo mi18n("sendmail");?><br/>
            <input type="radio" name="<?php echo "CMS_VAR[4]";?>" value="smtp"<?php echo $c1;?>>&nbsp;<?php echo mi18n("smtp");?><br/>
        </td>
    </tr>
    <tr>
        <td><?php echo mi18n("SMTP Host");?></td>
        <td><input type="text" name="<?php echo "CMS_VAR[5]";?>" value="<?php echo "CMS_VALUE[5]"; ?>"></td>
    </tr>
    <tr>
        <td><?php echo mi18n("SMTP User");?></td>
        <td><input type="text" name="<?php echo "CMS_VAR[6]";?>" value="<?php echo "CMS_VALUE[6]"; ?>"></td>
    </tr>
    <tr>
        <td><?php echo mi18n("SMTP Passwort");?></td>
        <td><input type="text" name="<?php echo "CMS_VAR[7]";?>" value="<?php echo "CMS_VALUE[7]"; ?>"></td>
    </tr>
</table>
<?php


Bestellung Output

Code: Alles auswählen

<?php
/*** 
* Bestellseite-OUTPUT 
*
* miniShop
*
* @version    0.9
* @author     Florian Bube
* @link       http://www.feuerball-design.de
*
* basiert hauptsaechlich auf: Contact Form Input von Andreas Lindner (4fb)
*
***/

#Includes
cInclude("classes", "class.phpmailer.php");
cInclude("frontend", "includes/functions.shopping.php");

#Session-Shopping-Werte werden geladen, Session-Rabatt-Option erzeugt und gespeichert
global $shoppingCart;
global $spezial_rabatt;
$sess->register('spezial_rabatt');

if ("CMS_VALUE[9]" == 1) $rabatt_option = true;
else  $rabatt_option = false;

#Seitenangaben (idcatart)
$warenkorb = getEffectiveSetting('shop', 'warenkorb', 50); //Warenkorbseite
$shop = getEffectiveSetting('shop', 'produktuebersicht', 19); //Produktuebersicht
$widerrufsrecht = getEffectiveSetting('shop', 'widerruf', 61); //Seite mit Widerrufsrecht
$agb = getEffectiveSetting('shop', 'agb', 56); //Seite mit AGBs
$versandkosten = getEffectiveSetting('shop', 'versand', 50); //Seite mit Versandkosten

#E-Mail fuer die Paypal-Zahlung
$paypalmail = "CMS_VALUE[10]";


#AGBs als PDF (werden an Bestellbestaetigung angehaengt)
$agbanhang = 'upload/pdfs/agb.pdf';

#Wenn das Formular abgesendet wurde und die Pflichtfelder ausgefüllt sind, dann erfolgt die Bestellung
if ($_POST['send'] == 1 && $_POST['Vorname'] != '' && $_POST['Nachname'] != '' && $_POST['EMail'] != '' && $_POST['Strasse'] != '' && $_POST['Hausnummer'] != '' && $_POST['PLZOrt'] != '' && $_POST['Ort'] != '' && $_POST['agb'] == 1 && ($_POST['Rabatt'] != '' && $spezial_rabatt == true)) {
    #Bestellung wird in Datenbank eintragen
    if (!is_object($dbshop)) {
        $dbshop = new DB_Contenido;
    }
    $sql = 'INSERT INTO shop_customers (serial, title, name, email, street, address, phone, company, message) VALUES ("", "'.$_POST['Anrede'].'", "'.$_POST['Vorname'].' '.$_POST['Nachname'].'", "'.$_POST['EMail'].'", "'.$_POST['Strasse'].' '.$_POST['Hausnummer'].'", "'.$_POST['PLZOrt'].' '.$_POST['Ort'].'", "'.$_POST['Telefon'].'", "'.$_POST['Firma'].'", "'.$_POST['Anliegen'].'")';
    $dbshop->query($sql);
    
    $bestelldatum = date("Y-m-d"); //bei dem Datum fehlt noch die Zeit
    $lastid = mysql_insert_id($db->link_id());
    $sql = 'INSERT INTO shop_orders (serial, date, customerid) VALUES ("", "'.$bestelldatum.'", '.$lastid.')';
    $dbshop->query($sql);
    $lastid = mysql_insert_id($db->link_id());
    

    #No errors, create and send mail
        $mail = new phpmailer;
        $mail_body = '<html><head></head><body bgcolor="#ffffff">';
    if ($_POST['Anrede'] == "Frau") $mail_body .= '<p>Sehr geehrte Frau '.$_POST['Nachname'].',<br/>';
    else $mail_body .= '<p>Sehr geehrter Herr '.$_POST['Nachname'].',<br/>';
    
    $mail_body .= 'Danke für Ihre Bestellung! Im folgenden erhalten Sie noch einmal eine Übersicht über Ihre Bestellung sowie die Zahlungsinformationen. <br/>
            Der Versand der Ware erfolgt nach Zahlungseingang an die von Ihnen angegebene Adresse. Für Fragen und weitere Informationen stehen wir Ihnen gerne zur Verfügung.
            <br/><br/>Schöne Grüße
            <br/>Ihr Shop-Team<br/></p>';

    $mail_body .= '<table cellspacing="0" cellpadding="2" border="0">';
        if (is_array($_POST)) {
            foreach ($_POST as $key => $value) {
                if ($key != 'send') {
                    $mail_body .= "<tr><td>$key</td><td>$value</td><td></td></tr>";
                }
            }
        }
    $mail_body .= '</table><table cellspacing="0" cellpadding="2" border="0">';
    $mail_body .= "<tr><td>Ihre Bestellung:</td><td></td><td></td></tr>";
    $mail_body .= "<tr><td>Artikel</td><td>Einzelpreis</td><td>Anzahl</td><td>MwSt.</td><td>Betrag</td></tr>";
    
    #Der Inhalt des Warenkorbs wird nochmal ausgepackt und aufgelistet
    $max = count($shoppingCart);
    $sum = 0;
    for ($i = 0; $i < $max; $i++) {
        $pid = $shoppingCart[$i]['productid'];
        $q = $shoppingCart[$i]['qty'];
        $pname = get_product_name($pid);
    $discount = get_discount($pid);
    if ($pid == 48 && $_POST['Rabatt'] != '' && $discount == 1) $price = round((get_price($pid)*3/4), 2);
        else $price = get_price($pid);
        $shipping = get_shipping($pid);
        $sum += $price * $q;
        $shippingsum += $shipping * $q;
    
    #Der Warenkorb wird auch ncchmal in der Datenbank gespeichert
        $sql = 'INSERT INTO shop_order_detail (orderid, productid, quantity, price) VALUES ('.$lastid.', '.$pid.', '.$q.', '.$price.')';
        $dbshop->query($sql);

        $mail_body .= '<tr><td>'.$pname.'</td><td>'.number_format($price, 2, ',', '').' EUR</td><td>'.$q.' St&uuml;ck</td><td>19%</td><td>'.number_format(($price*$q), 2, ',', '').' EUR</td></tr>';
    }
    $mail_body .= '<tr><td colspan="4">Summe Artikel (netto):</td><td>'.number_format(($sum/1.19), 2, ',', '').' EUR</td><td></td><td></td></tr>';
    $mail_body .= '<tr><td colspan="4">zzgl. MwSt. 19% Betrag:</td><td>'.number_format(($sum-($sum/1.19)), 2, ',', '').' EUR</td></tr>';
    $mail_body .= '<tr><td colspan="4">Summe Artikel (brutto):</td><td>'.number_format($sum, 2, ',', '').' EUR</td></tr>';
    $mail_body .= '<tr><td colspan="4">Versandkosten:</td><td>'.number_format($shippingsum, 2, ',', '').' EUR</td></tr>';
    $mail_body .= '<tr><td colspan="4"><b>Gesamtbetrag:</b></td><td><b>'.number_format(($sum+$shippingsum), 2, ',', '').' EUR</b></td></tr>';
    $mail_body .= '<tr><td colspan="5"></td></tr>';

    if ($_POST['Bezahlung'] == "Paypal") {
        $mail_body .= '<tr><td colspan="5">Bitte überweisen Sie den Gesamtbetrag von '.number_format(($sum+$shippingsum), 2, ',', '').' EUR per Paypal an folgende E-Mail-Adresse:</td></tr>';
        $mail_body .= '<tr><td colspan="5">'.$paypalmail.'</td></tr>';
    } else {
        $mail_body .= '<tr><td colspan="5">Bitte überweisen Sie den Gesamtbetrag von '.number_format(($sum+$shippingsum), 2, ',', '').' EUR per Banküberweisung auf folgendes Konto:</td></tr>';
        
        #Hier (xxx) bitte die Bankverbindung eintragen auf die der Warenpreis bei Bestellung ueberwiesen werden soll:
        $mail_body .= '<tr><td colspan="3">Kontoinhaber</td><td colspan="2">xxx</td></tr>';
        $mail_body .= '<tr><td colspan="3">Bank</td><td colspan="2">xxx</td></tr>';
        $mail_body .= '<tr><td colspan="3">Bankleitzahl</td><td colspan="2">xxx</td></tr>';
        $mail_body .= '<tr><td colspan="3">Kontonummer</td><td colspan="2">xxx</td></tr>';
        $mail_body .= '<tr><td colspan="3">Betreff</td><td colspan="2">Shop-Bestellung</td></tr>';
    }
    $mail_body .= '</table></bo'.'dy></html>';
    $mail->Host = "localhost";
    $mail->IsHTML(true);

        #Get mailer from settings
        switch (strtolower("CMS_VALUE[4]")) {
            case "smtp" :
                $mail->IsSMTP();
                $host = "CMS_VALUE[5]";
                $user = "CMS_VALUE[6]";
                $password = "CMS_VALUE[7]";
                if (($host != '') && ($user != '') && ($password != '')) {
                    $mail-> $SMTPAuth = true;
                    $mail->Host = $host;
                    $mail->Username = $user;
                    $mail->Password = $password;
                }
                break;
            case "mail" :
                $mail->IsMail();
                break;
            case "sendmail" :
                $mail->IsSendmail();
                break;
            case "qmail" :
                $mail->IsQmail();
                break;
            default :
                }
    #AGB als Dokument für den Anhang
    $mail_attachment = $agbanhang;
        $mail->From = "CMS_VALUE[0]";
        $mail->FromName = "CMS_VALUE[2]";
        
        #Bestellbestaetigung fuer den Kaeufer
        $mail->AddAddress($_POST['EMail'], "");
    //$mail->AddAddress("CMS_VALUE[1]", "");
    $mail->AddAttachment($mail_attachment);
    $mail->Subject = "CMS_VALUE[3]";
        $mail->Body = $mail_body;
        $mail->WordWrap = 50;
        $mail->Send();
    
    
    #2. Mail (zur Info fuer den/die Shopbesitzer)
        $mail2 = new phpmailer;
        $mail2->Host = "localhost";
        $mail2->IsHTML(true);

        #Get mailer from settings
        switch (strtolower("CMS_VALUE[4]")) {
            case "smtp" :
                $mail2->IsSMTP();
                $host = "CMS_VALUE[5]";
                $user = "CMS_VALUE[6]";
                $password = "CMS_VALUE[7]";
                if (($host != '') && ($user != '') && ($password != '')) {
                    $mail2-> $SMTPAuth = true;
                    $mail2->Host = $host;
                    $mail2->Username = $user;
                    $mail2->Password = $password;
                }
                break;
            case "mail" :
                $mail2->IsMail();
                break;
            case "sendmail" :
                $mail2->IsSendmail();
                break;
            case "qmail" :
                $mail2->IsQmail();
                break;
            default :
                }
        $mail2->From = "CMS_VALUE[0]";
        $mail2->FromName = "CMS_VALUE[2]";
        $mail2->AddAddress("CMS_VALUE[1]", "CMS_VALUE[8]");
        $mail2->Subject = "CMS_VALUE[3]";
        $mail2->Body = $mail_body;
        $mail2->WordWrap = 50;
        $mail2->Send();

        #Display message after mail is sent
        echo '<p>'.mi18n("Danke für Ihre Bestellung! Sie erhalten umgehend eine E-Mail mit allen weiteren Informationen.").'</p>';
        
        #Im Falle von Paypal kann direkt bezahlt werden.
        #Dazu wird der Warenkorb nach Klick an Paypal uebergeben und kann dort direkt bezahlt werden.
        if ($_POST['Bezahlung'] == "Paypal") {
        echo '<p class="paying"><img src="images/paypal_80x35.gif" width="80" height="35" alt="Paypal"/></p>';
        echo '<p class="paying">'.mi18n("Sie können nun sofort zu Paypal wechseln und Ihre Bestellung bezahlen.").'</p>';
        echo '<form class="payit" action="https://www.paypal.com/cgi-bin/webscr" method="post">
           <input type="hidden" name="cmd" value="_cart" />
           <input type="hidden" name="upload" value="1" />
           <input type="hidden" name="currency_code" value="EUR" />
           <input type="hidden" name="business" value="'.$paypalmail.'" />';

        $max = count($shoppingCart);
        $sum = 0;
        for ($i = 0; $i < $max; $i++) {
            $pid = $shoppingCart[$i]['productid'];
            $q = $shoppingCart[$i]['qty'];
            $pname = get_product_name($pid);
        $discount = get_discount($pid);
            if ($pid == 48 && $_POST['Rabatt'] != '' && $discount == 1) $price = round((get_price($pid)*3/4), 2);
            else $price = get_price($pid);
            $shipping = get_shipping($pid);
            $sum += $price * $q;
            $shippingsum += $shipping * $q;
            echo '<input type="hidden" name="item_name_'.($i+1).'" value="'.$pname.'" />'; 
            echo '<input type="hidden" name="amount_'.($i+1).'" value="'.number_format($price, 2, '.', '').'" />'; 
            echo '<input type="hidden" name="quantity_'.($i+1).'" value="'.$q.'" />'; 
            echo '<input type="hidden" name="shipping_'.($i+1).'" value="'.number_format($shipping, 2, '.', '').'" />'; 
            echo '<input type="hidden" name="shipping2_'.($i+1).'" value="'.number_format($shipping, 2, '.', '').'" />'; 
        }

        echo '<input type="submit" value="Jetzt mit PayPal bezahlen!" />
        </form>'; 
        }

        unset($shoppingCart);
        unset($spezial_rabatt);
        
#Falls das Formular noch nicht abgesandt wurde bzw. nicht vollstaendig ausgefuellt wurde. Dann wird ganz normal das Bestellformular angezeigt (auch die Ansicht wenn die Seite das 1. mal aufgerufen wird)
} else {

    #Form has not been sent yet
    cInclude('classes', 'class.article.php');
    cInclude('classes', 'class.template.php');

    #Zeile mit den Links zu AGB, Widerrufsrecht und Versandkosten
    echo '<div id="shopinfos">'."\n";
    echo '<a href="front_content.php?idcatart='.$agb.'" target="_blank">AGB und wichtige Kundeninformationen</a> | <a href="front_content.php?idcatart='.$widerrufsrecht.'" target="_blank">Widerrufsrecht</a> | <a href="front_content.php?idcatart='.$versandkosten.'" target="_blank">Versandkosten</a>'."\n";
    echo '</div>'."\n";


if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}

$auswahl_zahl1 = ' checked="checked"';
$auswahl_zahl2 = "";
$auswahl_anrede1 = "";
$auswahl_anrede2 = "";
$auswahl_email = "";
$auswahl_vorname = "";
$auswahl_nachname = "";
$auswahl_firma = "";
$auswahl_strasse = "";
$auswahl_nummer = "";
$auswahl_plz = "";
$auswahl_ort = "";
$auswahl_telefon = "";
$auswahl_anliegen = "";
$auswahl_rabatt = "";


if ($_POST['send'] == 1) {
    #Form has been sent

    #Check user input
    $noerrors = true;
    $msg = '';
    if ($_POST['Bezahlung'] == "Paypal") $auswahl_zahl2 = ' checked="checked"';
    else $auswahl_zahl1 = ' checked="checked"';
    if ($_POST['Anrede'] == "Frau") $auswahl_anrede2 = ' selected="selected"';
    else $auswahl_anrede1 = ' selected="selected"';
    $auswahl_email = $_POST['EMail'];
    $auswahl_vorname = $_POST['Vorname'];
    $auswahl_nachname = $_POST['Nachname'];
    $auswahl_firma = $_POST['Firma'];
    $auswahl_strasse = $_POST['Strasse'];
    $auswahl_nummer = $_POST['Hausnummer'];
    $auswahl_plz = $_POST['PLZOrt'];
    $auswahl_ort = $_POST['Ort'];
    $auswahl_telefon = $_POST['Telefon'];
    $auswahl_anliegen = $_POST['Anliegen'];
    $auswahl_rabatt = $_POST['Rabatt'];
        
    if ($_POST['Vorname'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihren Vornamen ein!").'</li>';
    }
    if ($_POST['Nachname'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihren Namen ein!").'</li>';
    }
    if ($_POST['EMail'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihre E-Mail-Adresse ein!").'</li>';
    }
    if ($_POST['Strasse'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihre Stra&szlig;e ein!").'</li>';
    }
    if ($_POST['Hausnummer'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihre Hausnummer ein!").'</li>';
    }
    if ($_POST['PLZOrt'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihre PLZ ein!").'</li>';
    }
    if ($_POST['Ort'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihren Ort ein!").'</li>';
    }
    if ($_POST['agb'] != 1) {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte lesen Sie die allgemeinen Gesch&auml;ftsbedingungen und prüfen Sie Ihr Einverst&auml;ndnis!").'</li>';
    }
    if ($_POST['Rabatt'] == '' && $spezial_rabatt == true) {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihre Shopping-Card-Nummer ein!").'</li>';
    }
    
    if ($noerrors == false) {
        echo "<p>";
        #Errors have been found
        #Wenn eine Shopping-Card eingetragen wurde, dann werden die Preise neu berechnet (mit Rabatt) und das Formular erneut aufgerufen.
        if ($auswahl_rabatt != '' && $spezial_rabatt == false) {
        $spezial_rabatt = true;
        echo '<ul id="formfehler">';
        echo '<li>'.mi18n("Die Preise wurden aktualisiert! Sie k&ouml;nnen die Bestellung jetzt abschlie&szlig;en.").'</li>';
        echo '</ul>';
    } else {
        echo '<strong>'.mi18n("Beim Versenden sind folgende Fehler aufgetreten:").'</strong>';
        echo '<ul id="formfehler">';
        echo $msg;
        echo '</ul>';
    }
    } else {
        #Wenn eine Shopping-Card eingetragen wurde, dann werden die Preise neu berechnet (mit Rabatt) und das Formular erneut aufgerufen.
        if ($auswahl_rabatt != '' && $spezial_rabatt == false) {
        $spezial_rabatt = true;
        echo '<ul id="formfehler">';
        echo '<li>'.mi18n("Die Preise wurden aktualisiert! Sie k&ouml;nnen die Bestellung jetzt abschlie&szlig;en.").'</li>';
        echo '</ul>';
    }
    }
}
    
    echo '<form name="bestellung" method="post">'."\n";
    echo '   <input type="hidden" name="pid" />'."\n";
    echo '   <input type="hidden" name="command" />'."\n";
    echo '   <div id="bestellkorb">'."\n";
    echo '      <h4>Bestellung</h4>'."\n";
    echo '      <table id="bestellung">'."\n";

    #Warenkorb wird in Bestellformular uebernommen
        if($sess->is_registered('shoppingCart') && is_array($shoppingCart)) {
        echo '      <tr class="titel"><td class="artikel">Artikel</td><td class="preis">Einzelpreis</td><td class="anzahl">Anzahl</td><td class="steuer">MwSt.</td><td class="betrag">Betrag</td></tr>';
            $max = count($shoppingCart);
            $sum = 0;
            for ($i = 0; $i < $max; $i++) {
                $pid = $shoppingCart[$i]['productid'];
                $q = $shoppingCart[$i]['qty'];
                $pname = get_product_name($pid);
                $discount = get_discount($pid);
        #Wenn Rabatt, dann nur 3/4 des Preises (25% Rabatt)
        if ($pid == 48 && $_POST['Rabatt'] != '' && $discount == 1) $price = round((get_price($pid)*3/4), 2);
        else $price = get_price($pid);
                $shipping = get_shipping($pid);
                $sum += $price * $q;
                $shippingsum += $shipping * $q;
                if ($q == 0) continue;

    echo '                  <tr class="artikel"><td class="artikel">'.$pname.'</td>
                <td class="preis">'.number_format($price, 2, ',', '').' &euro;</td>
                <td class="anzahl">'.$q.'</td>                    
                <td class="steuer">19%</td>
                <td class="betrag">'.number_format(($price * $q), 2, ',', '').' &euro;</td>
                <td></td></tr>'."\n";
            }
        echo '      <tr class="summe"><td colspan="4">Summe Artikel (netto):</td><td class="betrag">'.number_format(($sum/1.19), 2, ',', '').' &euro;</td></tr>'."\n";
        echo '      <tr class="summe"><td colspan="4">zzgl. MwSt. 19% Betrag:</td><td class="betrag">'.number_format(($sum-($sum/1.19)), 2, ',', '').' &euro;</td></tr>'."\n";
        echo '      <tr class="summe"><td colspan="4">Summe Artikel (brutto):</td><td class="betrag">'.number_format($sum, 2, ',', '').' &euro;</td></tr>'."\n";
        echo '      <tr class="summe"><td colspan="4">Versandkosten:</td><td class="betrag">'.number_format($shippingsum, 2, ',', '').' &euro;</td></tr>'."\n";
        echo '      <tr class="endsumme"><td colspan="4">Gesamtbetrag:</td><td class="betrag">'.number_format(($sum+$shippingsum), 2, ',', '').' &euro;</td></tr>'."\n";
    echo '      </table>'."\n";
    echo '      <input type="button" value="Warenkorb bearbeiten" onclick="window.location=\'front_content.php?idcatart='.$warenkorb.'\'" />'."\n";
        } else {
        echo '      <tr><td>Es befinden sich keine Artikel in Ihrem Warenkorb!</td>'."\n";
    echo '      </table>'."\n";
    echo '      <input type="button" value="Zum Shop" onclick="window.location=\'front_content.php?idcatart='.$shop.'\'" />'."\n";
        }
    echo '      </div>
        </form>'."\n";
    
    #Spezial-Rabatt (wird angezeigt wenn Haken im Input gesetzt ist)
    $rabatt = '';
    if ($rabatt_option == true) {
        $rabatt = '      <div class="orderRow">
        <h4>Shopping-Card-Rabatt</h4>
        <p class="info">Inhaber einer g&uuml;ltigen Shopping-Card erhalten 25% Rabatt auf gekennzeichnete Artikel.</p>
        </div>
        <div class="orderRow">
            <label for="Rabatt">Shopping-Card-Nr.</label>
            <input type="text" name="Rabatt" id="Rabatt" class="eingabezeile" maxlength="100" value="'.$auswahl_rabatt.'"/>';
            
        if ($spezial_rabatt != true) $rabatt .= '<input class="rabatt_option" type="submit" value="Preise aktualisieren" />';
        
        $rabatt .= '</div>';
    }

    #Create contact form (Bestellformular-Template wird gefuellt)
    $sFormAction = $sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid");
    $tpl->set("s", 'form_action', $sFormAction);
    $tpl->set("s", "RABATT", $rabatt);
    $tpl->set("s", "AUSWAHL_ZAHL1", $auswahl_zahl1);
    $tpl->set("s", "AUSWAHL_ZAHL2", $auswahl_zahl2);
    $tpl->set("s", "AUSWAHL_ANREDE1", $auswahl_anrede1);
    $tpl->set("s", "AUSWAHL_ANREDE2", $auswahl_anrede2);
    $tpl->set("s", "AUSWAHL_EMAIL", $auswahl_email);
    $tpl->set("s", "AUSWAHL_VORNAME", $auswahl_vorname);
    $tpl->set("s", "AUSWAHL_NACHNAME", $auswahl_nachname);
    $tpl->set("s", "AUSWAHL_FIRMA", $auswahl_firma);
    $tpl->set("s", "AUSWAHL_STRASSE", $auswahl_strasse);
    $tpl->set("s", "AUSWAHL_NUMMER", $auswahl_nummer);
    $tpl->set("s", "AUSWAHL_PLZ", $auswahl_plz);
    $tpl->set("s", "AUSWAHL_ORT", $auswahl_ort);
    $tpl->set("s", "AUSWAHL_TELEFON", $auswahl_telefon);
    $tpl->set("s", "AUSWAHL_ANLIEGEN", $auswahl_anliegen);
    
    $tpl->set("s", "TITEL_ZAHLWEISE", mi18n("Zahlungsart"));
    $tpl->set("s", "BEZAHLUNG_OPTION1", mi18n("Vorkasse/Bank&uuml;berweisung"));
    $tpl->set("s", "BEZAHLUNG_OPTION2", '<img src="images/paypal_80x35.gif" width="80" height="35" alt="Paypal"/>');
    $tpl->set("s", "TITEL_ANSCHRIFT", mi18n("Rechnungsanschrift"));
    $tpl->set("s", "INFO_ANSCHRIFT", mi18n('Generell ist die Rechnungsanschrift auch die Lieferanschrift. Abweichende Lieferanschriften geben Sie bitte im Feld "Nachricht" ein.<br/>Felder mit einem <span class="star">*</span> müssen ausgefüllt werden.'));
    $tpl->set("s", "ANREDE", mi18n("Anrede"));
    $tpl->set("s", "ANREDE_OPTION1", mi18n("Herr"));
    $tpl->set("s", "ANREDE_OPTION2", mi18n("Frau"));
    $tpl->set("s", "NACHNAME", mi18n("Name"));
    $tpl->set("s", "VORNAME", mi18n("Vorname"));
    $tpl->set("s", "FIRMA", mi18n("Firma"));
    $tpl->set("s", "STRASSE", mi18n("Straße"));
    $tpl->set("s", "HAUSNUMMER", mi18n("Nr."));
    $tpl->set("s", "PLZORT", mi18n("PLZ"));
    $tpl->set("s", "ORT", mi18n("Ort"));
    $tpl->set("s", "TELEFON", mi18n("Telefon"));
    $tpl->set("s", "EMAIL", mi18n("E-Mail"));
    $tpl->set("s", "ANLIEGEN", mi18n("Nachricht"));
    $tpl->set("s", "PFLICHTFELDER", mi18n("Bitte alle Felder ausfüllen"));
    
    $tpl->set("s", "TITEL_WIDERRUF", mi18n("Widerrufsrecht"));
    $tpl->set("s", "WIDERRUF", mi18n('Verbraucher können ihre Vertragserklärung innerhalb von zwei Wochen ohne Angabe von Gründen in Textform (z. B. Brief, Fax, E-Mail) oder durch Rücksendung der Sache widerrufen. Die Frist beginnt frühestens mit Erhalt der Ware und einer ausführlichen Belehrung in Textform. Zur Wahrung der Widerrufsfrist genügt die rechtzeitige Absendung des Widerrufs oder der Sache. Der Widerruf ist zu richten an: Shop-Adresse, E-Mail: <a href="mailto:">E-Mail-Adresse</a>, Faxnummer.'));
    $tpl->set("s", "WIDERRUFSHINWEIS", mi18n('Hier finden Sie die Einzelheiten zu Ihrem <a href="front_content.php?idcatart='.$widerrufsrecht.'" target="_blank">Widerrufsrecht</a>.'));
    $tpl->set("s", "AGB_HINWEIS", mi18n('Ich habe die <a href="front_content.php?idcatart='.$agb.'" target="_blank">AGB</a> gelesen und erkläre mich mit ihnen einverstanden. Die Informationen zum <a href="front_content.php?idcatart='.$widerrufsrecht.'" target="_blank">Widerrufsrecht</a> habe ich gelesen.'));
    
    $tpl->set("s", "ABSCHICKEN", mi18n("Bestellung absenden"));

    $tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/bestellformular.html");
}
?>

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von Spider IT » Di 29. Nov 2011, 09:41

Hallo Peer,

du verschickst die Mail nicht per SMTP.
Das weiß ich, weil im Modul-Output immer noch dieser uralter Fehler drin ist:

Code: Alles auswählen

$mail-> $SMTPAuth = true;
Das muss eigentlich heißen:

Code: Alles auswählen

$mail->SMTPAuth = true;
Die meisten Mailserver sind heutzutage soweit abgesichert, dass Mails ohne vorherige Anmeldung höchstens noch in die eigene Domain verschickt werden können.
Die einzige Möglichkeit zur vorherigen Anmeldung ist die Nutzung eines existierenden Postfachs, also die Versendung per SMTP.
Korrigier den Fehler, stell auf SMTP um und gib Daten für ein existierendes Postfach an, dann sollte es gehen :)

Gruß
René

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von Peer » Di 29. Nov 2011, 12:24

Hallo Renè,

danke für deine Info. Leider ohne Erfolg.

Vielleicht kannst du dir das mal direkt anschauen http://web37.s1.mein-host.de/system/cms ... =11&lang=1

Vielen Dank

Gruß

Peer

Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von Spider IT » Di 29. Nov 2011, 17:36

Hallo Peer,

und was genau sollte ich mir im Frontend ansehen? :)
Sowohl das Modul als auch die Konfiguration sind im Backend.

Gruß
René

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von Peer » Mo 5. Dez 2011, 21:08

Hallo,

leider dreht sich alles.
Ich bekomme es nicht hin das die Bestellung verschickt wird.
Die Fehler Meldungen kommen wenn ich Felder nicht ausfülle. Ich habe alle Sende Optionen ausprobiert - Kein erfolg!

Das Contact-Formular klappt wunderbar und da die beiden Forumular ja angeblich die hleiche Basis verwenden weiß ich es einfach nicht.

Jemand einen Tipp ?

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von Peer » Mo 23. Jan 2012, 19:42

Hallo,

Leider habe ich es immer noch nicht hinbekommen. Ich bin mit meinen Latein auch einbisschen am Ende.

Hat den keiner noch eine Idee???

Gruß Peer

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Re: miniShop (Warenkorb, Produktdarstellung,...)

Beitrag von Peer » Mo 5. Mär 2012, 04:51

Hallo,

habe das Formular zum Versdenden nun umgebaut.
Es versendet auch alle persönliche Daten nur leider nicht den Artikel

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname  :      Contact form
* Author(s)   :     Andreas Lindner
* Copyright   :     Contenido - four for business
* Created     :     12.08.2005
************************************************/

#Includes
cInclude("classes", "class.phpmailer.php");
cInclude("frontend", "includes/functions.shopping.php");

#Session-Shopping-Werte werden geladen, Session-Rabatt-Option erzeugt und gespeichert
global $shoppingCart;
global $spezial_rabatt;
$sess->register('spezial_rabatt');

if ("CMS_VALUE[9]" == 1) $rabatt_option = true;
else  $rabatt_option = false;

#Seitenangaben (idcatart)
$warenkorb = 41; //Warenkorbseite
$shop = 39; //Produktuebersicht
$widerrufsrecht = 60; //Seite mit Widerrufsrecht
$agb = 42; //Seite mit AGBs
$versandkosten = 61; //Seite mit Versandkosten

#E-Mail fuer die Paypal-Zahlung
$paypalmail = 'shop@flying-bananas.de';

#AGBs als PDF (werden an Bestellbestaetigung angehaengt)
$agbanhang = 'upload/pdfs/agb.pdf';

#Wenn das Formular abgesendet wurde und die Pflichtfelder ausgefüllt sind, dann erfolgt die Bestellung
if ($_POST['send'] == 1 && $_POST['Vorname'] != '' && $_POST['Nachname'] != '' && $_POST['EMail'] != '' && $_POST['Strasse'] != '' && $_POST['Hausnummer'] != '' && $_POST['PLZOrt'] != '' && $_POST['Ort'] != '' && $_POST['agb'] == 1 && ($_POST['Rabatt'] != '' && $spezial_rabatt == true)) {
    #Bestellung wird in Datenbank eintragen
    if (!is_object($dbshop)) {
        $dbshop = new DB_Contenido;
    }
    $sql = 'INSERT INTO shop_customers (serial, title, name, email, street, address, phone, company, message) VALUES ("", "'.$_POST['Anrede'].'", "'.$_POST['Vorname'].' '.$_POST['Nachname'].'", "'.$_POST['EMail'].'", "'.$_POST['Strasse'].' '.$_POST['Hausnummer'].'", "'.$_POST['PLZOrt'].' '.$_POST['Ort'].'", "'.$_POST['Telefon'].'", "'.$_POST['Firma'].'", "'.$_POST['Anliegen'].'")';
    $dbshop->query($sql);
    
    $bestelldatum = date("Y-m-d"); //bei dem Datum fehlt noch die Zeit
    $lastid = mysql_insert_id($db->link_id());
    $sql = 'INSERT INTO shop_orders (serial, date, customerid) VALUES ("", "'.$bestelldatum.'", '.$lastid.')';
    $dbshop->query($sql);
    $lastid = mysql_insert_id($db->link_id());



   }

if (!isset ($_POST['send'])) {
    #Form has not been sent yet
    cInclude('classes', 'class.article.php');
    cInclude('classes', 'class.template.php');

    #Create contact form


    echo '   <input type="hidden" name="pid" />'."\n";
    echo '   <input type="hidden" name="command" />'."\n";
    echo '   <div id="bestellkorb">'."\n";
    echo '      <h4>Bestellung</h4>'."\n";
    echo '      <table id="bestellung">'."\n";

    #Warenkorb wird in Bestellformular uebernommen
        if($sess->is_registered('shoppingCart') && is_array($shoppingCart)) {
        echo '      <tr class="titel"><td class="artikel">Artikel</td><td class="preis">Einzelpreis</td><td class="anzahl">Anzahl</td><td class="steuer">MwSt.</td><td class="betrag">Betrag</td></tr>';
            $max = count($shoppingCart);
            $sum = 0;
            for ($i = 0; $i < $max; $i++) {
                $pid = $shoppingCart[$i]['productid'];
                $q = $shoppingCart[$i]['qty'];
                $pname = get_product_name($pid);
                $discount = get_discount($pid);
        #Wenn Rabatt, dann nur 3/4 des Preises (25% Rabatt)
        if ($pid == 48 && $_POST['Rabatt'] != '' && $discount == 1) $price = round((get_price($pid)*3/4), 2);
        else $price = get_price($pid);
                $shipping = get_shipping($pid);
                $sum += $price * $q;
                $shippingsum += $shipping * $q;
                if ($q == 0) continue;

    echo '                  <tr class="artikel"><td class="artikel">'.$pname.'</td>
                <td class="preis">'.number_format($price, 2, ',', '').' &euro;</td>
                <td class="anzahl">'.$q.'</td>                    
                <td class="steuer">19%</td>
                <td class="betrag">'.number_format(($price * $q), 2, ',', '').' &euro;</td>
                <td></td></tr>'."\n";
            }
        echo '      <tr class="summe"><td colspan="4">Summe Artikel (netto):</td><td class="betrag">'.number_format(($sum/1.19), 2, ',', '').' &euro;</td></tr>'."\n";
        echo '      <tr class="summe"><td colspan="4">zzgl. MwSt. 19% Betrag:</td><td class="betrag">'.number_format(($sum-($sum/1.19)), 2, ',', '').' &euro;</td></tr>'."\n";
        echo '      <tr class="summe"><td colspan="4">Summe Artikel (brutto):</td><td class="betrag">'.number_format($sum, 2, ',', '').' &euro;</td></tr>'."\n";
        echo '      <tr class="summe"><td colspan="4">Versandkosten:</td><td class="betrag">'.number_format($shippingsum, 2, ',', '').' &euro;</td></tr>'."\n";
        echo '      <tr class="endsumme"><td colspan="4">Gesamtbetrag:</td><td class="betrag">'.number_format(($sum+$shippingsum), 2, ',', '').' &euro;</td></tr>'."\n";
    echo '      </table>'."\n";
    echo '      <input type="button" value="Warenkorb bearbeiten" onclick="window.location=\'front_content.php?idcatart='.$warenkorb.'\'" />'."\n";
        } else {
        echo '      <tr><td>Es befinden sich keine Artikel in Ihrem Warenkorb!</td>'."\n";
    echo '      </table>'."\n";
    echo '      <input type="button" value="Zum Shop" onclick="window.location=\'front_content.php?idcatart='.$shop.'\'" />'."\n";
        }
    echo '      </div>
        </form>'."\n";
    
    
       echo '<form name="kontaktform" id="kontaktform" method="post" action="'.$sess->url("front_content.php?idcat=$idcat&idart=$idart&parentid=$parentid").'">'."\n";
  

    

    if (!is_object($tpl)) {
        $tpl = new Template;
    }
    
    $auswahl_zahl1 = ' checked="checked"';
$auswahl_zahl2 = "";
$auswahl_anrede1 = "";
$auswahl_anrede2 = "";
$auswahl_email = "";
$auswahl_vorname = "";
$auswahl_nachname = "";
$auswahl_firma = "";
$auswahl_strasse = "";
$auswahl_nummer = "";
$auswahl_plz = "";
$auswahl_ort = "";
$auswahl_telefon = "";
$auswahl_anliegen = "";
$auswahl_rabatt = "";

    
     $tpl->set("s", "RABATT", $rabatt);
    $tpl->set("s", "AUSWAHL_ZAHL1", $auswahl_zahl1);
    $tpl->set("s", "AUSWAHL_ZAHL2", $auswahl_zahl2);
    $tpl->set("s", "AUSWAHL_ANREDE1", $auswahl_anrede1);
    $tpl->set("s", "AUSWAHL_ANREDE2", $auswahl_anrede2);
    $tpl->set("s", "AUSWAHL_EMAIL", $auswahl_email);
    $tpl->set("s", "AUSWAHL_VORNAME", $auswahl_vorname);
    $tpl->set("s", "AUSWAHL_NACHNAME", $auswahl_nachname);
    $tpl->set("s", "AUSWAHL_FIRMA", $auswahl_firma);
    $tpl->set("s", "AUSWAHL_STRASSE", $auswahl_strasse);
    $tpl->set("s", "AUSWAHL_NUMMER", $auswahl_nummer);
    $tpl->set("s", "AUSWAHL_PLZ", $auswahl_plz);
    $tpl->set("s", "AUSWAHL_ORT", $auswahl_ort);
    $tpl->set("s", "AUSWAHL_TELEFON", $auswahl_telefon);
    $tpl->set("s", "AUSWAHL_ANLIEGEN", $auswahl_anliegen);
    
    $tpl->set("s", "TITEL_ZAHLWEISE", mi18n("Zahlungsart"));
    $tpl->set("s", "BEZAHLUNG_OPTION1", mi18n("Vorkasse/Bank&uuml;berweisung"));
    $tpl->set("s", "BEZAHLUNG_OPTION2", '<img src="images/paypal_80x35.gif" width="80" height="35" alt="Paypal"/>');
    $tpl->set("s", "TITEL_ANSCHRIFT", mi18n("Rechnungsanschrift"));
    $tpl->set("s", "INFO_ANSCHRIFT", mi18n('Generell ist die Rechnungsanschrift auch die Lieferanschrift. Abweichende Lieferanschriften geben Sie bitte im Feld "Nachricht" ein.<br/>Felder mit einem <span class="star">*</span> müssen ausgefüllt werden.'));
    $tpl->set("s", "ANREDE", mi18n("Anrede"));
    $tpl->set("s", "ANREDE_OPTION1", mi18n("Herr"));
    $tpl->set("s", "ANREDE_OPTION2", mi18n("Frau"));
    $tpl->set("s", "NACHNAME", mi18n("Name"));
    $tpl->set("s", "VORNAME", mi18n("Vorname"));
    $tpl->set("s", "FIRMA", mi18n("Firma"));
    $tpl->set("s", "STRASSE", mi18n("Straße"));
    $tpl->set("s", "HAUSNUMMER", mi18n("Nr."));
    $tpl->set("s", "PLZORT", mi18n("PLZ"));
    $tpl->set("s", "ORT", mi18n("Ort"));
    $tpl->set("s", "TELEFON", mi18n("Telefon"));
    $tpl->set("s", "EMAIL", mi18n("E-Mail"));
    $tpl->set("s", "ANLIEGEN", mi18n("Nachricht"));
    $tpl->set("s", "PFLICHTFELDER", mi18n("Bitte alle Felder ausfüllen"));
    
    $tpl->set("s", "TITEL_WIDERRUF", mi18n("Widerrufsrecht"));
    $tpl->set("s", "WIDERRUF", mi18n('Verbraucher können ihre Vertragserklärung innerhalb von zwei Wochen ohne Angabe von Gründen in Textform (z. B. Brief, Fax, E-Mail) oder durch Rücksendung der Sache widerrufen. Die Frist beginnt frühestens mit Erhalt der Ware und einer ausführlichen Belehrung in Textform. Zur Wahrung der Widerrufsfrist genügt die rechtzeitige Absendung des Widerrufs oder der Sache. Der Widerruf ist zu richten an: Shop-Adresse, E-Mail: <a href="mailto:">E-Mail-Adresse</a>, Faxnummer.'));
    $tpl->set("s", "WIDERRUFSHINWEIS", mi18n('Hier finden Sie die Einzelheiten zu Ihrem <a href="front_content.php?idcatart='.$widerrufsrecht.'" target="_blank">Widerrufsrecht</a>.'));
    $tpl->set("s", "AGB_HINWEIS", mi18n('Ich habe die <a href="front_content.php?idcatart='.$agb.'" target="_blank">AGB</a> gelesen und erkläre mich mit ihnen einverstanden. Die Informationen zum <a href="front_content.php?idcatart='.$widerrufsrecht.'" target="_blank">Widerrufsrecht</a> habe ich gelesen.'));
    
    $tpl->set("s", "ABSCHICKEN", mi18n("Bestellung absenden"));

    $tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/bestellformular.html");
    echo '</form>';
    echo '</div>';
}
if ($_POST['send'] == 1) {
    #Form has been sent
    
    #Check user input
    $noerrors = true;
    $msg = '';
    if ($_POST['Bezahlung'] == "Paypal") $auswahl_zahl2 = ' checked="checked"';
    else $auswahl_zahl1 = ' checked="checked"';
    if ($_POST['Anrede'] == "Frau") $auswahl_anrede2 = ' selected="selected"';
    else $auswahl_anrede1 = ' selected="selected"';
    $auswahl_email = $_POST['EMail'];
    $auswahl_vorname = $_POST['Vorname'];
    $auswahl_nachname = $_POST['Nachname'];
    $auswahl_firma = $_POST['Firma'];
    $auswahl_strasse = $_POST['Strasse'];
    $auswahl_nummer = $_POST['Hausnummer'];
    $auswahl_plz = $_POST['PLZOrt'];
    $auswahl_ort = $_POST['Ort'];
    $auswahl_telefon = $_POST['Telefon'];
    $auswahl_anliegen = $_POST['Anliegen'];
    $auswahl_rabatt = $_POST['Rabatt'];


    #Check user input
    $noerrors = true;
    $msg = '';
    
     if ($_POST['Vorname'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihren Vornamen ein!").'</li>';
    }
    if ($_POST['Nachname'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihren Namen ein!").'</li>';
    }
    if ($_POST['EMail'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihre E-Mail-Adresse ein!").'</li>';
    }
    if ($_POST['Strasse'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihre Stra&szlig;e ein!").'</li>';
    }
    if ($_POST['Hausnummer'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihre Hausnummer ein!").'</li>';
    }
    if ($_POST['PLZOrt'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihre PLZ ein!").'</li>';
    }
    if ($_POST['Ort'] == '') {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte geben Sie Ihren Ort ein!").'</li>';
    }
    if ($_POST['agb'] != 1) {
        $noerrors = false;
        $msg .= '<li>'.mi18n("Bitte lesen Sie die allgemeinen Gesch&auml;ftsbedingungen und prüfen Sie Ihr Einverst&auml;ndnis!").'</li>';
    }

    if ($noerrors == false) {
        echo "<p>";
        #Errors have been found
        echo "<strong>".mi18n("Beim Versenden sind folgende Fehler aufgetreten:")."</strong><br/>";
        echo $msg.'<br/>';
        echo '<a href="javascript:history.back();">&lsaquo; '.mi18n("zur&uuml;ck").'</a>';
    } else {
        #No errors, create and send mail
        $mail = new phpmailer;
        $mail_body = '<html><head></head><body bgcolor="#ffffff">';
    if ($_POST['Anrede'] == "Frau") $mail_body .= '<p>Sehr geehrte Frau '.$_POST['Nachname'].',<br/>';
    else $mail_body .= '<p>Sehr geehrter Herr '.$_POST['Nachname'].',<br/>';
    
    $mail_body .= 'Danke für Ihre Bestellung! Im folgenden erhalten Sie noch einmal eine Übersicht über Ihre Bestellung sowie die Zahlungsinformationen. <br/>
            Der Versand der Ware erfolgt nach Zahlungseingang an die von Ihnen angegebene Adresse. Für Fragen und weitere Informationen stehen wir Ihnen gerne zur Verfügung.
            <br/><br/>Schöne Grüße
            <br/>Ihr Shop-Team<br/></p>';

    $mail_body .= '<table cellspacing="0" cellpadding="2" border="0">';
        if (is_array($_POST)) {
            foreach ($_POST as $key => $value) {
                if ($key != 'send') {
                    $mail_body .= "<tr><td>$key</td><td>$value</td><td></td></tr>";
                }
            }
        }
    $mail_body .= '</table><table cellspacing="0" cellpadding="2" border="0">';
    $mail_body .= "<tr><td>Ihre Bestellung:</td><td></td><td></td></tr>";
    $mail_body .= "<tr><td>Artikel</td><td>Einzelpreis</td><td>Anzahl</td><td>MwSt.</td><td>Betrag</td></tr>";
    
   [b] #Der Inhalt des Warenkorbs wird nochmal ausgepackt und aufgelistet
    $max = count($shoppingCart);
    $sum = 0;
    for ($i = 0; $i < $max; $i++) {
        $pid = $shoppingCart[$i]['productid'];
        $q = $shoppingCart[$i]['qty'];
        $pname = get_product_name($pid);
    $discount = get_discount($pid);
    if ($pid == 48 && $_POST['Rabatt'] != '' && $discount == 1) $price = round((get_price($pid)*3/4), 2);
        else $price = get_price($pid);
        $shipping = get_shipping($pid);
        $sum += $price * $q;
        $shippingsum += $shipping * $q;
    
    #Der Warenkorb wird auch ncchmal in der Datenbank gespeichert
        $sql = 'INSERT INTO shop_order_detail (orderid, productid, quantity, price) VALUES ('.$lastid.', '.$pid.', '.$q.', '.$price.')';
        $dbshop->query($sql);

        $mail_body .= '<tr><td>'.$pname.'</td><td>'.number_format($price, 2, ',', '').' EUR</td><td>'.$q.' St&uuml;ck</td><td>19%</td><td>'.number_format(($price*$q), 2, ',', '').' EUR</td></tr>';
    }[/b]


    $mail_body .= '<tr><td colspan="4">Summe Artikel (netto):</td><td>'.number_format(($sum/1.19), 2, ',', '').' EUR</td><td></td><td></td></tr>';
    $mail_body .= '<tr><td colspan="4">zzgl. MwSt. 19% Betrag:</td><td>'.number_format(($sum-($sum/1.19)), 2, ',', '').' EUR</td></tr>';
    $mail_body .= '<tr><td colspan="4">Summe Artikel (brutto):</td><td>'.number_format($sum, 2, ',', '').' EUR</td></tr>';
    $mail_body .= '<tr><td colspan="4">Versandkosten:</td><td>'.number_format($shippingsum, 2, ',', '').' EUR</td></tr>';
    $mail_body .= '<tr><td colspan="4"><b>Gesamtbetrag:</b></td><td><b>'.number_format(($sum+$shippingsum), 2, ',', '').' EUR</b></td></tr>';
    $mail_body .= '<tr><td colspan="5"></td></tr>';

    if ($_POST['Bezahlung'] == "Paypal") {
        $mail_body .= '<tr><td colspan="5">Bitte überweisen Sie den Gesamtbetrag von '.number_format(($sum+$shippingsum), 2, ',', '').' EUR per Paypal an folgende E-Mail-Adresse:</td></tr>';
        $mail_body .= '<tr><td colspan="5">'.$paypalmail.'</td></tr>';
    } else {
        $mail_body .= '<tr><td colspan="5">Bitte überweisen Sie den Gesamtbetrag von '.number_format(($sum+$shippingsum), 2, ',', '').' EUR per Banküberweisung auf folgendes Konto:</td></tr>';
        
        #Hier (xxx) bitte die Bankverbindung eintragen auf die der Warenpreis bei Bestellung ueberwiesen werden soll:
        $mail_body .= '<tr><td colspan="3">Kontoinhaber</td><td colspan="2">xxx</td></tr>';
        $mail_body .= '<tr><td colspan="3">Bank</td><td colspan="2">xxx</td></tr>';
        $mail_body .= '<tr><td colspan="3">Bankleitzahl</td><td colspan="2">xxx</td></tr>';
        $mail_body .= '<tr><td colspan="3">Kontonummer</td><td colspan="2">xxx</td></tr>';
        $mail_body .= '<tr><td colspan="3">Betreff</td><td colspan="2">Shop-Bestellung</td></tr>';
}

    
    
    
    
    
    
    
    
    
        if (is_array($_POST)) {
            foreach ($_POST as $key => $value) {
                if ($key != 'send') {
                    $mail_body .= "<tr><td>$key</td><td>$value</td></tr>";
                }
            }
        }

        $mail_body .= '</table></bo'.'dy></html>';
         $mail->Host = "localhost";
    $mail->IsHTML(true);

        #Get mailer from settings
        switch (strtolower("CMS_VALUE[4]")) {
            case "smtp" :
                $mail->IsSMTP();
                $host = "CMS_VALUE[5]";
                $user = "CMS_VALUE[6]";
                $password = "CMS_VALUE[7]";
                if (($host != '') && ($user != '') && ($password != '')) {
                    $mail-> $SMTPAuth = true;
                    $mail->Host = $host;
                    $mail->Username = $user;
                    $mail->Password = $password;
                }
                break;
            case "mail" :
                $mail->IsMail();
                break;
            case "sendmail" :
                $mail->IsSendmail();
                break;
            case "qmail" :
                $mail->IsQmail();
                break;
            default :
                }
    #AGB als Dokument für den Anhang
    $mail_attachment = $agbanhang;
        $mail->From = "CMS_VALUE[0]";
        $mail->FromName = "CMS_VALUE[2]";
        
        #Bestellbestaetigung fuer den Kaeufer
        $mail->AddAddress($_POST['EMail'], "");
    //$mail->AddAddress("CMS_VALUE[1]", "");
    $mail->AddAttachment($mail_attachment);
    $mail->Subject = "CMS_VALUE[3]";
        $mail->Body = $mail_body;
        $mail->WordWrap = 50;
        $mail->Send();
    
    
    #2. Mail (zur Info fuer den/die Shopbesitzer)
        $mail2 = new phpmailer;
        $mail2->Host = "localhost";
        $mail2->IsHTML(true);

        #Get mailer from settings
        switch (strtolower("CMS_VALUE[4]")) {
            case "smtp" :
                $mail2->IsSMTP();
                $host = "CMS_VALUE[5]";
                $user = "CMS_VALUE[6]";
                $password = "CMS_VALUE[7]";
                if (($host != '') && ($user != '') && ($password != '')) {
                    $mail2-> $SMTPAuth = true;
                    $mail2->Host = $host;
                    $mail2->Username = $user;
                    $mail2->Password = $password;
                }
                break;
            case "mail" :
                $mail2->IsMail();
                break;
            case "sendmail" :
                $mail2->IsSendmail();
                break;
            case "qmail" :
                $mail2->IsQmail();
                break;
            default :
                }
        $mail2->From = $_POST['EMail'];
        $mail2->FromName = "CMS_VALUE[2]";
        $mail2->AddAddress("CMS_VALUE[1]", "CMS_VALUE[8]");
        $mail2->Subject = "CMS_VALUE[3]";
        $mail2->Body = $mail_body;
        $mail2->WordWrap = 50;
        $mail2->Send();

    
        #Display message after mail is sent
         echo '<p>'.mi18n("Danke für Ihre Bestellung! Sie erhalten umgehend eine E-Mail mit allen weiteren Informationen.").'</p>';
        
        #Im Falle von Paypal kann direkt bezahlt werden.
        #Dazu wird der Warenkorb nach Klick an Paypal uebergeben und kann dort direkt bezahlt werden.
        if ($_POST['Bezahlung'] == "Paypal") {
        echo '<p class="paying"><img src="images/paypal_80x35.gif" width="80" height="35" alt="Paypal"/></p>';
        echo '<p class="paying">'.mi18n("Sie können nun sofort zu Paypal wechseln und Ihre Bestellung bezahlen.").'</p>';
        echo '<form class="payit" action="https://www.paypal.com/cgi-bin/webscr" method="post">
           <input type="hidden" name="cmd" value="_cart" />
           <input type="hidden" name="upload" value="1" />
           <input type="hidden" name="currency_code" value="EUR" />
           <input type="hidden" name="business" value="'.$paypalmail.'" />';

        $max = count($shoppingCart);
        $sum = 0;
        for ($i = 0; $i < $max; $i++) {
            $pid = $shoppingCart[$i]['productid'];
            $q = $shoppingCart[$i]['qty'];
            $pname = get_product_name($pid);
        $discount = get_discount($pid);
            if ($pid == 48 && $_POST['Rabatt'] != '' && $discount == 1) $price = round((get_price($pid)*3/4), 2);
            else $price = get_price($pid);
            $shipping = get_shipping($pid);
            $sum += $price * $q;
            $shippingsum += $shipping * $q;
            echo '<input type="hidden" name="item_name_'.($i+1).'" value="'.$pname.'" />'; 
            echo '<input type="hidden" name="amount_'.($i+1).'" value="'.number_format($price, 2, '.', '').'" />'; 
            echo '<input type="hidden" name="quantity_'.($i+1).'" value="'.$q.'" />'; 
            echo '<input type="hidden" name="shipping_'.($i+1).'" value="'.number_format($shipping, 2, '.', '').'" />'; 
            echo '<input type="hidden" name="shipping2_'.($i+1).'" value="'.number_format($shipping, 2, '.', '').'" />'; 
        }

        echo '<input type="submit" value="Jetzt mit PayPal bezahlen!" />
        </form>'; 
        }

        unset($shoppingCart);
        unset($spezial_rabatt);
    }
}
?>


Es liegt daran das die Daten nicht in der Datenbank eingegeben werden

Diese Stelle wird nicht ausgeführt

Code: Alles auswählen

 #Der Inhalt des Warenkorbs wird nochmal ausgepackt und aufgelistet
    $max = count($shoppingCart);
    $sum = 0;
    for ($i = 0; $i < $max; $i++) {
        $pid = $shoppingCart[$i]['productid'];
        $q = $shoppingCart[$i]['qty'];
        $pname = get_product_name($pid);
    $discount = get_discount($pid);
    if ($pid == 48 && $_POST['Rabatt'] != '' && $discount == 1) $price = round((get_price($pid)*3/4), 2);
        else $price = get_price($pid);
        $shipping = get_shipping($pid);
        $sum += $price * $q;
        $shippingsum += $shipping * $q;
    
    #Der Warenkorb wird auch ncchmal in der Datenbank gespeichert
        $sql = 'INSERT INTO shop_order_detail (orderid, productid, quantity, price) VALUES ('.$lastid.', '.$pid.', '.$q.', '.$price.')';
        $dbshop->query($sql);

        $mail_body .= '<tr><td>'.$pname.'</td><td>'.number_format($price, 2, ',', '').' EUR</td><td>'.$q.' St&uuml;ck</td><td>19%</td><td>'.number_format(($price*$q), 2, ',', '').' EUR</td></tr>';
    }
Es kommt immer diese Fehlermeldung

Fatal error: Call to a member function query() on a non-object in /var/www/web37/html/system/cms/front_content.php(922) : eval()'d code on line 556

Hat jemand eine Idee??

Gesperrt