Hi thales,
also es gibt 2 für mich ganz praktische Möglichkeiten das zu realisieren:
Variante 1:
eine SQL-DB Tabelle, in der du jeden bestellten Artikel zusammen mit einer Kundenreferenz speicherst, dazu kannst du natürlich auch noch Laufvariablen und Datumsangaben speichern, damit man Bestellungen ein- und des selben Kunden auseinanderhalten kann. Diese Version setzt erstens ein USER-System für die Kunden voraus, andererseits sollten auch genügend SQL-DB-Resourcen dasein - bei 100 Bestellungen à 4 Artikel (durchschnitt) steigt die Datenmenge rasant an. Desweiteren müssen natürlich je nach erwartetem Besucherandrang genügend Connections zur DB aufgemacht werden können -> Lizenzfrage. Bei 200 Besuchern am Tag reichen allerdings 5 User-Lizenzen für den Server aus.
Variante 2:
Schreibe einfach bei jeder Bestellung die Bestellnummer + bestellte Menge in das Sessionobjekt:
Session(Bestellnummer) = [Anzahl Artikel]
den Bestellnummern solltest du noch ein Präfix geben um sie beim Warenkorbanzeigen von anderen Variablen unterscheiden zu können z.b.
Bestell#: zz7606605 -> das Präfix kannst du beim Mailversand und der Wakorbanzeige dann wieder killen. Dieses System erlaubt auch einmal-Bestellern, schnell mal ne Order abzusetzen, ein Tracking ist da natürlich nicht möglich, es sei denn man kombiniert die Sache mit Variante 1 (quasi als Zusatzfunktion)
Vorteil:
- der Warenkorb kann schnell ohne großes Trara gekillt werden -> Session.Abandon
- Datenbankunabhängig
Nachteil:
- nach einer gewissen Zeit (Standard = 20min) killt der Korb sich von selbst
- brauch mehr physische Resourcen auf dem Server (vor allem RAM)
Schau doch mal unter http://www.schaefer-it.com, da ist der Warenkorb mittels Variante 2 gelöst, Variante 1 wird nur für statistische Auswertungen benutzt -> aber bitte nix bestellen... das macht unseren Vertrieblern nur Arbeit