Jump to content

Invalid $number parameter: "" cannot be interpreted as a number


mathieus

Recommended Posts

Hello guys,

I'm looking for help with a problem that I can't solve.

PS 1.7.8.5
Multistore with 4 active shops - common theme for all shops
PHP 7.4.30

For some stores only (2 out of 4) I have this error when creating some orders (say 1 out of about 20):

[11-Jul-2022 15:06:07 Europe/Paris] PHP Fatal error:  Uncaught InvalidArgumentException: "" cannot be interpreted as a number in /datas/www/mywebsite.com/www/vendor/prestashop/decimal/src/Builder.php:49
Stack trace:
#0 /datas/www/mywebsite.com/www/vendor/prestashop/decimal/src/DecimalNumber.php(73): PrestaShop\Decimal\Builder::parseNumber()
#1 /datas/www/mywebsite.com/www/src/Core/Localization/Number/Formatter.php(147): PrestaShop\Decimal\DecimalNumber->__construct()
#2 /datas/www/mywebsite.com/www/src/Core/Localization/Number/Formatter.php(106): PrestaShop\PrestaShop\Core\Localization\Number\Formatter->prepareNumber()
#3 /datas/www/mywebsite.com/www/src/Core/Localization/Locale.php(154): PrestaShop\PrestaShop\Core\Localization\Number\Formatter->format()
#4 /datas/www/mywebsite.com/www/classes/PaymentModule.php(443): PrestaShop\PrestaShop\Core\Localization\Locale->formatPrice()
#5 /datas/www/mywebsite.com/www/modules/cmcicpaiement/controllers/front/validation.php(165): PaymentModuleCore->validateOrder()
#6  in /datas/www/mywebsite.com/www/src/Core/Localization/Number/Formatter.php on line 108

The result is that
- The payment is received in the bank (even if the bank's return interface displays a 500 error, see access.log:

xxx.xxx.xx.xxx - - [02/Jun/2022:00:06:28 + 0200] "POST /fr/module/cmcicpaiement/validation HTTP/1.1" 500 4849 "-" "Monetico HttpClient")

- The order is created but assigned to the wrong store (systematically to the default store of the multistore, ID1, whereas it was placed on the store ID7)
- By checking the ps_order_details table, the entries are attributed to the correct shop (ID7)
- The order has no status

In /classes/PaymentModule.php I passed the DEBUG_MODE to true and I can see that the processing does not seem to go through all the steps of the order validation, the last debug of a faulty order is the following : PaymentModule::validateOrder - Message is about to be added

I have seen several similar cases but without conclusive solutions/analysis in my case.

If anyone has an idea / suggestion I'm a taker because I've exhausted all my leads!

Thank you in advance for your help, have a nice day,

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