09. november 2005 - 17:55Der er
2 kommentarer og 1 løsning
reservere vare
Hej Eksperter
Jeg skal lave et webshop, hvor man kan købe varer der er i rest fra en butik. Dvs. at der kun er et bestemt antal varer til rådighed.
System skal udføres så man kan vælge en vare og lægge den i en indkøbskurv, ligesom så mange andre webshops.
Da der kan være flere inde på webshoppen ad gangen, skal jeg have lavet noget reservation af varene. Se flg. ex.
Ole Olsen lægger 3 dæk i kurven, der trækkes 3 fra det disponible antal, men Ole Olsen fortryder sin bestilling og lukker browseren uden at sende bestillingen og der lægges 3 til det disponible antal.
Hvordan styrer jeg det disponible antal bedst muligt? Er der nogle der har erfaringer med lign. system?
Som jeg forstår dig, så vil du have at varene bliver reserveret i det øjeblik brugeren ligger dem i vognen, men hvis bestillingen så ikke gennemføres, så skal de frigives igen.
Jeg går ud fra at du har alle vare informationer liggende i en database. Her må du nødvendigvis også have en status på varen. Om den er ledig, solgt eller lagt til side.
Dvs. så snart brugeren lægger varen i sin kurv, skal du opdatere varens status i din database, og sætte denne til f.eks. "Reserved". Samtidig kan du så lægge et timestamp ind for varen, så snart den ændrer status til "Reserved".
Hvis brugeren så afbryder sit køb, ligger din vare jo så godt nok i databasen med status "Reserved".
Næste bruger der så logger på din webshop, og vil have en oversigt over de varer der er tilgængelige, skal selvfølgelig også have vist de varer, som den tidligere bruger ikke købte alligevel.
Du kan gøre dette, ved at tjekker op på dit Timestamp, så snart du henter listen over tilgængelige varer. Dvs. er det f.eks. 15 min. siden varen skiftede status til "Reserved" må du gå ud fra at varen så ikke er blevet solgt alligevel. Så i det øjeblik du henter listen ind over ledige varer tjekker du altså op på om der ligger varer med status "Reserved hvor timestamp er mere end 15 min gammelt. Er der det, så ændrer du jo bare status til "Free" igen og sletter dit timestamp i databasen...
Sådan ville jeg i hvert fald gøre det! Det er måske ikke den mest advancerede måde, men det virker!
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.