Polskie wsparcie PrestaShop
PrestaShop => PrestaShop 1.6 => Wątek zaczęty przez: bonek04pl w Październik 04, 2018, 02:11:25 pm
-
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.
-
Masz jakiś override na plikach zamówienia ? Jakiś moduł ?
-
Nie, nic w override nie było zapisywane / nadpisywane. Folder z modułami jest pusty.
-
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
-
Wgraj jeszcze raz pliki admina sklepu z oryginalnej kopii. Funkcja js nie zamienia Ci , na .
Dodatkowo na jakim silniku bazy pracujesz ?
-
Wgrałem pliki z czystej instalacji PrestaShop 1.6.1.18 (takiej jak domyslna wersja sklepu). Jednak pomogło to tylko w wypadku wprowadzania nowych przewoźników. Błąd podczas finalizacji dalej występuje i przewoźnicy dalej nie działają jak trzeba. Silnik na jakim pracuje baza danych MySQL to InnoDB.
-
Silnik bazy danych jest zgodny jest zgodny. Czy w konsoli są jakieś błędy, czy włączyłeś tryb debugowania ?
-
Jesli chodzi o debugowanie w Prescie to w pierwszym poście jest załącznik (zdjęcie) i tylko tyle mi wyskoczyło. W Apache odnośnie błędów nie ma nic co w sumie mnie trochę dziwi. Mogę wysłać tylko (załącznik) log użytkowania apache. Dowiedziałem się także że w tabeli ps_range_price znajdują się wartości "delimiter1" i "delimiter2" które wyświetlane są w błędzie z pierwszego postu (załącznik). Jednak nie widzę tam niczego "dziwnego". Dodaje screena w załączniku.
-
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."
-
tutaj masz kod create dla tej tabeli. Usuń ja i wykonaj to:
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`)
Jeśli tabela jest uszkodzona to może pomóc
-
Niestety problem nadal występuje. Zrobiłem tak jak pisałeś. Usunąłem starą tabelę, wykonałem zapytanie SQL, tabela się stworzyła jednak nic to nie zmieniło :/
-
Dostałem jeszcze taką odpowiedź od innej osoby:
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 !
Lecz nie jestem na tyle zaawansowany aby to sprawdzić...
-
<?php
echo str_replace(",",".",",,,,,,,,");
?>
zapisujesz jako test.php i uruchamiasz w oknie przeglądarki
jeśli zamieni na kropki jest ok
-
http://comiesieczni.pl/test.php
Z tego co widzę to funkcja zamienia prawidłowo przecinki na kropki... Powoli zaczynam rozkładać ręce :/
-
Odinstaluj Ship2pay
-
ShipToPay v 2.1 wyczyszczony i odinstalowany. Próbowałem przetestować dodawanie nowego przewoźnika ale błąd z zakresami nadal ten sam.
-
a cache wyczyszczony ? Ewidentnie jakiś modul ma nadpisanie eliminujące zamianę przecinka na kropkę. Korzystasz z podobnych modułów jak Ship2pay np. shopgate etc.
-
Cache czyściłem juz wcześniej zaraz po usunięciu wszystkich modułów związanych z wysyłką (COD, Dotpay, ShipToPay, Przelew bankowy), usunięciu wszytskich przewoźników. Nie oprócz ShipToPay nie korzystam z żadnego innego modułu który w jakis sposób może zarządzać wysyłką, bądź przewoźnikami.
-
W takim razie zdalnie dalej nie pomogę niestety.
-
W takim razie zdalnie dalej nie pomogę niestety.
Pomoc odpłatna wchodzi w grę ?
-
Prowadzę firmę więc zapraszam do kontaktu
-
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 !