Afrekenen
Elke webshop is anders. De een accepteert een online-betaalmiddel, de ander niet. Ik ga niet zo ver. In het onderstaande script wordt er een order neergezet en worden daarvan de orderregels opgeslagen.
Ik ga ook niet zover dat men nog de adresgegevens kan aanpassen. Ik doe het alleen even met klantnummer, ervan uitgaande dat de klant is ingelogd (op basis van sessies) en de klant te herkennen is aan $_SESSION['klantnr'].
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
28
29
30
31
32
33
34
35
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
28
29
30
31
32
33
34
35
<?php
// checkout.php
session_start();
// In het script doen we het ook maar even stap voor stap.
// Stap 1, zet de order in de order tabel
$sql = "INSERT INTO bestelling
(klantnummer, besteldatum)
VALUES
(".$_SESSION['klantnr'].",".date().")"; // Verzin iets moois voor de date() functie
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
$ordernr = mysql_insert_id(); // Die hebben we later nodig, is dus ordernr (bestelnr)
// Stap 2, winkelwagen splitten en in de database zetten
$cart = explode("|",$_SESSION['cart']);
foreach($cart as $products) {
// Split
/*
$product[x] -->
x == 0 -> product id
x == 1 -> hoeveelheid
*/
$product = explode(",",$products);
$iSql = "INSERT INTO bestelregel
(bestelnummer, productnummer, aantal_besteld)
VALUES
(".$ordernr.", ".$product[0].", ".$product[1].")";
$iQuery = mysql_query($iSql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
}
echo "<p>De bestelling is toegevoegd!"</p>
?>
// checkout.php
session_start();
// In het script doen we het ook maar even stap voor stap.
// Stap 1, zet de order in de order tabel
$sql = "INSERT INTO bestelling
(klantnummer, besteldatum)
VALUES
(".$_SESSION['klantnr'].",".date().")"; // Verzin iets moois voor de date() functie
$query = mysql_query($sql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
$ordernr = mysql_insert_id(); // Die hebben we later nodig, is dus ordernr (bestelnr)
// Stap 2, winkelwagen splitten en in de database zetten
$cart = explode("|",$_SESSION['cart']);
foreach($cart as $products) {
// Split
/*
$product[x] -->
x == 0 -> product id
x == 1 -> hoeveelheid
*/
$product = explode(",",$products);
$iSql = "INSERT INTO bestelregel
(bestelnummer, productnummer, aantal_besteld)
VALUES
(".$ordernr.", ".$product[0].", ".$product[1].")";
$iQuery = mysql_query($iSql) or die (mysql_error()."<br>in file ".__FILE__." on line ".__LINE__);
}
echo "<p>De bestelling is toegevoegd!"</p>
?>
Hier wordt dus elke regel in de tabel bestelregel gezet. Samen met het aantal en het bestelnummer.
Ook dit kan je flink uitbreiden, denk aan een e-mail naar de klanten. Maar eigenlijk hoor je ook de prijs van het artikel van het moment van bestellen in de database te zetten, dat is voor historische gegevens (bestellingen later inkijken, bijvoorbeeld na een prijswijziging).
Lees ook zeker even de volgende pagina!
« vorige pagina | volgende pagina »
Inhoudsopgave
- Voorwoord
- Technisch ontwerp
- Etalage
- Producten toevoegen
- De winkelwagen
- Verwijderen items
- Winkelwagen updaten
- Afrekenen
- Nawoord
- PHP tutorials opties
- Nieuwste PHP tutorials
- PHP tutorial toevoegen
- Gesponsorde koppelingen

