Checkout works

Definitely some bugs with it, especially if there is a duplicate item in
the database.