Prestashop – chyba 500 při objednávce
Tento problém je trochu podivný. Na webhostingu běží Prestahop 1.7.x, pokud při objednávce vyplním v objednávkovém formuláři údaje a projdu celý proces do konce, objednávka se dokončí bez chyby. Pokud však v místě objednávkové formuláře zavřu prohlížeč, opět otevřu (v košíku jsou produkty díky cookies), vyplním objednávkový formulář a odešlu, tak to hodí chybu 500. Nejpodivnější na tom je, že pokud nastavím DEBUG = TRUE, tak to celé funguje perfektně bez chyby. Nesetkal se s tím někdo? Děkuji.
5 Answers
Tak jsem na to přišel. Aktivoval jsem si dočasný error log, který chybu zachytil. Jednalo se o modul Mailchimpu, který jsem tedy odinstaloval a již to jde.
Got error 'PHP message: PHP Fatal error: Uncaught TypeError: Argument 3 passed to PrestaChamps\\MailchimpPro\\Hooks\\Action\\Customer\\AccountUpdate::run() must be an instance of Customer, null given, called in /www/modules/mailchimppro/mailchimppro.php on line 789 and defined in /www/modules/mailchimppro/src/PrestaChamps/MailchimpPro/Hooks/Action/Customer/AccountUpdate.php:57\\nStack trace:\\n#0 /www/modules/mailchimppro/mailchimppro.php(789): PrestaChamps\\MailchimpPro\\Hooks\\Action\\Customer\\AccountUpdate::run(Object(Context), Object(DrewM\\MailChimp\\MailChimp), NULL)\\n#1 /www/classes/Hook.php(970): Mailchimppro->hookActionCustomerAccountUpdate(Array)\\n#2 /www/classes/Hook.php(355): HookCore::coreCallHook(Object(Mailchimppro), 'hookactionCusto...', Array)\\n#3 /www/classes/Hook.php(907): HookCore::callHookOn(Object(Mailchimppro), 'act...\\n'AH01071: Got error 'PHP message: PHP Fatal error: Uncaught TypeError: Argument 3 passed to PrestaChamps\\MailchimpPro\\Hooks\\Action\\Customer\\AccountUpdate::run() must be an instance of Customer, null given, called in /www/modules/mailchimppro/mailchimppro.php on line 789 and defined in /www/modules/mailchimppro/src/PrestaChamps/MailchimpPro/Hooks/Action/Customer/AccountUpdate.php:57\\nStack trace:\\n#0 /www/modules/mailchimppro/mailchimppro.php(789): PrestaChamps\\MailchimpPro\\Hooks\\Action\\Customer\\AccountUpdate::run(Object(Context), Object(DrewM\\MailChimp\\MailChimp), NULL)\\n#1 /www/classes/Hook.php(970): Mailchimppro->hookActionCustomerAccountUpdate(Array)\\n#2 /www/classes/Hook.php(355): HookCore::coreCallHook(Object(Mailchimppro), 'hookactionCusto...', Array)\\n#3 /www/classes/Hook.php(907): HookCore::callHookOn(Object(Mailchimppro), 'act...\\n'
To se stává při nekompatibilní verzi PHP, pokud používáte PHP 7, zkuste snížit verzi na 5.6.
Děkuji za odpověď, PHP jsem přehodil na 5.6, ale stále to nefunguje.
Změny verze PHP se projeví do 30 minut, je potřeba před opětovným testováním počkat.
Stává se to se všemi platebními metodami nebo jen s nějakou konkrétní? V takovém případě zkuste přeinstalovat platební modul, se kterým je problém.
Dobrý den,
děkuji za rady. Při změně jsem počkal delší dobu (přes hodinu) a stejně. Někde jsem našel, že je i lepší v těchto případech vymazat adresář /var/cache/dev a /var/cache/prod, což mi vyřešilo jiný problém, ale tento ne. Bohužel na výběr dopravce a plateb se nedostanu, jedná se o objednávku v 5ti krocích a chyba nastává mezi 1. (osobní údaje) a 2. (adresa), viz. obr.. Když mám zboží v košíku poprvé tak 5ti kroky projdete a objednáte bez problému. Problém nastává, když vyplníte první krok (osobní údaje), dáte pokračovat, otevře se druhý krok a vy u druhého kroku zavřete okno prohlížeče. Poté ho znova otevřete, tak se zobrazí opět krok 1. již předvyplněný, dáte jen pokračovat a hned to hodí chybu 500. Od té doby si neobjednáte dokud nevymažete cookies nebo neotevřete anonymní okno (tím vlastně v obou případech přijdete o košík). Zkusím se zaměřit na objednávkový modul (je to výchozí Presty) a košík.