Artikels opslaan in winkelwagen
Ik ben bezig met het maken van een webshop, deze moet uiteraard een winkelwagen bevatten.
Ik laat nu een lijst met artikelen tonen, met achter elk artikel een een link 'add to shopping cart'. Als ik op deze link klik, ga ik naar een nieuwe pagina waar al de artikelen van iemand zijn winkelwagentje worden bij gehouden.
Mijn vraag is: op welke manier kan ik bijhouden welke artikelen de gebruiker heeft aangeklikt?
$_SESSION ?
En blijven de artikelen dan nog steeds als de gebruiker afmeld?
Niet (alleen) in de sessie, maar in een database.
Ward van der Put op 05/02/2013 15:56:21:
Niet (alleen) in de sessie, maar in een database.
Dat dacht ik ook, maar ik snap niet goed op welke manier ik dat kan bijhouden?
- Mark - op 05/02/2013 15:51:31:
$_SESSION ?
Ja, met session.
Houd slechts twee dingen bij, per artikel:
het id van het artikel en het aantal exemplaren.
Begin vooral niet met prijzen op deze manier bij te houden; berekende sub-totaal, ...
De prijs is iets wat je, te allen tijde, op het laatste moment berekent; op basis van id en aantal exemplaren en met de eenheidsprijs uit de db.
Gewijzigd op 05/02/2013 16:05:07 door Kris Peeters
Kris Peeters op 05/02/2013 15:59:00:
(edit: ondertussen zijn er een aantal reacties tussen gekomen)
Ja, met session.
Houd slechts twee dingen bij, per artikel:
het id van het artikel en het aantal exemplaren.
Begin vooral niet met prijzen op deze manier bij te houden; berekende sub-totaal, ...
De prijs is iets wat je, te allen tijde, op het laatste moment berekent; op basis van id en aantal exemplaren en met de eenheidsprijs uit de db.
- Mark - op 05/02/2013 15:51:31:
$_SESSION ?
Ja, met session.
Houd slechts twee dingen bij, per artikel:
het id van het artikel en het aantal exemplaren.
Begin vooral niet met prijzen op deze manier bij te houden; berekende sub-totaal, ...
De prijs is iets wat je, te allen tijde, op het laatste moment berekent; op basis van id en aantal exemplaren en met de eenheidsprijs uit de db.
En op jouw manier, zou ik het niet moeten bijhouden in een databank?
Dat geeft je nog extra mogelijkheden.
Jos Vermassen op 05/02/2013 15:53:36:
... En blijven de artikelen dan nog steeds als de gebruiker afmeld?
Is het niet zo ongeveer de definitie van afmelden dat dit soort dingen terug op blanco worden gezet; alsof de gebruiker voor de eerste keer op de site komt?
Onderstaande is verre van compleet maar het is om je een idee te geven.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
# Session starten of hervatten.
session_start();
# Winkelwagen aanmaken als deze nog niet bestaat.
if(!isset($_SESSION['winkelwagen'])){
$_SESSION['winkelwagen'] = array();
}
# Artikel toevoegen.
if(isset($_GET['artikel_id'], $_GET['aantal'])){
$_SESSION['winkelwagen'][$_GET['artikel_id'] = $_GET['aantal'];
}
# Winkelwagen weergeven.
foreach($_SESSION['winkelwagen'] as $artikel_id => $aantal){
echo $artikel_id.' - '.$aantal;
}
?>
# Session starten of hervatten.
session_start();
# Winkelwagen aanmaken als deze nog niet bestaat.
if(!isset($_SESSION['winkelwagen'])){
$_SESSION['winkelwagen'] = array();
}
# Artikel toevoegen.
if(isset($_GET['artikel_id'], $_GET['aantal'])){
$_SESSION['winkelwagen'][$_GET['artikel_id'] = $_GET['aantal'];
}
# Winkelwagen weergeven.
foreach($_SESSION['winkelwagen'] as $artikel_id => $aantal){
echo $artikel_id.' - '.$aantal;
}
?>
Kris Peeters op 05/02/2013 16:06:08:
Bijhouden in een db mag ook.
Dat geeft je nog extra mogelijkheden.
Is het niet zo ongeveer de definitie van afmelden dat dit soort dingen terug op blanco worden gezet; alsof de gebruiker voor de eerste keer op de site komt?
Dat geeft je nog extra mogelijkheden.
Jos Vermassen op 05/02/2013 15:53:36:
... En blijven de artikelen dan nog steeds als de gebruiker afmeld?
Is het niet zo ongeveer de definitie van afmelden dat dit soort dingen terug op blanco worden gezet; alsof de gebruiker voor de eerste keer op de site komt?
Nee, dat zou niet mogen gebeuren in dit geval.
Kan je me een stapje in de goede richting zetten, hoe ik het moet doen met een databank?
Op de middellange en lange termijn wil je de conversie kunnen analyseren. En daarvoor heb je niet slechts de verkoopdata nodig, maar zeker ook alle achtergelaten winkelwagentjes die niet tot een concrete bestelling hebben geleid. Verder helpen alle winkelwagentjes (ook de achtergelaten) bij up-sellen en cross-sellen.