Jump to content
  • 0

Błd 500 przy potwierdzeniu zamówienia


Bonek092

Question

Witam serdecznie,

Nie znalazłem nigdzie rozwiązania dotyczącego mojego problemu (przeszukiwałem forum i internet ale tematy i rozwiązania związane z tym błędem nie pasowały do mojego problemu.

W załączniku wstawiam screen z logów PrestaShop

Sytuacja wygląda następująco:

Po przejściu przez proces zamówienia i wybraniu sposobu dostawy klient przy kliknięciu w potwierdzenie zamówienia dostaje błąd 500.

Różnica miedzy moim problemem a reszta problemów z HTTP 500 podczas potwierdzenia zamówienia jest taka że, już podczas przechodzenia przez proces zamówienia pojawiają się błędy typu:

  • część przewoźników z automatu dodaje darmowa wysyłkę mimo że w Backoffice wszystko ustawione jest jak trzeba
  • podczas edycji przewoźników, mimo tego że poprzednie zakresy wagi działały prawidłowo, teraz nie chcą się zatwierdzić (nawet po usunięciu i ponownym wprowadzeniu tego samego przewoźnika z tymi samymi parametrami,
  • nie działa realizacja zamówienia dla klienta w BackOffice,

 

Co zrobiłem do tej pory aby osunąć powyższy problem:

  • Przeinstalowałem moduły COD, Bankwire oraz ShipToPay
  • Przywracałem kopie zapasowe sklepu z przed kilku dni wstecz (baza SQL, pliki na serwerze),
  • Kontaktowałem się z usługodawca hostingu na którym umieszczona jest strona (wina nie leży po ich stronie)
  • Próbowałem dodać od nowa przewoźników z takimi samymi ustawieniami (bezskutecznie),
  • Sprawdziłem statusy zamówień - wszystko jest na swoim miejscu, żaden status nie został usunięty przypadkowo,
  • Nie aktualizowałem silnika sklepu - sklep nie był aktualizowany przez 1-Click-Upgrade (moduł niezainstalowany), automatyczna aktualizacja w panelu serwera wyłączona

 

Nie wiem co może być nie tak, jeszcze wczoraj klienci robili normalne zamówienia a w dniu dzisiejszym już nie.

Od około tygodnia nie były wprowadzone żadne zmiany - brak zmian w Backoffice, brak zmian w plikach na serwerze.

Prosiłbym o szybka pomoc.

Pozdrawiam serdecznie.

error500.jpg

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0
16 hours ago, endriu107 said:

Wartości w kolumnach delimeter powinny być zapisywane z znakiem kropki "." a nie z przecinkiem "," więc sprawdź w zakresach przewoźników czy masz kropki czy przecinki.

 

Próbowałem zmieniać i wstawiać kropki zamiast przecinków do aktualnych przewoźników, jak i stworzyć nowego przewoźnika i ustawić takie same zakresy tylko z kropkami jednak to nie pomogło. Co robić dalej ?

Link to comment
Share on other sites

  • 0

Zauważyłem coś jeszcze. Jeśli wpiszę wartość 30,25 w wyszukiwaniu produktów (pole cena podstawowa) to BackOffice wyrzuca mi błąd:

Złe zapytanie SQL
Something is wrong in your syntax obok '25 ORDER BY a.`id_product` ASC LIMIT 0, 50' w linii 14

I przez to muszę przywracać sklep z kopi zapasowej ponieważ po odświeżeniu strony błąd pozostaje.

Po wpisaniu 30.99 dostaje równiez błąd:

Złe zapytanie SQL
Something is wrong in your syntax obok '99 ORDER BY a.`id_product` ASC LIMIT 0, 50' w linii 14

Link to comment
Share on other sites

  • 0
On 5.10.2018 at 7:41 PM, endriu107 said:

Zobacz do tabeli ps_range_price być może są tam jakieś błędy, zdublowane wiersze etc.

 

W taki sposób wygląda tabela ps_range_price. Nie widzę tam żadnych błędów odnośnie przecinków itp.

ps_range_price.png

Link to comment
Share on other sites

  • 0

Usunąłem wszystkich przewoźników, wszystkie dane z tabeli ps_carrier oraz ps_range_price, wyczyściłem cache i przy próbie wprowadzenia nowego przewoźnika (zakresy ustawiam za pomocą kropek) wyskakuje mi błąd: "Wystąpił błąd podczas zapisywania zakresów przewoźnika."

//edit:

Próbowałem także usunąć tabelę ps_range_price i stworzyć ją na nowo jednak i to nie pomogło:

CREATE TABLE `ps_range_price` (
	`id_range_price` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
	`id_carrier` INT(10) UNSIGNED NOT NULL,
	`delimiter1` DECIMAL(20,6) NOT NULL,
	`delimiter2` DECIMAL(20,6) NOT NULL,
	PRIMARY KEY (`id_range_price`),
	UNIQUE INDEX `id_carrier` (`id_carrier`, `delimiter1`, `delimiter2`) 
Edited by Bonek092 (see edit history)
Link to comment
Share on other sites

  • 0

Nie było. Nigdy nic nie aktuzalizowałem jeśli chodzi o SQL. Silnik bazy to InnoDB i nic nigdy nie było zmieniane. Tak samo jesli chodzi o zmianę wersji PHP. Tak mogę w innych miejscach sklepu zapisywać zmiany, usuwać moduły itp.

Dostałem jeszcze taką odpowiedź na anglojęzycznym forum:

Quote

Jak dla mnie jesteś na złej drodze. Powinieneś przywrócić te tabele z kopii zapasowej lub nowej instalacji. Nie są one winne temu problemowi.
Wartość "30,25" została stworzona w funkcji . GetDeliveryPriceByPrice () w pliku classes/carrier.php w linii "-> where ((float) $ orderTotal. '> = R.`delimiter1')".
Więc w jakiś sposób float () dostarczył przecinek zamiast kropki. Może to być ustawienie PHP. Możesz go wypróbować poprzez program Hello World !

 

Stworzyłem więc plik test.php z kodem

<?php
echo str_replace(",",".",",,,,,,,,");
?>

i wrzuciłem go na serwer aby sprawdzić czy przecinki zamieniane są prawidłowo na kropki. I chyba wygląda na to że wszystko jest w porządku http://comiesieczni.pl/test.php

Link to comment
Share on other sites

  • 0

Problem został rozwiązany. Mogłem od razu zacząć od tego kroku. Wystarczyło wyłączyć wszystkie niestandardowe moduły żeby przewoźnicy zaczęli działać prawidłowo. Wtedy zacząłem powoli diagnozować moduł po po module zęby sprawdzić który z tych niestandardowych powoduje problem. Padło na moduł bloga zakupiony z Presta Addons. Po przeinstalowaniu modułu i przywróceniu backupu artykułów wszystko wróciło do normy. Dziękuje za wyczerpujące odpowiedzi i za poświęcony czas !

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...