Cdodge/shopping cart rewrite

Maybe just a comment explaining that this is just generating the CSVs for the email and that the database modification has already happened in the calls to `item.purchase_item()`