Polskie wsparcie PrestaShop
PrestaShop => Błędy => Wątek zaczęty przez: BlackPig w Lipiec 01, 2010, 04:46:56 pm
-
Właśnie dostałem informację od jednego z klientów, o możliwości zakupu produktów, których nie ma na magazynie. Wygląda to tak:
1. Loguję się na 2 konta,
2. na jednym koncie dodaję do koszyka produkt, którego powiedzmy jest tylko jedna sztuka,
3. na drugim w międzyczasie wykupuję ten produkt
Jeżeli na pierwszym koncie byłem w jednym z kroków koszyka to wszystko OK, kliknę dalej i powie mi że już nie ma tego produktu, ALE jeżeli doszedłem już do kroku wybór płatności, lub wybrałem sposób płatności i mam tylko przycisk "potwierdź zamówienie" TO NORMALNIE DOKOŃCZĘ ZAKUP.
Na pewno dotyczy to modułu: Płatność przy odbiorze v0.3 - kolejne będę sprawdzał za moment.
Rozwiązaniem jakie na szybko mi przyszło do głowy jest modyfikacja pliku: modules/cashondelivery/validation.php
Dodanie na początku warunku:
if (!$cart->checkQuantities()){
header("location:/order.php");
}else{
//instrukcje, które są w pliku
}
Należy to pewnie zrobić we wszystkich modułach płatności, jeżeli już tego nie ma, co zamierzam zaraz sprawdzić.
To w sumie w niektórych przypadkach może być dość poważny problem - moze jakieś inne propozycje itp??
-
Błąd będzie załatany w wersji 1.3.2 Prestashop.
Takie błędy związanie bezpośrednio z oprogramowaniem lepiej zgłaszać w BugTrackerze na stronie www.prestashop.com
-
Jasne, na przyszłość będę zgłaszał również tam, niemniej dyskusja na temat jego rozwiązania może być przydatna w sytuacji, kiedy ktoś z jakichś powodów nie chce robić updatu itd...
Zauważcie że największy problem jest z modułem platnosci.pl - tam klient jest odsyłany do systemu płatności i validation.php ściąga produkty (zatwierdza zamówienie) dopiero po otrzymaniu płatności. Czyli o tym kto kupi produkt może decydować szybkość przepisywania numeru karty kredytowej, albo czas odpowiedzi platnosci.pl. Ja to zmodyfikowałem w taki sposób, że już po wybraniu platnosci.pl dokładam zamówienie ze statusem "nowe" i oczywiścei wywaliłem "powrót do innych sposobów". Trochę drastyczna metoda, ale inaczej kolejność jest taka, że klient najpierw płaci, a potem może sie okazać, ze nie było już za co ;)