Is the shoppingCart class file included within the functions.php file? If not, its likely reconstruction an (sorry its been awhile here so I'm kinda fudging this one) PHP_INCOMPLETE_CLASS. I believe this actually shows as its name, so you could confirm if this is the case here:
$shopping_cart = get_shopping_cart();
That must show that its an object of type ShoppingCart. PHP does not allow you to cast, so if its failing its likely because it considers it incomplete and rolls it down to a stdclass object (which won't include the methods).
Check that out, if thats the case simply include the shoppingcart definition file where the unserialize for the session data is occurring.