Witam wszystkich,
Korzystam z wersji Prestashop-a 1.3 (nie aktualizowałem na razie, ponieważ zrobiłem sobie wiele przeróbek), ale wydaje mi się, że moduł, o którym piszę, w 1.4 działa tak samo.
Moduł Przelewy24 działa tak:
1. Klient wchodzi na moduł przy wyborze formy płatności,
2. Klika „Potwierdzam Zamówienie” i przechodzi do systemy Przelewy24.
3. Jeśli w tym momencie Klient przerwie i wyjdzie zupełnie z systemu Przelewy24, to zamówienie nie zostanie złożone.
4. Jeśli zapłaci w systemie przelewy24 i system przekaże dane, wtedy dopiero zostaje złożone w sklepie zamówienie.
Moim zdaniem jest to dość problematyczne rozwiązanie. Mam doświadczenie z innego sklepu, że część Klientów jest średnio rozgarnięta i np. w trakcie płatności przypominają sobie się, że nie mają pieniędzy na koncie i zmieniają wtedy zdanie (chcą zapłacić jednak przelewem zwykłym za kilka dni). Zwykle po prostu zamykają wtedy przeglądarkę. Obecny moduł powoduje, że okazuje się, że mimo, że klikali w „Potwierdzam zamówienie”, w takim wypadku
zamówienie nie zostało wcale złożone.Zmierzyłem się dlatego z próbą poprawki modułu.
Postanowiłem zrobić to tak:
- zamówienie zostaje złożone zaraz po kliknięciu w „Potwierdzam zamówienie”. Ma ono status „Błąd płatności”.
- następuje przekazanie odpowiednich informacji do systemu Przelewy24 i przekierowanie tam
- Przelewy24 informują, że została dokonana płatność i następuje wtedy aktualizacja statusu złożonego zamówienia
Niestety nie umiem przeskoczyć jednej rzeczy. Mianowicie zmiany statusu zamówienia po informacji od Przelewy24. Kod wygląda następująco.
// w $id_order jest numer danego zamówienia.
$newOrderStatusId = 3;
$history = new OrderHistory();
$history->id_order = $id_order;
$history->changeIdOrderState(intval($newOrderStatusId), intval($id_order));
Pytanie: dlaczego nie działa? Dlaczego nie zmienia się status zamówienia? Co robię źle?
Dla ułatwienia poniżej link do OrderHistory.php w której jest metoda changeIdOrderState:
http://codes-libres.org/apps/prestashop_1.3.7.0/nav.html?prestashop/classes/OrderHistory.php.source.html