Custom Upsell After offers instead of built in pages when using the REST Checkout API
Overview
In general its probably easier to use the built in upsell after offer pages, but in cases where you prefer to display your own custom upsell after offer pages, perform the following:
Steps
On the checkout page, instead of ending the /rest/cart/checkout, do a call to validate, and then setFinalizeAfter. This will ensure that the transaction takes place within the time period you specify even if the customer abandons the session. When setFinalizeAfter returns, change the page location to your custom upsell gauntlet URL.
On each upsell page, you can continue to modify the cart contents freely. Load the cart using the cart id cookie, and add product as the customers desires.
At any point that you're done, just call the /rest/cart/checkout method then, and display the receipt page as you normally do when checkout returns with the redirect url.