Jag håller på att bygga upp en webshop där jag ska försöka hålla upplägget så enkelt som möjligt med kundvagnen och så där.
Så här har jag börjat:
1. När användaren besöker sidan så skapas en Session med "customer_id" och "customer_ip". "customer_id" är ett tal mellan 10000-99999 som ska vara unikt.
2. När användaren lägger produkter i kundvagnen så sparas dom med "customer_ip" och "customer_id" som identifiering till kunden.
3. När användaren går till kassan så får användaren registrera sina adressuppgifter osv som sedan sparas i tabellen för användare tillsammans med ett av användaren valt lösenord (för att kunna se status på ordern senare).
4. Väljer användaren att INTE köpa dom produkterna denna har lagt i kundvagnen så raderas inaktiva produkter i kundvagnen efter ~1tim.
Så med andra ord behöver inte användaren registrera sig Innan denna handlar på webshopen. Ej heller logga in.
Är detta en smart och bra lösning? Finns det några stora nackdelar som jag inte ser?
Spara en cookie i stället. Då kan man komma tillbaka dagen efter och fortsätta handla.
Webbplatser som raderar kundvagnens innehåll efter en viss tid ökar bara irritationen när man måste fylla den igen. Vill jag kolla in utbudet och bestämma mig för vad jag ska köpa nästa vecka så bör jag få göra det.
Sedan är det förstås mycket enklare att sätta en cookie när användaren lägger något i kundvagnen, än att ge ett unikt nummer vid varje sidladdning. Keep it simple.
Typ så här:
Response.Cookies("customer_id")=12389 (slumpat nummer, men unikt efter koll i databas)
Response.Cookies("customer_id").Expires=dateserial(Year(Now),Month(Now),Day(Now)+30)
Då har användaren fått ett ID som är sparat som en cookie i 30dagar på användarens dator. Det är väl okej om kundvagnen sparas i 30dagar?
Men produkterna i kundvagnen är fortfarande sparade i en databas, fast IDet är taget från cookien... det är så du menar va?
Men ska man ha så att användaren ska kunna logga in och hålla? Tänkte att man bara ska få ett lösenord för varje specifik order, så man kan kolla status och sådär! Vad tror du om det?
Men du behöver ju inte slumpa fram några ID-nummer alls. Sätt ID-nummer när de behövs helt enkelt. Jag skulle inte sätta någon tidsfrist på cookien, det fungerar bra med att den sparas "för alltid".
oskars skrev:
Men produkterna i kundvagnen är fortfarande sparade i en databas, fast IDet är taget från cookien... det är så du menar va?
Det stämmer. Fast ID-numret är ju taget från databasen och lagd i cookien - inte tvärtom.
oskars skrev:
Men ska man ha så att användaren ska kunna logga in och hålla? Tänkte att man bara ska få ett lösenord för varje specifik order, så man kan kolla status och sådär! Vad tror du om det?
Det beror lite på vad nätbutiken ska sälja. Är det sällanköp kan det mycket väl fungera, men annars skulle jag rekommendera en vanlig inloggning.
När personen loggar in kan man knyta kundvagnen till kontot först då, vilket gör att man också kan få fram den när man loggar in på en annan dator (då det bara är att knyta cookien dit också).
1. Användaren besöker webshopen.
2. Lägger något i kundvagnen
3. Då sparas produkten i databasen för kundvagnen
4. Den första produkten som läggs till får ett ID som resten av produkterna som läggs till ska få även dom. Detta IDet sparas som cookie på den datorn.
Nej, själva kundvagnen är Shoppingcart. ShoppingcartProductsMap innehåller produkterna i kundvagnen. På detta sätt får du fram ett unikt ID för varje kundvagn, du kan spara information om vem kundvagnen tillhör (IP) och vilket datum den lades till. Det är mer stringent och normaliserat att separera själva vagnen från dess innehåll.
När sedan den inloggade användaren har tryckt "Slutför beställning" så sätts användarens ID-nummer på shoppingvagnen. På så vis går det på ett mycket enkelt sätt att få en köphistorik med mera.
Om du däremot gör som du föreslår, så den första inlagda produkten bildar shoppingvagn, får du problem med att knyta ihop de efterföljande produkterna och generera ID-nummer, och det blir en svåröversiktlig tabell. Inte minst när du ska knyta ihop alla produkter med en användare.
1. Kunden lägger till första produkten i kundvagnen
2. Kundvagnen skapas i Shoppingcart och får ett ID
3. Produkten läggs till i ShoppingcartProductsMap med ID från Shoppingcar
4. När kunden lägger till nästa produkt kontrolleras det om det redan finns en kundvagn i Shoppingcart, och produkten läggs till i ShoppingcarProductsMap med samma ID som tidigare produkt.
Så va?
Men varför ska användaren få ett nytt ID-nummer, när kundvagnen redan har ett? Det borde väl gå att använda det? Eller ska användarens nya ID-nummer skapas i en tabell för kundregister?
1. Kunden lägger till första produkten i kundvagnen
2. Kundvagnen skapas i Shoppingcart och får ett ID
3. Produkten läggs till i ShoppingcartProductsMap med ID från Shoppingcar
4. När kunden lägger till nästa produkt kontrolleras det om det redan finns en kundvagn i Shoppingcart, och produkten läggs till i ShoppingcarProductsMap med samma ID som tidigare produkt.
Så va?
Precis. Under punkt 4 så ska det ju finnas en cookie som man kan hämta ID-numret på kundvagnen ifrån.
oskars skrev:
Men varför ska användaren få ett nytt ID-nummer, när kundvagnen redan har ett? Det borde väl gå att använda det? Eller ska användarens nya ID-nummer skapas i en tabell för kundregister?
Användaren ska inte få ett nytt nummer, det var ju det jag skrev tidigare att det inte finns någon mening med att slumpa fram.
Användarens ID sätter du på kundvagnen om kunden är inloggad eller efter kunden har loggat in. Tills dess kan du aldrig veta vilken kund vagnen ska knytas till.
Användarens ID-nummer ligger självfallet i en egen tabell med kundregistret.
266 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25