Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem dot. dostępności produktów w sklepie
milmen
post 27.05.2010, 11:38:14
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.06.2009

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


Witam.
Ten temat to w zasadzie prośba o poradę dot. modyfikacji dostępności sztuk produktu w sklepie internetowym. Nie znalazłem nigdzie na forum wątku dotyczącego mojego problemu ani lepszego miejsca na zadanie pytania.
Mianowicie jestem w trakcie pisania sklepu internetowego. W tabeli z produktami przechowuję również liczbę dostępnych towarów w magazynie. Gdy klient klika w ikonke koszyka przy danym produkcie, liczba sztuk tego produktu powinna się automatycznie zmniejszyć jako że w tym samym czasie również inne osoby mogą dodać ten produkt do koszyka i skrypt powinien wiedzieć ile sztuk produktu w tym momencie jest dostępnych. Tak naprawdę nie wiemy, czy klient nie zrezygnuje z zakupów (wtedy dostępność sztuk powinniśmy zwiększyć o liczbę sztuk pobranych przez klienta do koszyka).
Jak macie to rozwiązane? Dodatkowa tymczasowa tabela z id produktu i ilością sztuk, która jest na bieżąco modyfikowana i przy realizacji zamówienia głowna tabela produktów jest dopiero aktualizowana (a dokładnie pole z liczbą dostępnych sztuk)? Właściwie klient może w każdej chwili zamknąć okno przeglądarki i nie wiemy co dalej?
Proszę, naprowadźcie mnie na dobre rozwiązanie, nie chciałbym się później obudzić z ręką w nocniku smile.gif

Pozdr.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
phpion
post 27.05.2010, 11:41:14
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Ilość dostępnych produktów zmniejszaj dopiero w momencie złożenia zamówienia przez klienta. Musisz też przy składaniu zamówienia postawić jakiś walidator, który sprawdzi, czy towar który klient zamawia jest jeszcze na stanie. Nie możesz tego sprawdzać tylko w momencie dodawania produktu do koszyka, bo w międzyczasie (pomiędzy dodaniem, a złożeniem zamówienia) inny klient może złożyć zamówienie, które wyczerpie limit produktów na stanie.
Go to the top of the page
+Quote Post
milmen
post 27.05.2010, 11:56:17
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 4.06.2009

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


Dzięki za odpowiedź. Tak też na początku planowałem, z tym że...
Scenariusz: klient X wchodzi do sklepu, znajduje dany produkt, którego jest raptem 5 sztuk i do koszyka dodaj wszystkie 5 sztuk.
5 sekund później klient Y wybiera dokładnie ten sam produkt (widzi, że jest dostępny, bo klient X nie zdążył w 5 sekund złożyć jeszcze zamówienia) i powiedzmy do koszyka dodaje 3 sztuki. I w tym momencie trwa walka kto szybciej złoży zamówienie. Oczywiście na samym końcu sprawdzam jeszcze raz dostępność produktów i w przypadku, gdy klient Y złożył zamówienie szybciej niż klient X to klient X przy składaniu zamówienia powinien zostać poinformowany, że niestety ktoś go wyprzedził i zamiast 5 sztuk może nabyć tylko 2 sztuki? (bo Y kupił 3 przed nim). Jeśli tak generalnie funkcjonują sklepy to OK, ja nie mam z tym problemu i z chęcią tak to rozwiążę, chciałbym tylko poznać jeszcze czyjąś opinię w tym temacie.

Dzięki smile.gif
Go to the top of the page
+Quote Post
phpion
post 27.05.2010, 12:13:30
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Dokładnie tak jak napisałeś. Odnieś to do zwykłego sklepu. Wzięcie towaru z półki (włożenie do koszyka) i zasuwanie do kasy (złożenie zamówienia) wygląda nieco inaczej, bo druga osoba nie weźmie towaru z półki (bo poprzednia zapieprza z nim już do kasy). Ale przykład: mamy na półce 10 produktów, a 5 pierwszych sprzedanych sztuk tego towaru objętych jest promocją. Pierwszy kolo bierze 5 sztuk, drugi 3 i obaj zasuwają do kasy. W tym momencie nie ma znaczenia kto pierwszy wziął towar do ręki tylko kto pierwszy go kupi. Jeśli ten z 5 sztukami to drugi nie dostanie rabatu (limit wyczerpany). Jeśli ten z 3 sztukami to ten z 5 sztukami dostanie rabat na 2 spośród posiadanych 5 sztuk.
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: 18.07.2025 - 13:52