Avatar billede jonas_h Nybegynder
11. juni 2003 - 16:10 Der er 24 kommentarer

Indkøbskurv i en netbutik

Hej!

Hvordan er en net-butik opbygget. Jeg kan sagtens lave kategorier osv, men når jeg skal lave det system med indkøbskurv osv?
Er det jacascript som skal bruges til at smide ting i en indkøbskurv? Jeg kender intet i asp som kan "gemme" alt det man har i indkøbskurven?

Hvis I har et link til en "open source", hvor jeg kan se hvordan det er blevet lavet, ville det være perfekt!
Avatar billede netro Nybegynder
11. juni 2003 - 16:27 #1
Jeg har et lille eksempel, jeg engang lavede her. Du kan se, om det er noget...

www.opfinderen.dk/birds/
Avatar billede jonas_h Nybegynder
11. juni 2003 - 16:31 #2
Hmmm. Den skulle jo helst ikke gemme indkøbskurven hvis man lukker browseren. Hvordan er det da lavet? Gemmer den det man køber i en database?
Avatar billede netro Nybegynder
11. juni 2003 - 16:35 #3
Den tildeler kunden et ID-nummer (SessionID), som lagres i en cookie.
Hver gang brugeren køber en artikel, indsættes en ny post i en tabel med artiklens ID og kundens ID.
Herefter er det let at udtrække indholdet af indkøbskurven, ændre antal, slette mv.
Hvis du ikke vil have indkøbet gemt til næste besøg, kan du bare lægge ID'et i en session i stedet.
Avatar billede netro Nybegynder
11. juni 2003 - 16:40 #4
Du kan altså identificere kunden under hele besøget med

Session.SessionID

- forudsat at klienten ikke har nægtet adgang for session-cookies.
Avatar billede netro Nybegynder
11. juni 2003 - 16:45 #5
Alternativt kan du tildele kunderne et unikt nummer ved ankomsten, som du fører rundt på alle siderne i en querystring.
Avatar billede wilweb Nybegynder
11. juni 2003 - 17:23 #6
er det en shop du giver væk? så man kan vidreudvikle på den eller ???
Avatar billede netro Nybegynder
11. juni 2003 - 17:30 #7
Det var en, jeg lavede for sjov en aften. Der er ikke andet end, hvad du ser derinde...
Avatar billede wilweb Nybegynder
11. juni 2003 - 19:24 #8
jamen du har da grundstenen til en butik, mener du ikke at man kan bygge vidre på den? JEg kunne da godt tænke mig at se hvordan du har lavet det!
Avatar billede jonas_h Nybegynder
11. juni 2003 - 20:12 #9
Ok tror jeg forstår nu. Men du siger det bliver gemt i cookies... Hvordan kan man gemme mange variabler i én cookie? ALtså hvis man har flere produkter i kurven, hvordan gemmer man så mange id-numre på produkterne i én cookie? Og hvordan holder man styr på dem?
Avatar billede netro Nybegynder
11. juni 2003 - 20:34 #10
gizom ---> Jo, du kan da sagtens bygge videre på den. Skal jeg sende den?
Avatar billede netro Nybegynder
11. juni 2003 - 20:37 #11
Nej, det er KUN kundens ID, der gemmes i en cookie, men du kan jo bare identificere vedkommende med Session.SessionID.
Alle ordrer ligger i en tabel.

Men bortset fra det kan du gennemløbe cookie-samlingen således:

Dim Cookie, Key
For Each Cookie In Request.Cookies
  If Request.Cookies(Cookie).HasKeys Then
      Response.Write Cookie & "<br>"
      For Each Key In Request.Cookies(Cookie)
        Response.Write Key & " = "
        Response.Write Request.Cookies(Cookie)(Key)
        Response.Write "<BR>"
      Next
  Else
      Response.Write Cookie & " = " & Request.Cookies(Cookie) & "<BR>"
  End If
Next
Avatar billede wilweb Nybegynder
11. juni 2003 - 20:43 #12
det må du meget gerne!
willi@gizom.com
Avatar billede netro Nybegynder
11. juni 2003 - 21:02 #13
Det gør jeg så.

Men lad mig komme med et eksempel...


Du vil typisk have en tabel med en række varer. Denne kunne se sådan ud:

VareID_____Varenavn_____Pris
1__________Cykel________3.967,00
2__________Telefon______349,00
3__________Bluse________299,00
4__________DVD__________189,00


Her ud over har du en tabel med ordrer:

Ordrenr_____Dato_____VareID_____KundeID


Og så vil du selvfølgelig have en kunde, som vi kan kalde Peter. Ham identificerer du med Session.SessionID. Dette kunne være lig 388167334.

Nu vil Peter måske gerne købe en telefon.
Derfor laver vi en ny post i tabellen med ordrer:

DenneVare = 2
Insert Into Ordrer (Dato, VareID, KundeID) Values ('" & Now & "', " & DenneVare & ", " & Session.SessionID & ")

Så ser tabellen med ordrer ca. ud som følger:

Ordrenr______________Dato_____________VareID_____KundeID
1_____________6-11-2003 20:55:32________2_______388167334


Når Peter så skal have vist sin indkøbsliste, laver du et simpelt udtræk til ham:

Select Count(Varer.Varenavn) As Stk, Sum(Varer.Pris) As GruppePris, Varer.Varenavn From Ordrer Left Join Varer On Ordrer.VareID = Varer.VareID Where Ordrer.KundeID = " & Session.SessionID & " Group By Varer.Varenavn, Varer.Pris

Denne giver dig navnet på hver vare, som Peter har købt. Hvis han har købt flere af den samme, kan du aflæse antallet i "Stk" og den samlede pris i "Gruppepris".

Håber det hjalp lidt på forståelsen.
Avatar billede jonas_h Nybegynder
11. juni 2003 - 21:10 #14
Session.SessionID <-- Er det nummer det samme HELE tiden? Altså f.eks på denne her computer, er nummeret så det samme hele tiden, eller skifter det når vinduet lukkes?
Avatar billede netro Nybegynder
11. juni 2003 - 21:44 #15
ID'et er det samme under hele dit besøg. Dvs. hvis du lukker browseren og åbner den påny, får du tildelt et nyt nummer.
Avatar billede netro Nybegynder
11. juni 2003 - 21:45 #16
Og hvis du vil undgå dette, skal du benytte en cookie som i linket, jeg gav dig.
Avatar billede wilweb Nybegynder
11. juni 2003 - 22:15 #17
Takker :o)
Avatar billede goose Nybegynder
12. juni 2003 - 18:25 #18
netro>> du må også meget gerne sende den til mig, det vil jeg blive superglad for og vil da også gerne give point for den :o)

admin@goose.dk

/Goose
Avatar billede jonas_h Nybegynder
13. juni 2003 - 01:40 #19
Netro -> I dit eksempel, bliver ordrene så gemt i databasen? Med brugerens id? For så vil denne database jo blive temmelig stor til sidst. Hvis mange folk bare købte lidt for sjov osv, og bare lukkede igeen...
Avatar billede netro Nybegynder
14. juni 2003 - 16:29 #20
Ja, men hvis du indsætter datoen sammen med hver ordre, kan du bare rydde op i den jævnligt:

Delete * From Ordrer Where Dato < #" & DateAdd("m", -1, Now) & "#

- så slettes alle ordrer, der er mere end en måned gamle...
Avatar billede netro Nybegynder
29. juni 2003 - 14:37 #21
Skulle vi egentlig ikke få lukket spm. her?
Avatar billede everclear Praktikant
09. juli 2003 - 16:01 #22
Hvor mange point skal du have for at sende den netbutik til mig? Det ser godt ud:-)
Avatar billede netro Nybegynder
09. december 2003 - 13:57 #23
Gider du ikke godt lukke her?
Avatar billede wilweb Nybegynder
04. november 2006 - 00:43 #24
Lukke tid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester