cursuri cursuri cursuri cursuri cursuri cursuri
cursuri
cursuri
cursuri
Cursuri    Tutoriale    Teste    Jocuri
 
 
cursuri Am uitat utilizatorul cursuri Am uitat parola
cursuri online Cursuri online
Cursuri online gratuite
cursuri online Tutoriale
Cum sa faci orice
cursuri online Teste online
Testeaza-ti cunostintele
cursuri online Revista
Aboneaza-te gratuit
cursuri online Jocuri
Jocuri educative
cursuri online Inregistreaza-te
Intra in comunitate
eCursuri » Cursuri online » Tehnologia informatiei » Magazin online cu PHP si MySql » Lectia 17
Cosul de cumparaturi
9866 afisari

Adaugarea unui produs in cos

Cand vei da click pe butonul Adauga in cos din pagina produsului, vei fi redirectionat spre pagina cart.php. Daca, spre exemple, vei dori sa cumpari produsul Locomotiva OBB Taurus vei merge la pagina cart.php?action=add&p=19.

Codul pentru cart.php este urmatorul:

<?php
require_once 'library/config.php';
require_once 'library/cart-functions.php';

$action = (isset($_GET['action']) && $_GET['action'] != ') ? $_GET['action'] : 'view';

switch ($action) {
case 'add' :
addToCart();
break;
case 'update' :
updateCart();
break;
case 'delete' :
deleteFromCart();
break;
case 'view' :
}

$cartContent = getCartContent();
$numItem = count($cartContent);

$pageTitle = 'Cosul de cumparaturi';
require_once 'include/header.php';

// afiseaza un mesaj de eroare daca exista
displayError();

if ($numItem > 0 ) {
?>
<form action="<?php echo $_SERVER['PHP_SELF'] . "?action=update"; ?>" method="post" name="frmCart" id="frmCart">
<table width="780" border="0" align="center" cellpadding="5" cellspacing="1" class="entryTable">
<tr class="entryTableHeader">
<td colspan="2" align="center">Produs</td>
<td align="center">Pret unitar</td>
<td width="75" align="center">Cantitate</td>
<td align="center">Total</td>
<td width="75" align="center">?</td>
</tr>
<?php
$subTotal = 0;
for ($i = 0; $i < $numItem; $i++) {
extract($cartContent[$i]);
$productUrl = "index.php?c=$cat_id&p=$pd_id";
$subTotal += $pd_price * $ct_qty;
?>
<tr class="content">
<td width="80" align="center"><a href="<?php echo $productUrl; ?>"><img src="<?php echo $pd_thumbnail; ?>" border="0"></a></td>
<td><a href="<?php echo $productUrl; ?>"><?php echo $pd_name; ?></a></td>
<td align="right"><?php echo displayAmount($pd_price); ?></td>
<td width="75"><input name="txtQty[]" type="text" id="txtQty[]" size="5" value="<?php echo $ct_qty; ?>" class="box" onKeyUp="checkNumber(this);">
<input name="hidCartId[]" type="hidden" value="<?php echo $ct_id; ?>">
<input name="hidProductId[]" type="hidden" value="<?php echo $pd_id; ?>">
</td>
<td align="right"><?php echo displayAmount($pd_price * $ct_qty); ?></td>
<td width="75" align="center"> <input name="btnDelete" type="button" id="btnDelete" value="Sterge" onClick="window.location.href='<?php echo $_SERVER['PHP_SELF'] . "?action=delete&cid=$ct_id"; ?>';" class="box">
</td>
</tr>
<?php
}
?>
<tr class="content">
<td colspan="4" align="right">Subtotal</td>
<td align="right"><?php echo displayAmount($subTotal); ?></td>
<td width="75" align="center">?</td>
</tr>
<tr class="content">
<td colspan="4" align="right">Transport </td>
<td align="right"><?php echo displayAmount($shopConfig['shippingCost']); ?></td>
<td width="75" align="center">?</td>
</tr>
<tr class="content">
<td colspan="4" align="right">Total </td>
<td align="right"><?php echo displayAmount($subTotal + $shopConfig['shippingCost']); ?></td>
<td width="75" align="center">?</td>
</tr>
<tr class="content">
<td colspan="5" align="right">?</td>
<td width="75" align="center">
<input name="btnUpdate" type="submit" id="btnUpdate" value="Actualizeaza Cos" class="box"></td>
</tr>
</table>
</form>
<?php
} else {

?>
<p>?</p><table width="550" border="0" align="center" cellpadding="10" cellspacing="0">
<tr>
<td><p align="center">Cosul dumneavoastra este gol</p><td>
</tr>
</table>
<?php
}

$shoppingReturnUrl = isset($_SESSION['shop_return_url']) ? $_SESSION['shop_return_url'] : 'index.php';
?>
<table width="550" border="0" align="center" cellpadding="10" cellspacing="0">
<tr align="center">
<td><input name="btnContinue" type="button" id="btnContinue" value="<< Continua cumparaturile" onClick="window.location.href='<?php echo $shoppingReturnUrl; ?>';" class="box"></td>
<?php
if ($numItem > 0) {
?>
<td><input name="btnCheckout" type="button" id="btnCheckout" value="Finalizeaza comanda >>" onClick="window.location.href='checkout.php?step=1';" class="box"></td>
<?php
}
?>
</tr>
</table>
<?php
require_once 'include/footer.php';
?>
cart.php

Deoarece ai action=add in Url-ul sursa se va apela functia addToCart(). Aceasta functie se comporta astfel:

• Verifica daca produsul exista in baza de date.
• Verifica daca stocul nu este zero.
• Daca produsul exista deja in cos, mareste cantitatea din cos cu unu.
• Daca nu, adauga produsul in cos.

function addToCart()
{
// verifica dac aprodusul exista
if (isset($_GET['p']) && (int)$_GET['p'] > 0) {
$productId = (int)$_GET['p'];
} else {
header('Location: index.php');
}

// exista produsul?
$sql = "SELECT pd_id, pd_qty
FROM tbl_product
WHERE pd_id = $productId";
$result = dbQuery($sql);

if (dbNumRows($result) != 1) {
// produsul nu exista
header('Location: cart.php');
} else {
// verifica stocul
$row = dbFetchAssoc($result);
$currentStock = $row['pd_qty'];

if ($currentStock == 0) {
// produsul nu este in stoc
setError(?Produsul este indisponibil momentan.?);
header('Location: cart.php');
exit;
}
}

// current session id
$sid = session_id();

// verifica daca produsul exista deja in cos
$sql = "SELECT pd_id
FROM tbl_cart
WHERE pd_id = $productId AND ct_session_id = '$sid'";
$result = dbQuery($sql);

if (dbNumRows($result) == 0) {
// put the product in cart table
$sql = "INSERT INTO tbl_cart (pd_id, ct_qty, ct_session_id, ct_date)
VALUES ($productId, 1, '$sid', NOW())";
$result = dbQuery($sql);
} else {
// modifica cantitatea din cos
$sql = "UPDATE tbl_cart
SET ct_qty = ct_qty + 1
WHERE ct_session_id = '$sid' AND pd_id = $productId";

$result = dbQuery($sql);
}
deleteAbandonedCart();
header('Location: ' . $_SESSION['shop_return_url']);
}

Aceasta functie face si altceva. Apeleaza functia deleteAbandonedCart() care sterge un cos deja existent daca au trecut 24 de ore de la crearea lui.

function deleteAbandonedCart()
{
$yesterday = date('Y-m-d H:i:s',
mktime(0,0,0, date('m'), date('d') - 1, date('Y')));
$sql = "DELETE FROM tbl_cart
WHERE ct_date < '$yesterday'";
dbQuery($sql);
}

Dupa plasarea unui produs in cos, clientul va fi redirectionat spre pagina in care va vizualiza cosul de cumparaturi.

header('Location: cart.php?action=view');

Vizualizarea cosului

Interfata cosului de cumparaturi este mult mai simpla decat paginiile de cumparaturi. Studiile au aratat ca lasand doar cosul propriu-zis in pagina conduce la o rata mai mare de finalizare a comenzii.

Daca cosul de cumparaturi este gol sau clientul a ajuns din greseala la el, ii vei afisa un mesaj prin care ii spui acest lucru: Cosul dumneavoastra este gol. .

Daca exista produse in cos, le afisezi. Fiecare rand va contine imaginea mica a produsului, numele, pretul unitar, cantitatea si suma totala pentru acel produs. De asemenea va exista un buton prin care se va putea sterge rapid produsul din cos.

Acest buton este bine sa existe mereu. Poate ai vazut la alte magazine online ca stergerea se face prin introducerea cantitatii 0 la un produs si apasarea butonului Actualizare, fara a exista si un buton de stergere. Este un lucru gresit, deoarece o actiune simpla se transforma in ceva dificil de infaptuit.

Mini cosul din dreapta paginii

Nu ai uitat de mini cosul de cumparaturi care apare in partea dreapta pe fiecare pagina a site-ului.

Iata codul sursa al fisierului miniCart.php:

<?php
if (!defined('WEB_ROOT')) {
exit;
}

$cartContent = getCartContent();

$numItem = count($cartContent);
?>
<table width="100%" border="1" cellspacing="0" cellpadding="2" id="minicart">
<?php
if ($numItem > 0) {
?>
<tr>
<td colspan="2">Cart Content</td>
</tr>
<?php
$subTotal = 0;
for ($i = 0; $i < $numItem; $i++) {
extract($cartContent[$i]);
$pd_name = "$ct_qty x $pd_name";
$url = "index.php?c=$cat_id&p=$pd_id";

$subTotal += $pd_price * $ct_qty;
?>
<tr>
<td><a href="<?php echo $url; ?>"><?php echo $pd_name; ?></a></td>

<td width="30%" align="right"><?php echo displayAmount($ct_qty * $pd_price); ?></td>
</tr>
<?php
} // end while
?>
<tr><td align="right">Subtotal</td>
<td width="30%" align="right"><?php echo displayAmount($subTotal); ?></td>
</tr>
<tr><td align="right">Transport</td>
<td width="30%" align="right"><?php echo displayAmount($shopConfig['shippingCost']); ?></td>
</tr>
<tr><td align="right">Total</td>
<td width="30%" align="right"><?php echo displayAmount($subTotal + $shopConfig['shippingCost']); ?></td>
</tr>
<tr><td colspan="2">?</td></tr>
<tr>
<td colspan="2" align="center"><a href="cart.php?action=view"> Vezi cosul </a></td>
</tr>
<?php
} else {
?>
<tr><td colspan="2" align="center" valign="middle">Cosul este gol </td></tr>
<?php
}
?>
</table>
miniCart.php
« Afisarea produselor Realizarea comenzii »
0 comentarii
Adauga comentariu

Pentru a adauga comentarii trebuie sa fii membru eCursuri.ro

Intra in contul tau sau inregistreaza-te GRATUIT (dreapta sus)
Publicitate
Cuprinsul cursului
Limbajul PHP
1. Introducere in limbajul PHP
2. Variabile PHP
3. Operatori PHP
4. Structuri de control
5. Utilizarea tablourilor si scrierea functiilor
6. PHP orientat spre obiecte
MySQL
7. Introducere in MySQL
8. Structura si arhitectura bazelor de date
9. Construirea bazei de date
10. Interogarea INSERT
11. Interogarea SELECT
12. Interogarile UPDATE si DELETE
Realizarea magazinului online
13. Introducere in realizarea magazinul online
14. Crearea bazei de date
15. Pagina principala
16. Afisarea produselor
17. Cosul de cumparaturi
18. Realizarea comenzii
19. Modulul de administrare
20. Instalare Apache, MySQL si PHP in Windows
Cursuri noi Top cursuri
Curs de legislatie rutiera

7 lectii online
Excel prin exemple

10 lectii online
Windows XP prin exemple

10 lectii online
Infiintarea unei firme

6 lectii online
Gramatica limbii engleze

27 lectii online
Introducere in e-Business

25 lectii online
Curs de Machiaj

13 lectii online
Curs de Fashion

17 lectii online
Curs de Barman

10 lectii online
HTML pe intelesul tuturor

11 lectii online
cursuri
Copyright © 2005-2011 - eCursuri.ro - toate drepturile rezervate - E-mail: contact@ecursuri.ro Cursuri și certificări GDPR