Work on the checkout process

The basket and the address collection still need to be done, but we'll need interfaces for that.