Jump to content

Order validation stopped working


Recommended Posts

My shop (Prestashop 1.7.8.7) is not finalizing orders any more for about 48 hours now. Clicking on 'order' causes a timeout. Payment modules are updated, payment works.

On the weekend I checked an extension called 'Merge Orders' to merge two orders into one. I have customers making 3-4 orders sometimes - so merging would help. However, right after installing this tool I realized that the shop does not finalizie orders any more. Clicking on 'order' ends in request timeout. As the paypal payment still works and the payment is done before, I receive these orders including list of articles, together with their paypal payment on paypal. But customers get a blank page in the end and their orders are not registered in Prestashop.

Since then I try to make the whole thing work again and I try to add the paypal orders in prestashop through the admin backend. But even in the backend the orders are not going through. I prolonged and even switched off timeout but it does not help. The process stucks. PHP Version is 7.3, by the way.

I reckon that merging these two orders caused an error in the database.
And if yes, how can I straighten this out?

Last entries in Error_log this morning:

[14-Feb-2023 03:13:57 Europe/Berlin] PHP Parse error:  syntax error, unexpected ':' in /home/lichterh/public_html/prestashop/modules/creativeelements/includes/widgets/shopping-cart.php on line 1440
[14-Feb-2023 03:14:23 Europe/Berlin] PHP Parse error:  syntax error, unexpected ':' in /home/lichterh/public_html/prestashop/modules/creativeelements/includes/widgets/shopping-cart.php on line 1440
[14-Feb-2023 06:08:22 Europe/Berlin] PHP Notice:  Undefined variable: category in /home/lichterh/public_html/prestashop/controllers/front/listing/CategoryController.php on line 250
[14-Feb-2023 06:08:22 Europe/Berlin] PHP Notice:  Trying to get property 'active' of non-object in /home/lichterh/public_html/prestashop/controllers/front/listing/CategoryController.php on line 250
[14-Feb-2023 06:52:25 Europe/Berlin] PHP Notice:  Undefined variable: category in /home/lichterh/public_html/prestashop/controllers/front/listing/CategoryController.php on line 250
[14-Feb-2023 06:52:25 Europe/Berlin] PHP Notice:  Trying to get property 'active' of non-object in /home/lichterh/public_html/prestashop/controllers/front/listing/CategoryController.php on line 250
[14-Feb-2023 07:05:57 Europe/Berlin] PHP Notice:  Undefined variable: category in /home/lichterh/public_html/prestashop/controllers/front/listing/CategoryController.php on line 250
[14-Feb-2023 07:05:57 Europe/Berlin] PHP Notice:  Trying to get property 'active' of non-object in /home/lichterh/public_html/prestashop/controllers/front/listing/CategoryController.php on line 250
[14-Feb-2023 07:07:32 Europe/Berlin] PHP Fatal error:  Uncaught Symfony\Component\Filesystem\Exception\IOException: Cannot rename "/home/lichterh/public_html/prestashop/var/cache/prod/translations/catalogue.de-DE.NXhscRe.phpua5Wcj" to "/home/lichterh/public_html/prestashop/var/cache/prod/translations/catalogue.de-DE.NXhscRe.php". in /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Filesystem/Filesystem.php:289
Stack trace:
#0 /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Filesystem/Filesystem.php(693): Symfony\Component\Filesystem\Filesystem->rename('/home/lichterh/...', '/home/lichterh/...', true)
#1 /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Config/ResourceCheckerConfigCache.php(124): Symfony\Component\Filesystem\Filesystem->dumpFile('/home/lichterh/...', '<?php\n\nuse Symf...')
#2 /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Translation/Translator.php(334): Symfony\Component\Config\ResourceCheckerConfigCache->writ in /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Filesystem/Filesystem.php on line 289
[14-Feb-2023 07:09:50 Europe/Berlin] PHP Deprecated:  Non-static method Promokit\Module\Pkfavorites\Main\FavoriteProduct::getProductsForTemplate() should not be called statically in /home/lichterh/public_html/prestashop/modules/pkamp/controllers/front/favoritesAccount.php on line 54
[14-Feb-2023 07:10:25 Europe/Berlin] PHP Fatal error:  Uncaught Symfony\Component\Filesystem\Exception\IOException: Cannot rename "/home/lichterh/public_html/prestashop/var/cache/prod/translations/catalogue.de-DE.NXhscRe.php.metaxVkRgK" to "/home/lichterh/public_html/prestashop/var/cache/prod/translations/catalogue.de-DE.NXhscRe.php.meta". in /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Filesystem/Filesystem.php:289
Stack trace:
#0 /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Filesystem/Filesystem.php(693): Symfony\Component\Filesystem\Filesystem->rename('/home/lichterh/...', '/home/lichterh/...', true)
#1 /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Config/ResourceCheckerConfigCache.php(132): Symfony\Component\Filesystem\Filesystem->dumpFile('/home/lichterh/...', 'a:0:{}')
#2 /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Translation/Translator.php(334): Symfony\Component\Config\ResourceCheckerConfigCache->write('< in /home/lichterh/public_html/prestashop/vendor/symfony/symfony/src/Symfony/Component/Filesystem/Filesystem.php on line 289
[14-Feb-2023 09:15:10 Europe/Berlin] PHP Warning:  Invalid argument supplied for foreach() in /home/lichterh/public_html/prestashop/modules/pscartabandonmentpro/classes/CartReminderCustomerInfo.php on line 136
 

That's the entries of the error log of the last 5 hours. Line 1440 in shopping-cart.php looks like this:

$cover = isset($product['default_image']) ? $product['default_image'] : $product['cover'] ?: Helper::getNoImage();

Unecpected ':'? Which one? 

I know that the order which was merged was number 100010724 - it was merged into 100010716. I see in phpmyadmin that the line of 100010724 is missing in ps_orders. Shall I manually bring it back through phpmyadmin or check/adjust any relations?

Would very much appreciate your help. If you are a prestashop developer familiar with these problems and have time to sort this out with me, I am happy to pay you, just pm me. 
 

Update: I corrected line 1440 of shopping-cart.php with the help of chatgpt. His/her answer was:

The syntax error in the line is likely due to the use of the null coalescing operator (?:) in combination with the ternary operator (? :). This can cause unexpected behavior in certain versions of PHP. To avoid this, you can use parentheses to group the ternary operator, like this:

php
$cover = isset($product['default_image']) ? $product['default_image'] : ($product['cover'] ?: Helper::getNoImage());
This will ensure that the null coalescing operator is only evaluated if $product['cover'] is not set.

Update: Just tried to create a new order to provoke additional lines in error log. Still same timeout behaviour, no order was created. Additional lines in error log are:
[14-Feb-2023 13:05:26 Europe/Berlin] PHP Notice:  Undefined variable: category in /home/lichterh/public_html/prestashop/controllers/front/listing/CategoryController.php on line 250
[14-Feb-2023 13:05:26 Europe/Berlin] PHP Notice:  Trying to get property 'active' of non-object in /home/lichterh/public_html/prestashop/controllers/front/listing/CategoryController.php on line 250

Btw Debug mode does not help. If I create an order in debug mode, the reaction is the same blank timeout screen, no debug error screen with details. 
 

 

Link to comment
Share on other sites

Thank you for taking care. I switched back to PHP 7.4 but it did not make a difference. Order ends (after appr 60 seconds) in request timeout. 

Two new entries in error log:
[14-Feb-2023 14:18:39 Europe/Berlin] PHP Notice:  Trying to access array offset on value of type bool in /home/lichterh/public_html/prestashop/modules/pkelements/classes/WidgetPkproductViewed.php on line 155
[14-Feb-2023 14:30:43 Europe/Berlin] PHP Notice:  Trying to access array offset on value of type bool in /home/lichterh/public_html/prestashop/modules/pkelements/classes/WidgetPkproductViewed.php on line 155

Debug mode doesn't help. If I click order in debug mode there is no error screen with details. After clicking 'order' the spinner goes on and on and on - because I switched off timeout by htaccess. But the order is not being finalized. I the satus line it says waiting for paypal.com - although I chose bank transfer payment. 

Do you think it can be helpful if I upgrade from 1.7.8.7 to 1.7.8.8?

Edited by Musterheld (see edit history)
Link to comment
Share on other sites

  • 2 months later...

Sembra che l'installazione dell'estensione "Unisci ordini" abbia causato problemi nel processo di finalizzazione degli ordini nel tuo negozio PrestaShop. Per identificare e risolvere il problema, ti suggerisco di seguire questi passaggi:

Disabilita il modulo "Unisci ordini" e verifica se il problema persiste. Se il problema scompare dopo aver disabilitato il modulo, è probabile che il modulo sia la causa del problema.

Controlla i log degli errori di PrestaShop e PHP per vedere se ci sono messaggi di errore specifici correlati all'estensione "Unisci ordini" o al processo di finalizzazione dell'ordine. I log degli errori possono fornire informazioni preziose per identificare la causa del problema.

Se il problema persiste anche dopo aver disabilitato il modulo, è possibile che l'installazione del modulo abbia causato cambiamenti nel database che stanno influenzando il processo di finalizzazione dell'ordine. In tal caso, ti consiglio di eseguire un backup del tuo database attuale e poi ripristinare il database a una versione precedente all'installazione del modulo "Unisci ordini". Verifica se il problema persiste dopo aver ripristinato il database.

Se il problema non viene risolto ripristinando il database, potrebbe essere necessario esaminare il codice del tuo tema o dei moduli aggiuntivi per vedere se ci sono conflitti o problemi che impediscono il completamento degli ordini.

 

 

Dai messaggi di errore che hai condiviso, sembra che ci siano diversi problemi nel tuo sito PrestaShop. Ti fornirò una breve spiegazione per ciascuno di essi:

Errore di sintassi, imprevisto ':' Il tuo file "shopping-cart.php" presenta un errore di sintassi alla linea 1440. Potrebbe esserci un ":" non atteso o mancante in quel punto del codice. Dovresti controllare il codice alla linea 1440 e correggere l'errore di sintassi.

Variabile non definita: categoria Nel file "CategoryController.php" alla riga 250, viene utilizzata una variabile chiamata "categoria" che non è stata definita. Per risolvere questo problema, assicurati di aver definito la variabile "categoria" prima di utilizzarla.

Tentativo di ottenere la proprietà 'attiva' di non oggetto Questo errore indica che stai cercando di accedere alla proprietà "attiva" di un oggetto che non esiste. Dovresti verificare il codice nel file "CategoryController.php" alla riga 250 e assicurarti che l'oggetto a cui stai cercando di accedere sia correttamente definito e inizializzato.

PHP Fatal error: Uncaught Symfony\Component\Filesystem\Exception\IOException Questo errore indica che ci sono problemi nel rinominare alcuni file nella cartella "var/cache/prod/translations". Controlla i permessi delle cartelle e dei file per assicurarti che l'applicazione abbia i permessi necessari per modificare i file. Inoltre, assicurati che i file menzionati nel messaggio di errore esistano realmente.

PHP Deprecato: metodo non statico... non dovrebbe essere chiamato staticamente In "favoritesAccount.php" alla riga 54, stai chiamando il metodo "getProductsForTemplate()" in modo statico, mentre il metodo è definito come non statico. Per risolvere questo problema, devi creare un'istanza della classe "FavoriteProduct" e chiamare il metodo "getProductsForTemplate()" su quell'istanza.

Avviso PHP: Argomento non valido fornito per foreach() In "CartReminderCustomerInfo.php" alla riga 136, il codice sta cercando di eseguire un ciclo foreach su un'entità che non è un array o un oggetto iterabile. Controlla la variabile utilizzata nel ciclo foreach e assicurati che sia correttamente inizializzata come un array o un oggetto iterabile.

Ti consiglio di esaminare il tuo codice e risolvere questi problemi uno alla volta. Dopo averli risolti, il tuo sito PrestaShop dovrebbe funzionare correttamente.

 

 

Fammi sapere se posso aiutarti in privato [email protected]

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...