Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sposób na koszyk w sklepie internetowym
Forum PHP.pl > Forum > PHP
przemo191
Witam, dostałem za zadanie stworzyć meblowy sklep internetowy. Utknąłem na koszyku. Z tym że nie takim banalnym jak id_produktu i ilość, bo to nie jest problem.
W koszyku muszę zawrzeć:
- id_produktu
- ilość
- id_wybarwienia_drewna
- numer_wybarwienia
- id_tkaniny
- numer_tkaniny

I to moje pytanie w czym to najlepiej zrobić?
- ciasteczka
- sesje
- baza danych
- tablice bardzo wielowymiarowe w sesjach
toffiak
Tworząc swój koszyk do księgarni, informacje o dodanych produktach trzymałem w sesji synchronizując koszyk sesyjny z koszykiem zapisanym w bazie.

Użytkownika dla którego należał koszyk identyfikowałem poprzez jego identyfikator w systemie, pod warunkiem że był on użytkownikiem zarejstrowanym oraz zalogowanym, użytkownicy anonimowi byli identyfikowani poprzez cookie, zawierające unikalny token powiązujący go z koszykiem w bazie.

Takie rozwiązanie miało tą zaletę że zalogowany użytkownik miał zawsze dostęp do swojego koszyka, anonimowy także pod warunkiem że nie usuwał plików cookie.
cv65
Też polecam sesję do tego.
Ale w taki sposób.

  1. $_SESSION['cart'] = array(
  2. 'id' => $id,
  3. 'qty' => $qty,
  4. 'options' => array(
  5. 'num_colors' => $num_colors,
  6. 'num_materials' => $num_materials
  7. itp...
  8. ));

Ale żeby nie sprawdzać za każdym razem poprawność produktów w koszyku i doliczać dodatkowych zapytań przy każdej stronie.
To postanowiłem że dopiero w pliku cart.php - czyli zawierający wszystkie produkty w koszyku i kolejne kroki do zakupy. To tam sprawdzam czy produkt z koszyka jest poprawny, dostępny w magazynie itp. I jeżeli nie to wyświetlam stosowny komunikat i automatycznie usuwam produkty z koszyka albo użytkownik musi sam je skasowac bo przycisk kolejny krok jest zablokowany
karis
memcached
cv65
Po pierwsze niekażdy ma możliwość użycia memcached.

A po drugie i tak sesje są wygodniejsze.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.