shoppingCart enhanced to use a more complex cart data source