iLite Moodle shopping cart – requery a transaction

I have been working on a shopping cart plugin for Moodle. One of the things I worked on the weekend, was the ability to re-query an incomplete transaction.
A successful transaction is when a user selects a course, pays via payment portal (like PayPal), gets redirected back to the site, and is automatically enrolled into the course they have bought.

Should the user loose connectivity with the payment portal before making payment, then they can restart the process from scratch. Since no payment was made, no money was lost.

Suppose the user makes a payment with the payment portal and connectivity is lost. They have paid for a course for which they have not been enrolled, because of the lost connectivity.

For this reason we need to provide the user with the ability to re-query any incomplete transactions.

Below are few screens showing the process in action.

requery_1

Screen 1 – The Purchase history table showing the current transactions.

 

requery_2

Screen 2 – The user selects a course to buy from the available courses.

 

requery_3

Screen 3 – Confirmation of the purchase is displayed. Once the user clicks the Buy button, they are routed to the payment portal.

 

requery_4

Screen 4 – The payment portal where the user enters their credit card details.

 

requery_5

Screen 5 – Suppose connectivity was lost once payment had been made , a Requery button is displayed.

 

requery_6

Screen 6 – The transaction completes and the results are displayed to the user.

 

requery_7

Screen 7 – The Purchase history table now shows the completed transaction.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s