move logging/error handling from shoppingcart view to model