Вы может изменить функцию add() на странице контроллера тележки для ее достижения. Вы можете написать код примерно так
$cart = VirtueMartCart::getCart();
$prdata = $cart->cartProductsData;
$qty = 0;
foreach($prdata as $pdata)
{
$qty = $qty + $pdata['quantity'];
}
if ($cart) {
$virtuemart_product_ids = vRequest::getInt('virtuemart_product_id');
$error = false;
if($qty>=1)
{
$msg = vmText::_('you can't have more than one product in cart');
$type = 'warning';
}
else
{
$cart->add($virtuemart_product_ids,$error);
Используйте ту же логику в функции updatecart() на той же странице.
Если вы используете addtocart Fancypopup, используйте код в функции addJS вместо функции add().