usa una sesion
Código PHP:
<?
session_start();
$id = $_GET['id']; //id es el codigo de producto
$cant = $_POST['cantidad'];
if ($cant == 0 && $_SESSION['Carrito'][$id] == 0)
{
$cant =1;
$_SESSION['Carrito'][$id] += $cant;
}
elseif($cant > 0)
{
$_SESSION['Carrito'][$id] = $cant;
}
echo "<script>parent.location.href = 'lista.php';</script>";
?>
Esto te va a ayudar, Tenes que hacer que cargue cantidades segun el producto, yo aca uso el codigo de producto.
Para cancelar compra, reventas la sesion y para concretarla pasas los codigos, que deberias tener en una base de datos y la cantidad que la tenes en la sesion.
A mi me funciono bien, no se si hay metodos mejores.
Saludos