Jak stworzyć koszyk zamówień do sklepu internetowego z wykorzystaniem cookies, PHP Skrypty


[PHP] Jak stworzyć koszyk zamówień do sklepu internetowego z wykorzystaniem cookies?

0x01 graphic

Chcesz stworzyć koszyk zamówień w dowolnym sklepie internetowym.

0x01 graphic

Koszyk zamówień, gdzie klient gromadzi kupione produkty, przegląda je, kasuje, zwiększa lub zmniejsza ilość sztuk zamówionych towarów to jeden z najważniejszych elementów sklepu internetowego. Trudno wyobrazić sobie funkcjonowanie sklepu bez koszyka.

Koszyk powinien być prosty w obsłudze, elastyczny i bezpieczny. Stwórzmy go, bo bez wątpienia będzie Ci potrzebny, jeżeli zamierzasz cokolwiek sprzedawać w Sieci.

Zasymylujemy przy okazji wszystkie procesy, z których korzysta klient, a więc dodanie produktu do koszyka (kupno towaru), usunięcie go z koszyka, zmianę sztuk danego produktu i oczywiście przegląd koszyka. Wystarczy, że umieścisz poniższy skrypt w pliku index.php aby zobaczyć, jak przebiega obsługa koszyka.

Oczywiście każdy sklep musi mieć koszyk dostosowany do własnych potrzeb, jednak poniższy szablon można zastosować w każdym sklepie bez wyjątku. Wystarczy dodać grafikę i obsługę cen. Ponieważ wykorzystuje on cookies, użytkownik musi je mieć włączone.

Poniższym koszykiem możesz pobawić się też online, na stronie:
porady/00/06/koszyk/index.php

<?

$koszyk=$_COOKIE["koszyk"];

$id=$_GET["id"];

$ile=$_GET["ile"];

if ($ile<0) unset($ile);

function dodaj($koszyk,$id,$ile) {

$zakupy = explode("|",$koszyk);

for ($i=0;$i<count($zakupy)-1;$i++) {

$p = explode("#",$zakupy[$i]);

if ($p[0]==$id) {

if (isset($ile)) $p[1]=$ile;

else $p[1]++;

$jest=true;

}

if ($p[1]>0) $nowy .= "$p[0]#$p[1]|";

}

if (!$jest) $nowy .= "$id#1|";

return $nowy;

}

if ($id<>"") {

$koszyk = dodaj($koszyk,$id,$ile);

setcookie("koszyk", $koszyk, 0, "/");

header("Location: index.php");

exit;

}

?>

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

<html><head><meta http-equiv="content-type"

content="text/html; charset=iso-8859-2">

<title>Koszyk </title></head><body>

<p>

Zawartość koszyka:

<p>

<?

echo "<table border=1>";

echo "<tr align=center><td><b>id</b></td><td><b>sztuk</b></td><td>&nbsp;</td>";

$zakupy = explode("|",$koszyk);

for ($i=0;$i<count($zakupy)-1;$i++) {

$p = explode("#",$zakupy[$i]);

echo "<tr><td valign=center>$p[0]</td>";

echo "<td><form action=\"index.php\" action=\"get\" style=\"display:inline;\">

<input type=\"hidden\" name=\"id\" value=\"$p[0]\">

<input type=\"text\" name=\"ile\" value=\"$p[1]\" style=\"width:50px;\">

<input type=\"submit\" value=\" zmień \" style=\"80px;\"></form></td>";

echo "<td><form action=\"index.php\" action=\"get\" style=\"display:inline;\">

<input type=\"hidden\" name=\"id\" value=\"$p[0]\">

<input type=\"hidden\" name=\"ile\" value=\"0\">

<input type=\"submit\" value=\" skasuj \" style=\"80px;\"></form></td>";

echo "</tr>";

}

echo "</table><p>";

echo "Wygląd koszyka w cookies:<p>$koszyk";

?>

<p>

Produkty do kupienia:<br>

<a href="index.php?id=1">kup produkt 1</a> |

<a href="index.php?id=23">kup produkt 23</a> |

<a href="index.php?id=3">kup produkt 3</a> |

<a href="index.php?id=4">kup produkt 4</a> |

<a href="index.php?id=54">kup produkt 54</a> |

<a href="index.php?id=119">kup produkt 119</a> |

</body></html>

Zobaczmy jak to działa. Sercem koszyka jest funkcja dodaj(), która wstawia do cookies identyfikator produktu (ID) oraz ilość sztuk tego produktu (co najmniej jedną sztukę produktu zawsze musimy w koszyku mieć).

Do obsługi koszyka wystarczą nam dwie informacje o produkcie - jego niepowtarzalny identyfikator i oczywiście liczba sztuk. Mając te dane, bez problemu można wyciągnąć z bazy szersze informacje o produkcie - jego cenę, nazwę, kolorystykę czy opis.

Dla koszyka istotna jest jeszcze cena produktu i cena zbiorcza, ale mając identyfikator produktu możesz ją łatwo wyciągnąć z bazy produktów i za pomocą prostych operacji matematycznych wypisać obok cenę za sztukę, cenę łączną (cena sztuki*ilość) i cenę zbiorczą zamówionych towarów (suma cen łącznych).

W cookies będziemy zapisywać więc tylko identyfikator i ilość sztuk w formacie id#sztuk, a poszczególne towary oddzielimy znakiem |. Cookies o nazwie $koszyk może zawierać następujacy wpis: id#sztuk|id#sztuk|id#sztuk| itd...

Cookies może mieć do 4096 znaków, a więc mając id o długości 10 znaków i liczbę sztuk 99, możemy w cookies pomieścić 300 różnych produktów po 99 sztuk, a gdy id jest krótsze nawet ponad 500 towarów. Życzę Ci takiego zamówienia... Jak widzisz, nigdy nie wykorzystasz nawet ułamka pojemności cookies.

Najważniejsze założenie jest takie, że wystarczy przekazać w odnośniku numer id produktu, aby go umieścić w koszyku. A więc na dowolnej stronie z produktami wystarczy umieścić link z identyfikatorem produktu, np. /koszyk/index.php?id=12345.

Po kliknięciu funkcja dodaj() umieści w koszyku jedną sztukę produktu. Jeżeli sztuk ma być od razu więcej, wystarczy użyć dodatkowego parametru ile, np. /koszyk/index.php?id=12345&ile=3

Jeżeli wartość ile będzie równa zero, to produkt zostanie usunięty z koszyka, jeżeli wcześniej tam był. Jeżeli mamy określoną liczbę produktów, a prześlemy dodatkowy parametr ile, wtedy liczba produktów zmieni się na podaną wartość - taka operacja wykonywana jest w momecie zmiany ilości w formularzu znajdującym się w koszyku.

Jeżeli klient dwa razy kliknie na zamówieniu wybranego produktu, zwiększy o jeden ilość posiadanych w koszyku produktów - jak widzisz, zamawianie jest uniwersalne i intuicyjne.

Po każdym zamówieniu lub zmianie (wtedy id jest podany) następuje aktualizacja koszyka w cookies i przeładowanie strony na ten sam adres (index.php), ale bez parametrów, aby użytkownik odświeżając stronę nie zmienił przez przypadek (i nieświadomie) zawartości własnego koszyka.

W skrypcie znajduje się też wypisywanie zawartości koszyka na ekranie, zarówno dla klienta, jak i dla Ciebie - możesz zobaczyć jak wygląda zawartość cookies w momencie zamówienia lub zmiany zawartości koszyka.

Są też przykładowe linki symulujące zakupy - po kliknięciu możesz zobaczyć jak dodawane są towary do koszyka. Całość jest bardzo prosta, wystarczy chwilę poeksperymentować ze skryptem aby dostosować go do własnej bazy danych z produktami.



Wyszukiwarka

Podobne podstrony:
Jak stworzyć indeks pierwszych liter dla wybranej kolumny z tabeli, PHP Skrypty
Jak stworzyć losowe porady wyświetlające się na stronie WWW, PHP Skrypty
jak stworzyc system www do edycji plikow tekstowych i stron w wybranyum katalogu, PHP Skrypty
Jak pokazać i skąd wziąć imieniny przypadające na aktualny dzień, PHP Skrypty
jak pobrac zdalny plik na lokalny server raz dziennie, PHP Skrypty
Jak wypisać w tabeli zawartość pliku tekstowego z polami oddzielonymi separatorem, PHP Skrypty
Jak wysłać mailem w formacie HTML zawartość tabeli z bazy danych, PHP Skrypty
jak zmienic liczby na kod BCD dinary coded decimal, PHP Skrypty
Jak uzyskać IP lub domenę z jakiej łączy się użytkownik, PHP Skrypty
Jak wykryć i pokazać liczbę osób oglądających aktualnie stronę WWW, PHP Skrypty
Jak sprawdzić czy w bazie danych istnieje aktualnie dodawana treść, PHP Skrypty
Jak sprawdzić typy i atrybuty ustawione dla każdej z kolumn tabeli, PHP Skrypty
Jak sprawdzić czy zmienna przechowuje liczbę całkowitą lub rzeczywistą, PHP Skrypty
Jak wysłać e-mail korzystając z gniazd (socket) zamiast funkcji mail, PHP Skrypty
Jak pobrać i pokazać aktualne notowania średnich kursów walut z NBP, PHP Skrypty
Jak zrobić koszyk z Papierowej Wikliny, Dokumenty do szkoły, przedszkola; inne, plastyka(1), prace r
Jak przekazać ogłoszenie o udzieleniu zamowienia do Urzedu OPWE
Jak stworzyć formularz, który zapisze?ne do pliku tekstowego,?y potem jego zawartość dołączyć

więcej podobnych podstron