Shopping Cart (Revised More)

In reality, I think you'd probably end up with many more cases for coupons, they're weirdly hard to get right.