droom: Cart im E-Shop System

Ich baue grad ein E-Shop System im PHP.
Wenn User sich einloggen, wird ein Session erstellt.
Nun weiss ich nicht, wie man ein Cart System machen kann.
Wenn der eingeloggte User einen Artikel kauft, soll diese Artikel in der DB gespeichert werden? Wie macht man das eigentlich?
Gibts denn Beispiel im Netz, die man ansehen kann?

  1. Hello,

    Wenn der eingeloggte User einen Artikel kauft, soll diese Artikel in der DB gespeichert werden? Wie macht man das eigentlich?

    jetzt versteh mich bitte nicht falsch, aber bist du sicher, dass ein eShop-System ein guter Einstieg ist um sowas zu lernen? Als Spielerei OK, aber wenn da jemand ernsthaft mit arbeiten soll, ist das doch relativ gewagt. Bedenke nur all die Dinge, die du nicht bedenkst, wenn dir die Routine fehlt...

    MfG
    Rouven

    --
    -------------------
    He is entertaining both out of the car and in the car because if you tell him that a corner is almost flat then he is the guy who is going to try to take it flat even if it means shunting it the other side of it, he will come with the data and say 'hey, I may have crashed and destroyed the car, but I was flat-out'. That is an interesting quality that he has!  --  Team Member on Jacques Villeneuve
    1. danke beide für eure Vorschläge

      @Rouven: Die Seite soll nicht aktiv werden. Keine Ansgt ;-) Es ist nur eine Aufgabe, die ich lösen muss.

  2. Es gibt da verschiedene Möglichkeiten:

    1. Wenn der Warenkorb nur für eine Session gültig sein soll, dann speicherst Du ihn halt in selbiger bis zur Bestellung. Schließt der Besucher seinen Browser, ist die Session beendet und der Warenkorb damit weg. Es bleibt also kein "Müll" übrig, der entsorgt werden muss. Der Kunde sucht sich also die Artikel aus und geht zur "Kasse" (oder eben nicht). Der Bestellvorgang ist damit abgeschlossen.

    2. Soll der Besucher einen persistenten Warenkorb haben, der Warenkorb also über mehrere Besuche hinweg erhalten bleiben, so muß jeder bestellte Artikel z.B. in einer DB abgelegt werden. Voraussetzung ist auch, dass Du die Besucher wiedererkennen kannst, um den zugehörigen Warenkorb zu finden. Dazu wäre eine Anmeldung am sinnvollsten, da Du ja auch verhindern musst, dass Besucher die Warenkörbe anderer Besucher einsehen oder gar manupulieren können.

    Beides hat Vor- und Nachteile. Bei 1. braucht sich der Kunde erst auszuweisen, wenn er zur "Kasse" geht. Der Punkt, an dem er persönliche Daten preisgeben muss ist also auf den Zeitpunkt des Abschickens der Bestellung verschoben. Solange er im Angebot stöbert bleibt er anonym. Es muss kein Kennwort vergeben werden, da an der Kasse jedesmal Kunden- und Rechnungsanschrift sowie Zahlungsart und ggf. Bankverbindung abgefragt wird. Im zweiten Fall braucht der Kunde nur einmal seine vollständigen Daten anzugeben. Danach ist seine Kontonummer bekannt und das Bestellformular kann von dir mit sonnvollen Werten vorbelegt sein. Auch könntest Du dem Kunden die Einsicht in seine Bestellhistorie anbieten. Dafür muss der Kunde sich schon registrieren, ohne ggf. zu wissen ob er überhaupt etwas bestellen wird. Das kann einen Besucher evtl. vom Stöbern abhalten. Du verliert damit ggf. Kunden.
    Natürlich kannst Du auch beides kombinieren, um die jeweiligen Nachteile zu eleminieren. Der Preis dafür ist ein deutlich größerer Aufwand.

    MfG
    GK

    1. Ich glaube, ich werde beides kombinieren. Ich verstehe ungefähr was ich machen soll aber noch nicht ganz wie. Am besten lese ich mir Sessions genauer an :-)

      Gibts denn vorgefertigte Skripte dafür?

      1. Gibts denn vorgefertigte Skripte dafür?

        Warum (Wofür) bearbeitest Du diese Aufgabe?

        1. Um Verschiedene Aspekte von PHP herauszubekommen.
          Das ist ein Projekt von der Uni. Danke für deine Tipps. Genau so hatte ich mir dei DB vorgestellt.

      1. Wenn der Warenkorb nur für eine Session gültig sein soll, dann speicherst Du ihn halt in selbiger bis zur Bestellung. Schließt der Besucher seinen Browser, ist die Session beendet und der Warenkorb damit weg. Es bleibt also kein "Müll" übrig, der entsorgt werden muss. Der Kunde sucht sich also die Artikel aus und geht zur "Kasse" (oder eben nicht). Der Bestellvorgang ist damit abgeschlossen.

      Ein Konto sollte der Kunde schon haben, sonst gibts vermutlich Minuspunkte vom Lehrer.   ;)

  3. Ich baue grad ein E-Shop System im PHP.
    Wenn User sich einloggen, wird ein Session erstellt.
    Nun weiss ich nicht, wie man ein Cart System machen kann.
    Wenn der eingeloggte User einen Artikel kauft, soll diese Artikel in der DB gespeichert werden? Wie macht man das eigentlich?

    Der Warenkorb ist die "n:m"-Beziehung zwischen Artikel und (eingeloggtem - muss aber erst mal nicht) Nutzer.

    Also:
    Tabelle Warenkorb
    --
    Warenkorb_ID
    Warenkorb_Nutzer_ID
    Warenkorb_Artikel_ID
    Warenkorb_Artikel_Menge

    Du solltest natürlich den Nutzer und die Artikel als Tabellen (im RDBMS?) halten. Eventuell noch einen unique index auf die Kombination von Warenkorb_Nutzer_ID und Warenkorb_Artikel_ID setzen und den Datenzugriff dementsprechend formulieren.

    1. Der Warenkorb ist die "n:m"-Beziehung zwischen Artikel und (eingeloggtem - muss aber erst mal nicht) Nutzer.

      Du könntest alternativ den Warenkorb an die Sitzung binden, würde ich aber nicht machen, hat aber den Vorteil, dass der Nutzer "uneingeloggt" den Warenkorb füllen kann. Dann auf jeden Fall den Warenkorb an den (mittlerweile eingeloggten) Nutzer "übergeben".

      1. Hello,

        Du könntest alternativ den Warenkorb an die Sitzung binden, würde ich aber nicht machen, hat aber den Vorteil, dass der Nutzer "uneingeloggt" den Warenkorb füllen kann. Dann auf jeden Fall den Warenkorb an den (mittlerweile eingeloggten) Nutzer "übergeben".

        Für ein professionelles System würde ich das nicht so machen.
        Wenn die Sitzung verloren geht, geht auch die ganze Einkaufsarbeit verloren.

        Darum würde ich den Stamm-User nur authentifiziert loslegen lassen, und alles als temporär in einer Tabelle speichern.

        Dem nicht authentifizierten Gelegenheitsuser kann man zur Not so ein Sessionding anbieten...
        Ist er doch selber Schuld, wenn er eventuell mehrmals anfangen muss.

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau