eCommerce enhancements

I'm thinking that manual testing (and unit testing) is definitely needed to really verify this implementation.