Non è che per caso unset($SESSION['shop'][$id]); si scrive unset($_SESSION['shop'][$id]); (si noti underscore)
Regole del Forum