Checkout flow refactor

Our oscar implementation sells only non-corporal products (=no shipping), customers buy only one product at a time (=no basket with several products in different quantities) and there's only one payment method (=no payment method selection or data input). Currently when a customer buys a product, she has to click "continue" a number of times for no good reason (for our use case) and some automatic redirects for shipping shipping method and address and the like are also involved. I'd like to streamline this so that the process is shorter:

1. product-detail: click "buy"
2. basket: can add voucher; click "pay"
3. redirect to payment provider

That'll probably involve separating the checkout steps from the checkout views. I'm working on that right now.
Hmm, did you have something in mind? `CheckoutFailed` captures exactly what I'm looking for here. I just need to know whether to start checkout again because it failed, or whether it was successful.