We are using an external payment plugin (CCIdeal) for the Netherlands. We are currently in the process of upgrading our site from Joomla 3 (with VM 4.0.14) to Joomla 4 (with VM 4.0.14). The Joomla 3 site is working like a charm with the payment plugin (plg_virtuemart3_ideal). The Joomla 4 site throws an error:
vmError: vmTable store insertObject #__virtuemart_orders Incorrect integer value: 'EUR' for column `tpnw`.`jos_virtuemart_orders`.`payment_currency_id` at row 1 INSERT INTO `jos_virtuemart_orders`
(`virtuemart_order_id`,`virtuemart_user_id`,`virtuemart_vendor_id`,`order_note`,`order_number`,`order_pass`,`order_create_invoice_pass`,`invoice_locked`,`customer_number`,`order_total`,`order_salesPrice`,`order_billTaxAmount`,`order_billTax`,`order_billDiscountAmount`,`order_discountAmount`,`order_subtotal`,`order_tax`,`order_shipment`,`order_shipment_tax`,`order_payment`,`order_payment_tax`,`coupon_discount`,`order_discount`,`order_currency`,`order_status`,`user_currency_id`,`user_currency_rate`,`user_shoppergroups`,`payment_currency_id`,`payment_currency_rate`,`virtuemart_paymentmethod_id`,`virtuemart_shipmentmethod_id`,`ip_address`,`order_language`,`STsameAsBT`,`paid`,`o_hash`,`created_on`,`created_by`,`locked_by`) VALUES
('0','705','1','','V4T80747','p_WhnsBqsK','qMVpcaJq','0','TE0efffc5','280.4538','186.78','48.6738','{
\"1\": {
\"virtuemart_calc_id\": 1,
\"calc_name\": \"BTW \",
\"calc_value\": 21,
\"result\": 48.6738
}
}','-54.52','-54.52','241.3','0','45','9.45','0','0','0','-54.52','47','P','47','1','2','EUR','1','1','7','xx','nl-NL','1','0','ddb0e925eef5130140d518de60ea750b','2023-04-21 12:55:41','705','0')
I can see that "EUR" isn't an integer value, but that's as far as I get debugging.
The same payment plugin with VM 4.0.12 and J4 works like expected.
Tested with PHP 7.4 and PHP 8.0.28.
Test with default VM Paypal plugin in sandbox mode workt as well.
What could be the cause here?
Solved by updating to 4.0.20