prueba asi:
Código PHP:
Ver original $id=$_GET['id'];
$codigo = $_GET['codigo'];
$nombre=$_GET['nombre'];
$mi_carrito[]=array('id'=>$id,'codigo'=>$codigo,'nombre'=>$nombre); }
//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'];
$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); }else{
//si no lo agrega
$mi_carrito[]=array('id'=>$id,'codigo'=>$codigo,'nombre'=>$nombre); }
}
}
//si no esta creada la sesion carrito la crea e y carga el articulo
if (isset($mi_carrito)) $_SESSION['carrito']=$mi_carrito;
ese codigo lo que hace es agregar items a la variable de carro y si la encuentra actualiza la cantidad si no agrega el item y si es el primer item, crea la variable