dodanie produktu do koszyka tylko raz

sparkdesign

Avatar: sparkdesign

2014-11-12 18:09

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?

Pozdrawiam,

» Quick.Cart v6.x

Rafał

selekcjoner

Avatar: selekcjoner

2014-11-12 18:13

http://opensolution.org/Quick.Cart/docs/?id=pl-requirements#5

$config['max_product_quantity'] - maksymalna ilość danego produktu, który można zamówić w jednym zamówieniu

sparkdesign

Avatar: sparkdesign

2014-11-13 10:13

Dziękuję pięknie!

A czy jest możliwość ograniczenia użytkownikowi liczby zamówień do 1? Tak żeby skompletował koszyk, zamówił i potem już nie miał możliwości drugi raz?

Pozdrawiam,
Rafał

Rafał

selekcjoner

Avatar: selekcjoner

2014-11-13 14:44

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.

sparkdesign

Avatar: sparkdesign

2014-11-13 14:58

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?

Pozdrawiam,
Rafał

Rafał

selekcjoner

Avatar: selekcjoner

2014-11-13 15:19

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

Więcej:
http://opensolution.org/Quick.Cart/docs/?id=pl-functions

selekcjoner

Avatar: selekcjoner

2014-11-13 15:22

Że tak wtrącę jeszcze 1 zdanie - sprawdzaj czy jest ciastko i ukryj przycisk "dodaj do koszyka" - będzie bardziej fachowo :)

sparkdesign

Avatar: sparkdesign

2014-11-14 11:42

Dziękuję za pomocne uwagi.

Mam jeszcze pytanko: co może być problemem że po złożeniu zamówienia ilość sztuk produktu na magazynie nie zmniejsza się?

Pozdrawiam,

Rafał

selekcjoner

Avatar: selekcjoner

2014-11-14 14:53

sparkdesign - to forum dotyczy wersji darmowej.
Skoro masz problem ze stanami magazynowymi - skorzystaj ze wsparcia OpenSolution

sparkdesign

Avatar: sparkdesign

2014-11-14 14:59

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.

Pozdrawiam,

Rafał

selekcjoner

Avatar: selekcjoner

2014-11-14 15:08

A to od kiedy w wersji darmowej są stany magazynowe?

sparkdesign

Avatar: sparkdesign

2014-11-14 16:07

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?

szkoda...

selekcjoner

Avatar: selekcjoner

2014-11-14 16:46

Jestem zaskoczony - jak nazywa się to pole u Ciebie? W jakiej zakładce dokładnie?

sparkdesign

Avatar: sparkdesign

2014-11-14 17:16

ok, błędnie zinterpretowałem pole "dostępność produktu". Moja wina :)

Pozdrawiam,

Rafał

Do góry
o nas | kontakt