Mai ai un singur lucru de facut: plata. Pentru aceasta vei face o pagina unde utilizatorul completeaza un formular cu numele si adresa unde doreste sa primeasca comanda si apoi alta pagina care verifica daca toate campurile formularului au fost completate, introduce informatiile in baza de date, trimite administratorului un email si afiseaza utilizatorului un mesaj de multumire.
Fisierul care prelucreaza aceste informatii, checkout.php va executa urmatoarele actiuni:
• Va verifica daca numele este completat.
• Va verifica daca adresa este completata.
• Va verifica numarul produselor din cos, astfel incat sa nu se trimita formularul fara a fi cumparat nici-un produs.
• Se conecteaza la baza de date.
• Va introduce o noua inregistrare in tabela tbl_order cu numele, adresa si data tranzactiei.
• Va introduce in tabela tbl_order_item produsele cumparate.
• Va trimite un mail de notificare.
• Curata sesiunea, stergand toate datele salvate anterior pentru ca nu mai este nevoie de ele si ar putea induce confuzie in utilizator.
• Afiseaza utilizatorului pagina, cu un mesaj de multumire.
Inainte de a vedea codul fisierului, sa clarificam un lucru: functia mail(). Pe sistemele Linux aceasta foloseste sendmail sau qmail pentru a trimite mesaje, pe sistemele Windows foloseste SMTP. Daca ai Windows 2000 sau XP poti porni serviciul SMTP pentru a trimite emailuri dar daca ai Windows 98 sau NT va trebui sa modifici setarile din php.ini si sa folosesti SMTP-ul ISP-ul pentru a trimite emailuri. Iata cum arata setarea SMTP in php.ini:
[mail function]
; For Win32 only
SMTP = mail.isp.ro
Daca esti pe Windows 2000 sau XP poti seta SMTP = localhost, dar serviciul de SMTP trebuie sa fie pornit! Fa modificarea in php.ini apoi fa un fisier de test.
Iata si codul fisierului checkout.php:
<?php
require_once 'library/config.php';
require_once 'library/cart-functions.php';
require_once 'library/checkout-functions.php';
if (isCartEmpty()) {
// daca cosul este gol
// nu putem trimite comanda
header('Location: cart.php');
} else if (isset($_GET['step'])
&& (int)$_GET['step'] > 0
&& (int)$_GET['step'] <= 3) {
$step = (int)$_GET['step'];
$includeFile = ';
if ($step == 1) {
$includeFile = 'shippingAndPaymentInfo.php';
$pageTitle = 'Checkout - Step 1 of 2';
} else if ($step == 2) {
$includeFile = 'checkoutConfirmation.php';
$pageTitle = 'Checkout - Step 2 of 2';
} else if ($step == 3) {
$orderId = saveOrder();
$orderAmount = getOrderAmount($orderId);
$_SESSION['orderId'] = $orderId;
// trimite mail si adauga in baza de date comanda
if ($_POST['hidPaymentMethod'] == 'cod') {
header('Location: success.php');
exit;
} else {
$includeFile = 'mail.php';
}
}
} else {
// redirect
header('Location: index.php');
}
require_once 'include/header.php';
?>
<?php
require_once "include/$includeFile";
require_once 'include/footer.php';
?>