I guess my real problem is how to combine multiple views from different apps.
I would start with adding a new URL to the app.py of the checkout app and assigning a customized view - OneClickCheckOut to it.
For the view, some ideas I have in mind right now are 1. the view class imports Oscar classes relevant to the checkout process and create instances to simulate the add to cart to payment process. However, this solution seems fairly hard-coded and reinvented the wheels. Option 2, the view class inherits from classes involved in the checkout flow, but it will be a subclass of more than five classes and definitely looks ugly and cause issues later.
I think a better way to handle this is to define a checkout flow. In my case, add to cart, shipping and checkout preview can be simply skipped. The flow can simplified to click purchase - payment - redirect.
Any advice will be welcomed.