Shopping cart - 2nd submission.

Refer to @csain's comment above.