Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Działanie koszyka w sklepie internetowym.
andrzej7322
post 2.06.2011, 22:08:59
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


Witam,
Mam mały problem z funkcjonowaniem koszyka w sklepie internetowym.
Zastanawiam się nad działaniem koszyka i przechowalni w sklepie internetowym.Podczas tworzenia sklepu zmanipulowałem taka sytuacje ze dwóch klientów chce kupić jeden produkt w tym samym momencie lecz dostępna jest tylko jedna sztuka.
W takim przypadku dochodzi do sytuacji, że jeżeli jeden z nich będzie szybszy to ten drugi podczas realizowania zamówienia dostanie komunikat, że ktoś był szybszy i produkt już nie jest dostępny żeby uniknąć takiej sytuacji postanowiłem zrobić tak, ze podczas gdy zalogowany użytkownik dodaje produkt do koszyka to dostępność danego produktu zmniejsza się o odpowiednia ilość. Lecz gdy np użytkownik wyloguje się i nie kupi produktu to jego koszyk czyści się i dostępność powraca do poprzedniego stanu.Lecz jeżeli się nie wyloguje to cron po 30 minutowej nieaktywności wyczyści jego koszyk. Problem polega na tym ze przy tym rozwiązaniu użytkownik niezalogowany nie może nic dodawać do koszyka oraz nie mogę stworzyć przechowalni. Chciałbym dowiedzieć się w jaki sposób rozwiązać ten problem żeby nie pokazywać komunikatów typu ktoś cie uprzedził.
Nie oczekuję gotowego kodu php, lecz proszę o wskazówki teoretyczne.

Z góry dziękuje za pomoc.
Go to the top of the page
+Quote Post
1010
post 2.06.2011, 23:26:07
Post #2





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


kiedy ktoś jest nie zalogowany to również odejmujesz produkt ze stanu, dodajesz do koszyka, którego zawartość przechowujesz w jakiejś sesji. Jakąś informację zapisujesz w bazie, że jest produkt gdzieś w koszyku. Po 30 minutach tak samo czyścisz i przywracasz do stanu normalnego.


--------------------
Go to the top of the page
+Quote Post
thek
post 3.06.2011, 00:18:30
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Tak naprawdę najlepszym rozwiązaniem byłoby informowanie na bieżąco o produktach z koszyka. Choćby co przeładowanie strony, by w razie czego dostarczyć informację, że produkt chwilowo już jest niedostępny osobom, które mają go jeszcze w koszyku, ale nie zakupiły.

Właściwie to już przy bardzo niskich zapasach magazynowych informowałbym użytkownika, że w każdej chwili może zabraknąć towaru i transakcja może nie dojść do finalizacji oraz udostępniłbym w takiej sytuacji coś w rodzaju "zatrzymaj dla mnie w koszyku" i dopiero to bym odejmował od stanu, tak by użytkownik miał pewność, iż do końca transakcji nie zdąży nikt mu ostatniej sztuki "podwędzić". Oczywiście własny session_handler, który by w czasie zniszczenia sesji "zwrócił" do magazynu "zaklepane" produkty - obowiązkowy. Ogólnie rzecz biorąc - musiałbyś mieć mechanizm rezerwowania danej pozycji koszyka jako pewniak gdy dany produkt zacznie się zbliżać do granicy wyczerpania. Lepiej poinformować usera, by sam na to uważał i produkt zaklepał, niż się miał rozczarować w trakcie finalizacji zakupu


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.06.2025 - 13:17