Checkout process for unique product has to be handled in different way than products which are available in quantities. Products with one quantity are unique product. Paintings, concert tickets, hotel rooms, flight tickets ( when you choose a specific seat) are unique products. Old household items are also unique items.
We have two types of process for processing any purchase. In first type, we can do cart based checkout where a user usually add more than one product to their cart. In the end of shopping process, user do checkout process for all products in his or her cart. In second type of process, it is items based, user is forwarded to checkout process as soon as “Buy Now” button is pressed.
In this article, we will try to handle second situation as most of eCommerce websites which handles unique products handles checkout through that process only. We will discuss cart based process in another article in future.
First, let’s create list of challenges we have with unique products checkout.
1. As product is unique, we need to avoid over selling. Unique products have only ONE quantity. We cannot sell it to more than one user.
2. Payment stage in checkout process took some time as most of the time users will be redirected to a third party payment gateway.
3. Users leave the checkout process in middle.
4. A payment gateway does not reply in time or any other technical event may prevent us from getting payment processing information in time.
Before we go further, we need to identify the intensity of probability of duplicate orders. If you have really high demand for your unique products, then you have a big business opportunity. Instead of going into simple eCommerce checkout, you should introduce “Auction” model. This model works best for unique items like paintings for famous painters.
Lets assume 3 different situations. I will try to propose solution according to those situation.
1. Very high demand.
I will really recommend an “Auction” Model for this portal. You have customers and you SHOULD monetize them for sake of your business.
2. Moderate demand
Mark product unavailable as soon as a user start checkout process. Set a timeout of specified minutes. Inform user about this time frame. We cannot tolerate slow users . Those will be handled in next situation.
3. Low Demand
Mark product unavailable as soon as a user start checkout process. Set a timeout of specified minutes. Refresh this timeout after every page refresh for user. By refreshing timeout with every request, we can handle very slow users. In my view, every eCommerce system at least cover this situation.
Now big question, How new users will be handled while an old user is in checkout process?
It depends on one very big factor, Are you using cache or indexer based search for your site? If you are not using any cache or indexer, you can simply make product unavailable.
In case of cache or indexer, we need adopt a different approach. I will recommended leaving your cache or indexer system unchanged. Whenever a user tries to purchase an item, we need to put an extra check for checking “availability” of product for smooth transaction. If product is unavailable, we need to inform user. WE may/can also show a waiting window to this user if timeframe is few minutes. In waiting window, A message like “We are checking availability of this product, this may take few minutes, Please stand by” can be shown. After specified time, if product is still available we can proceed with checkout or we can say sorry to that user and show other relevant products to him or her.
One thing more, do not forgot to record incidence of purchases where user did not finish payment process. You may contact them to know why they left process in the middle. This may be vital for your business.
10 differences between AWS and Google Cloud
Book Review : Socket.IO Cookbook (Tyson Cadenhead) by Zareef Ahmed
Book Review : Continuous Delivery with Docker and Jenkins By Zareef Ahmed
AWS : How to connect to Windows Instance by Zareef Ahmed
What is the use of dynamic inventory in Ansible?
Book Review : Clean Code (Robert C. Martin) by Zareef Ahmed
Book Review : Mastering Ansible (Jesse Keating) by Zareef Ahmed
7 things every web developer should know about Linux Administration By Zareef Ahmed
How to be a good wordpress programmer? | Zareef Ahmed
Things you should know about file upload handling in PHP | Zareef Ahmed
7 Things you need to know to implement better DevOps | Zareef Ahmed