Che sudata ragazzi !!! Ho risolto, si tratta di un bug di virtuemart.
Per apportare la correzione dovete editare il file In administrator/components/com_virtuemart/classes/ps_session.php
Per far funzionare in maniera corretta il tutto bisogna quindi intervenire nella classe ps_session in particolare nella funzione getShopItemid che originalmente recita cosi' :
function getShopItemid() {
if( empty( $_REQUEST['shopItemid'] )) {
$db = new ps_DB;
$db->query( "SELECT id FROM #__menu WHERE link='index.php?option=com_virtuemart' AND published=1");
if( $db->next_record() ) {
$_REQUEST['shopItemid'] = $db->f("id");
}
else {
if( !empty( $_REQUEST['Itemid'] )) {
$_REQUEST['shopItemid'] = intval( $_REQUEST['Itemid'] );
}
else {
$_REQUEST['shopItemid'] = 1;
}
}
}
return intval($_REQUEST['shopItemid']);
}
mettendo queste linee dopo la dichiarazione della funzione :
// if there is no shopItemId i do a check if there is an ItemID
if( empty( $_REQUEST['shopItemid'] )) {
if( !empty( $_REQUEST['Itemid'] )) {
$_REQUEST['shopItemid'] = $_REQUEST['Itemid'];
}
}
in pratica in mancanza dello ShopItemId, prima va a vedere se e' stato passato un ItemId e solo se manca anche questo va a prendere come ultima spiaggia la prima voce di menu' che fa riferimento a VM.
La soluzione non è mia ma l'ho trovato girovagando quà e la per la rete.
Ciao. Giuseppe.