Warenkorb für ein bestehendes Layout

Rexo

Mitglied
Hallo zusammen,

bin auf der Suche nach einem Warenkorb, den ich in eine bestehende Seite einbinden kann.

Hab bereits die Suche verwendet und war wahrlich erschrocken, wie oft die Frage gestellt wird.. aber es war leider keine passende Antwort dabei.

Daher:
Ich stell mir vor, dass man auf den einzelnen Artikelseiten ein Input-Feld (für die Anzahl) + Warenkorb-Symbol hinzufügt und alle bestellten Artikel in ein Warenkorb wandern, den man seperat aufrufen kann.
In dem Warenkorb muss man einzelne Artikel wieder löschen können bzw. die Anzahl der bestellten Artikel verändern. Bezahlungshinweise + Abrechnung sind obligatorisch.

Nun meine Frage: :)
Gibt es soetwas bereits in fertiger Form als Skript, das man nach seinen Wünschen anpassen kann?
Gibt es ein Tutorial für obigen Fall?

Oder bleibt mir "nur" der Weg über das Skripten von Hand? Leider fehlt mir dort noch das nötige Handwerkszeug, bin aber auf nem guten Weg php+mysql zu lernen ;-)

Grüsse,
Rexo
 
Hallo Rexo!
Ich hab hier ein Codeschnippsel von einem wirklich sehr einfachen Warenkorbsystem mit Sessions in PHP.
Vielleicht hilft es dir ja....
PHP:
<? 

//*************************************** 
// WARENKORB-SYSTEM MIT SESSIONS 
//*************************************** 
// (c) Andulus 2005 
//*************************************** 

function msql() { 
    $host = "xxx"; 
    $user = "xxx"; 
    $pwd = "xxx"; 
    $dbname = "xxx"; 
    $verbindung = mysql_connect($host, $user, $pwd); 
    mysql_select_db($dbname, $verbindung); 
} 

$action = $_GET['aktion']; 

if($action=='artikel') { 
msql(); 
$tbname = "artikel"; 
$sql = mysql_query("SELECT * FROM $tbname ORDER BY aid"); 

while($row = mysql_fetch_object($sql)) { 
    echo $row->artikelname." | ".$row->aid." | ".$row->preis." | <a href='?aktion=insert&aid=".$row->aid."'>In den Warenkorb legen</a><p>"; 
} 
} 

if($action=='insert') { 
    session_start(); 
    $_SESSION['artikel'][] = $_GET['aid']; 
    header("LOCATION: warenkorb.php?aktion=warenkorb"); 
} 

if($action=='warenkorb') { 
    session_start(); 
    if(!isset($_SESSION['artikel'])) 
    { 
        echo "Ihr Warenkorb ist leer!<p><a href='?aktion=artikel'>Weiter shoppen</a><br>"; 
    } else { 
    $count = count($_SESSION['artikel']); 
    $i = 0; 
     
    for($i; $i<$count; $i++) { 
        msql(); 
        $tbname = "artikel"; 
        $artikel = $_SESSION['artikel'][$i]; 
        $sql = mysql_query("SELECT * FROM $tbname WHERE aid='$artikel'"); 
        while($row = mysql_fetch_object($sql)) { 
            echo $row->artikelname." | ".$row->aid." | ".$row->preis." | <a href='?aktion=loeschen&count=".$i."'>Artikel löschen</a><p>"; 
        } 
    } 
    echo "<a href='?aktion=leeren'>Warenkorb leeren</a><br>"; 
    echo "<a href='?aktion=artikel'>Weiter shoppen</a><br>"; 
} 
} 

if($action=='loeschen') { 
    session_start(); 
    $count = $_GET['count']; 
    unset($_SESSION['artikel'][$count]); 
    header("LOCATION: warenkorb.php?aktion=warenkorb"); 
} 

if($action=='leeren') { 
    session_start(); 
    session_unset(); 
    session_destroy(); 
    header("LOCATION: warenkorb.php?aktion=warenkorb"); 
} 

// PS: Ein Administrationstool folgt noch... 

?>
lg Andulus
 
So ein Warenkorb ist eigentlich recht schnell selber erstellt aber ansonsten würde ich zu etwas eigentinitiative raten und mal :google: etwas befragen, solche systeme gibt es massenhaft im Netz.

Ein ganz heißer Tipp ist eigentlich immer http://www.hotscripts.com/
 
Vielen Dank für die schnellen Antworten.

Den von andulus geposteten Code, hab ich mal "durchgearbeitet".. sind aber immer noch einige Verständnislücken vorhanden. Werd mal gezielt die Funktionen suchen + mich informieren.

Auf der Seite hotscripts war ich heute Mittag auch schon unterwegs :)
Mir scheinen die Lösungen auf den ersten Blick aber viel zu aufgeblasen bzw. zu umfangreich.
Die xyz-fertigen Skripte für komplette Online-Shops halte ich für den falschen Weg, wenn man einen eigenen (kleinen) Shop möchte. Wenn mal etwas passiert bzw. wenn man etwas ändern möchte, steht man vor Seitenweise Code, den man natürlich auf die schnelle nie versteht :rolleyes:

@max:
Hast du mit einem der Skripte von hotscripts.com "gute Erfahrung" gemacht? Der Code sollte möglichst schlank sein, damit ich meinen Teil hinzufügen kann ;-)

Bin aktuell am Lesen eines Buchs über PHP, müsste damit in 2/3 Wochen durch sein, dann sollte das Verstehen des kompletten Quellcodes von Andulus möglich sein :)


Grüsse,
Rexo
 
Das mit dem Code bei hotscripts.com ist so wie bei den meisten Sammlungen einige sind sehr gut andere wieder schlecht. Ich habe schon ein paar sachen von dort verwendet und eigentlich recht gute Erfahrungen damit gemacht.

Hier hatten wir vor kurzen auch einen Thread mit einer Klasse für einen einfachen Webshop vielleicht darfst du ihn ja verwenden:
http://www.tutorials.de/forum/showthread.php?t=234649
 
Hi Rexo!
Für diverse Verständnissfragen bezüglich meines Scriptes bin ich imer bereit Rede unt Antwort zu stehen.
Wenn du Fragen hast, einfach fragen!
lg Andulus

*****EDIT*******
@max: Du hast recht, hotscripts ist ein sehr heißer Tipp. Ist eigentlich fast immer was dabei...
 
Für diverse Verständnissfragen bezüglich meines Scriptes bin ich imer bereit Rede unt Antwort zu stehen.
Wenn du Fragen hast, einfach fragen!

Ich werd in den nächsten beiden Wochen das Buch zu Ende durcharbeiten und mir den Code von euch erneut anschauen.

Bei Fragen zum Skript, die bestimmt auftauchen, werd ich gerne auf dein Angebot zurückkommen und den Thread wieder ans Tageslicht befördern :)

Grüsse,
Rexo
 
Hallo,

hab nun das Buch soweit gelesen und ein wenig mit der Sprache experimentiert. :)

Nun wage ich mich wieder an den Warenkorb (sessiongebunden). Ich hab versucht den Code von Andulus zu verstehen und bin auf ein paar Unklarheiten gestoßen.

Hab den Code von Andulus unten gepostet und an den jeweiligen Stellen meine Unklarheiten dazu geschrieben.

Nun aber zum Code: :)

<?

//***************************************
// WARENKORB-SYSTEM MIT SESSIONS
//***************************************
// (c) Andulus 2005
//***************************************

function msql() {
$host = "xxx";
$user = "xxx";
$pwd = "xxx";
$dbname = "xxx";
$verbindung = mysql_connect($host, $user, $pwd);
mysql_select_db($dbname, $verbindung);
}
Keine Frage

$action = $_GET['aktion'];
Keine Frage

if($action=='artikel') {
msql();
$tbname = "artikel";
$sql = mysql_query("SELECT * FROM $tbname ORDER BY aid");

while($row = mysql_fetch_object($sql)) {
echo $row->artikelname." | ".$row->aid." | ".$row->preis." | <a href='?aktion=insert&aid=".$row->aid."'>In den Warenkorb legen</a><p>";
}
}
Die Sache wird bei mir anders aussehen. Da ich nicht nur eine Seite mit Artikeln habe, sondern diverse Kategorieren, die entsprechend im mysql_query mit einem SELECT versehen und dann erzeugt werden.

Doch was ich nicht verstehe: href='?aktion=insert&aid=".$row->aid."'
Versteh den Code leider nicht (dass es ein Link darstellt, ist klar ;-) , dass etwas wiederrum in die Variable aktion geschrieben wird auch... nur ! was wird dort reingeschrieben.
z.B. aid eines Artikels ist 4711 -> dann lautet der Befehl: href="?aktion=insert&aid=4711"
Versteh den Zusammenhang von insert und aid mit "&" nicht.
Was bedeutet dieser?

~~~ edit ~~~
Obige Frage hat sich erklärt. Jaja der Wald und die vielen Bäume :rolleyes:

if($action=='insert') {
session_start();
$_SESSION['artikel'][] = $_GET['aid'];
header("LOCATION: warenkorb.php?aktion=warenkorb");
}
Dort verstehe ich den Code: "$_SESSION['artikel'][] = $_GET['aid'];" leider nicht.
Dass die Artikel in der Variable _SESSION gespeichert werden ist mir klar. Dass dort ein 2-dim Array erzeugt wird, seh ich auch. Nur die Frage ist was genau speichert er nun hinein?
Meine Theorie :)
Da die erste Ebene mit dem Begriff "artikel" bereits << belegt >> ist, geht er automatisch in die 2-te Ebene und schreibt dort die aid rein. Beginnt er mit dem 0-ten Element in der 2-ten Ebene. Wenn ich z.B. schon 3 Artikel gespeichert hab und einen weitern speichern möchte, füllt er das Array weiter auf und schreibt die 4-ten aid in das 3-te Element.
Stimmt das so?

if($action=='warenkorb') {
session_start();
if(!isset($_SESSION['artikel']))
{
echo "Ihr Warenkorb ist leer!<p><a href='?aktion=artikel'>Weiter shoppen</a><br>";
} else {
$count = count($_SESSION['artikel']);
$i = 0;

for($i; $i<$count; $i++) {
msql();
$tbname = "artikel";
$artikel = $_SESSION['artikel'][$i];
$sql = mysql_query("SELECT * FROM $tbname WHERE aid='$artikel'");
while($row = mysql_fetch_object($sql)) {
echo $row->artikelname." | ".$row->aid." | ".$row->preis." | <a href='?aktion=loeschen&count=".$i."'>Artikel löschen</a><p>";
}
}
echo "<a href='?aktion=leeren'>Warenkorb leeren</a><br>";
echo "<a href='?aktion=artikel'>Weiter shoppen</a><br>";
}
}
Keine Frage. Wird bei mir ein wenig anders aussehen, da ich die Ausgabe in einer Tabelle gestalten werd, aber das ist im Grund egal. ;-)

if($action=='loeschen') {
session_start();
$count = $_GET['count'];
unset($_SESSION['artikel'][$count]);
header("LOCATION: warenkorb.php?aktion=warenkorb");
}

if($action=='leeren') {
session_start();
session_unset();
session_destroy();
header("LOCATION: warenkorb.php?aktion=warenkorb");
}

// PS: Ein Administrationstool folgt noch...

?>

Der restliche Code ist dann wieder klar.

Hui sind doch einige Fragen enstanden... würd mich sehr freuen,wenn diese gelöst werden können :)

Grüsse,
Rexo
 
Zuletzt bearbeitet:
Zurück