Acabo de encontrar una solucion a este problema, lo que no se si sea la manera correcta, si alguien tiene una mejor idea por favor diganla.
En el fichero: components/com_virtuemart/controllers/user.php
Axprosimadamente en la linea 196
if($currentUser->guest==1){
$msg = (is_array($ret)) ? $ret['message'] : $ret;
$usersConfig = &JComponentHelper::getParams( 'com_users' );
$useractivation = $usersConfig->get( 'useractivation' );
if (is_array($ret) && $ret['success'] && !$useractivation) {
// Username and password must be passed in an array
$credentials = array('username' => $ret['user']->username,
'password' => $ret['user']->password_clear
);
$return = $mainframe->login($credentials);
}
}
He comentado y agregado las siguientes lines y deberia quedar asi:
if($currentUser->guest==1){
$currentUser->id=0;
$msg = (is_array($ret)) ? $ret['message'] : $ret;
$usersConfig = &JComponentHelper::getParams( 'com_users' );
$useractivation = $usersConfig->get( 'useractivation' );
if (is_array($ret) && $ret['success'] && !$useractivation) {
// Username and password must be passed in an array
$credentials = array('username' => $ret['user']->username,
'password' => $ret['user']->password_clear
);
//$return = $mainframe->login($credentials);
}
}