Witam. Zanim zacznę grzebać w kodzie prosiłbym o sugestię jak podejść do tematu. Chcę żeby użytkownik miał możliwość dodania danego produktu do koszyka tylko raz. Czyli dodajemy raz produkt, wracamy do zakupów i potem w momencie próby dodania ponownie tego samego produktu, lądujemy na stronie z koszykiem który nie powiększa nam ilości zamówienia produktu z danym ID a wyświetla komunikat (np "możesz kupić tylko jedną sztukę produktu"). Oczywiście w przypadku innego produktu użytkownik może go dodać do koszyka, ale przy próbie dodania kolejnej sztuki, również jest blokowany + komunikat.
Szukałem w dokumentacji, ale chyba nie ma możliwości ustawienia ograniczenia w konfiguracji?
Pytanie czy 1 raz na całe życie czy na 1 dzień? :) Ogólnie możesz wykorzystać sesje lub ciasteczka i np. przy złożeniu zamówienia wysyłać ciasteczko na z żywotnością 1 dzień. Ale trzeba mieć świadomość, że użytkownik może wyczyścić cookies w przeglądarce i znowu coś zamówi. Możesz też zapisać sobie IP tego klienta w bazie. (ale pójdzie do sąsiada i znowu zamówi ;) Opcje różne, stopień trudności też różny.
ok :), w takim razie wykorzystam ciastko z czasem ważności kilkudziesięciu dni (o ile się da) bo zależy mi żeby użytkownik nie miał możliwości przez dłuższy czas (chyba że skasuje ciastko). I potem w momencie dodawania produktu do koszyka będę sprawdzał czy jest zapisane na komputerze użytkownika. Tylko proszę mnie nakierować w której funkcji (dodawanie do koszyka) powinien znaleźć się warunek. Czy dobrze kojarzę że przy generateBasket() w pliku order.php?
Jak mówi dokumentacja: generateBasket() - funkcja powołuje zmienną przechowującą produkty dodane do koszyka Lepiej sprawdzać przed wywołaniem funkcji: saveBasket() - zapisuje koszyk z przesłanymi, zmienionymi ilościami produktów
Witam, Ale ja korzystam z wersji darmowej. Moze źle to określiłem: po dokonaniu zakupu liczba produktów na stanie w sklepie nie zmniejsza się. Powinna się zmniejszyć o zakupioną przez klienta ilość (1). Nie wiem z czego moze wynikać problem bo prawa zapisu do plików są 777.
w panelu administratora w opcjach produktu jest pole do wprowadzenia ilości produktu na stanie. Rozumiem że w przypadku wersji darmowej to pole to 'fake' bo i tak sklep nie zlicza ilości sprzedanych sztuk?