Stock overselling can happen on busy online shops when a product is low on stock, and 2 or more customers try to buy the remaining stock at the same time. Both customers end up paying for the product at the same time but there isn’t enough stock to fulfil both orders, so this usually means contacting one of the customers to arrange a refund. Rocketspark now supports stock/cart allocations which is a useful tool in preventing overselling.
Reserving stock for the customer
Rocketspark now supports Stock Reservations which greatly reduces product overselling.
When a customer is in the process of making payment, a stock reservation is created for the items in their cart. This gives them a fair chance to complete their order without someone else snapping up the last stock before payment can be completed.
- Customer adds products to their cart, as normal
- Customer selects a payment gateway and redirects off-site to make payment
- At this point, the stock in their shopping cart is reserved for them for 10 minutes
- If this causes the stock levels of a product to drop to zero, other customers will not be able to check out with that product
- Customer completes their payment, the stock levels are adjusted
- If payment takes longer than 10 mins then the stock allocation expires, and other customers are able to purchase the product
Experience for other customers
On busy shops with limited stock, it’s likely that other customers will be at different points in their shopping journey when the stock gets allocated.
A customer has just been redirected to the payment gateway to pay for the last stock of the product in question. This product is now reserved by Customer 1 and will be treated as “out of stock” for other customers.
For other customers browsing the shop
- Product will show as out of stock and they are not able to add to their cart
For other customers who already have the product in their cart
- When this customer tries to select a payment method, a stock check is done
- Because the product stock is already reserved, a message is displayed explaining that some products in their cart are not available
- The reserved product is removed from their cart
- If this customer has other in-stock products in their cart, they will be allowed to proceed with payment to order those other products
- Why is the allocation period 10 minutes? Can it be longer?
We chose 10 minutes as this gives a normal customer enough time to find their credit card and make payment. A longer allocation period is possible, however would mean stock is unavailable for other customers if someone were to abandon their cart mid-payment.
- What happens after the 10-minute stock allocation period expires?
After the stock allocation period expires the stock becomes available again for other customers to purchase. This may result in overselling if the original customer is still making payment and has taken longer than 10 minutes to do so.
- What happens if orders are placed via another channel, eg Vend?
This will usually result in overselling still happening, as there are short delays in syncing the stock levels between channels.
We strongly recommend that all Rocketspark shops set up ReCAPTCHA as this provides protection against stock being allocated to non-human users of the checkout (bots). This is important because any stock allocated to a bot is unable to be used by a real customer.