Order Processing Behavior
When does Upstroke charge user for primary order?
Upstroke charges buyer for primary order right away and presents the upsell offer. It does not wait for buyer to accept or reject upsell offers or complete the funnel.
We have built Upstroke in a way that under no circumstances you lose the initial sale.
If buyer accepts the upsell, he is charged offer amount. If he rejects , nothing happens. This process is repeated for all offers in the funnel.
How is Upstroke able to charge user with a single click?
Upstroke uses your gateway plugin to send a tokenization request. The gateway returns an surrogate values or algorithmically generated number called a "token". This token is stored in WooCommerce by your gateway plugin.
Upsell then creates a charge against that token if buyer accepts the offer.
Note: Upstroke does not store sensitive credit card information , it only triggers tokenization process provided by gateway plugin. The process is fully PCI compliant and is built right inside your gateway plugin.
What happens when the funnel is not fully completed?
Upstroke waits for an interval to funnel to complete (default 15 mins).
If user does not complete funnel with in this, it will forcefully end the funnel.
You can manage this time interval from Global Settings>Miscellaneous>Forcefully End Funnel
If the user closes the OTO 1 upsell page, then after certain time interval setting in UpStroke settings Here
Order status will switch from Primary Order Accepted to Pending / Processing / Completed depending on where the original order was supposed to go.
Can we merge the upsell order items with original order or create a separate order?
Absolutely! Based on your Funnel Settings you can manage this behavior:
1. You can merge the upsell order with primary order
Here is how the complete under the hood process :
While user is in the upsell funnel, the order status is moved into a custom order status.
It is an intermediary state when funnel is running. Once user completes the funnel or time of offer has expired, order status is automatically switched to successful order status.
The label of this custom order state can be managed from Global Settings> Order Statuses> Custom Order State
Note: This order state is not visible to your end user. No emails are sent to your customer. It is only used for internal switching to successfull order state.
Why it is needed?
There can be additional processes such as sending of data to external CRMs which can trigger when order is successful. By having an intermediate order state, we wait for upsell funnel to get complete. Once it is done order status automatically moves to successful order state. This method enables additional processes to process correct order data.
2. You can create a separate order
If you choose to create a separate order, a new order containing upsell items is created.
There is an additional case where you may want to cancel the original order when a new order is created.
You control these behavior from Funnel>Settings >Order Settings
Does this behavior change for different gateways?
Nope. It remains consistent for all supported gateways.