Prueba así:
Código PHP:
Ver original//si esta declarada la sesion carrito agrega los item nuevos
if (isset($_SESSION['carrito'])){ $mi_carrito=$_SESSION['carrito'];
$id=$_GET['id'];
$codigo = $_GET['codigo'];
$nombre=$_GET['nombre'];
$precio=$_GET['precio'];
$cantidad=$_GET['cantidad'];
$iva = $_GET['iva'];
$pos=-1;
//Buscamos el item en la variable de sesion
for($i=0;$i<count($mi_carrito);$i++){ if($id==$mi_carrito[$i]['id']){
$pos=$i;
}
}
//si lo encuentra actualiza la cantidad de articulos
if($pos<>-1){
$cuanto=$mi_carrito[$pos]['cantidad']+$cantidad;
$mi_carrito[$pos]=array('id'=>$id,'codigo'=>$codigo,'nombre'=>$nombre,'precio'=>$precio,'cantidad'=>$cuanto, 'iva'=>$iva); }else{
//si no lo agrega
$mi_carrito[]=array('id'=>$id,'codigo'=>$codigo,'nombre'=>$nombre,'precio'=>$precio,'cantidad'=>$cantidad,'iva'=>$iva); }
}
}
Es un codigo que hice para un carro hace un tiempo, adaptalo y ve si te sirve, este lo que hace es recibir mediante ajax los datos del producto, verifica si este ya esta en la variable sde sesion y suma las cantidades si no, lo agrega como nuevo