The checkout flow
The checkout flow used for this plugin can result in Pending orders existing in WooCommerce, where the payment has not been finalized in Avarda. This is part of the general WooCommerce checkout flow, and it does not implicate that something is wrong.
The Checkout Flow
- Customer navigates to the checkout page in WooCommerce. If Avarda Checkout is the selected (or default) payment method, an initialize session request is sent to Avarda.
- When the customer identify herself in the Avarda checkout, a JS event is triggered. The Avarda Checkout for WooCommerce plugin is listening for this event, updates the customer in WooCommerce and recalculates the cart. If anything changes (like the selected shipping method), an update checkout request is sent to Avarda.
- The standard WooCommerce checkout form is submitted by the Avarda Checkout plugin, with customer data that we receive from Avarda, and a pending order is created in WooCommerce. This order has not yet been paid for and you should not change the status to Processing/Completed manually.
- Provided that the Avarda Checkout plugin respond with a true message, Avarda then finalizes the purchase in their system.
- We get a callback from Avarda if the order was successfully completed in the Avarda system.
- The Avarda Checkout plugin redirects the customer to the confirmation URL.
- The Avarda Checkout plugin populates the WC order.
- The Avarda Checkout plugin redirects the customer to the order received page and updates the order status to Processing in WooCommerce.