The Reserved Stock Pro plugin is the perfect solution to prevent overselling in WooCommerce, better customer happiness and experience when selling limited quantity with website high traffic.
Our plugin is for WooCommerce stores that operate with small amounts of stock and high demand.
Why You Need Reserved Stock Pro
The problem is WooCommerce will only reduce stock once an order is created. Therefore multiple customers could have the same product in their cart at them same time. This causes customers to potentially miss out on products while they filling out the checkout and even some cases negative stock when orders are placed at the same time.
Learn more about how WooCommerce handles stock reservations.
Reserved Stock Pro provides the customer with a better experience, by reserving the products stock in their cart for a limited time.
VIEW PLUGIN DEMO
See Reserved Stock Pro live on our demo swag store.
A Better Customer Experience
Show customers how popular your products are! When customers can see how many of your products are currently reserved, they know they better get theirs quickly so they don’t miss out!
Let customers know when popular products may be coming back into stock: If one product’s stock is completely reserved in other carts, customers might want to hang around to try to reserve one as soon as it expires or is removed from another customer’s cart.
Our Solution Explained
Our solution is controlling the stock quantity from the cart. Once a customer adds a product with stock to their cart, the available product quantity will decrease and be marked as reserved. We’ve also included product expiry times, notifications, and made sure stock levels update to match product quantity changes in the cart.
The features of Reserved Stock Pro include
- Stock decreases when products are added to the cart.
- Stock increases when products are removed from the cart.
- Stock levels update to match cart changes.
- Set product expiry time.
- Updated expiry times when product quantity is changed in the cart.
- Stock is removed from the cart after your set time, whether customers are on the site or not.
- Customizable add to cart notice on the product page.
- Customizable automatically removed from cart notification.
- A customizable real countdown for reservations.
- Dedicated database table and optimized queries for speed.
We recommend you read the technical explanation to see learn how reservations work on the server.
The main features of Reserved Stock Pro
Stock decreases when products are added to cart
When a customer adds a product to their cart, the stock numbers are decreased on the product page and instead marked as reserved.
Example: Product A has 10 in stock. A customer adds 4 x Product A to their cart. The stock levels on Product A will now show 6 in stock.
Stock increases when products are removed from cart
When a customer removes a product from their cart, its stock numbers are increased on the product page.
Example: You have 6 Product A in stock and 4 Product A held in a customer’s cart. The customer removes the 4 Product As from their cart. The stock levels of Product A will now show 10 in stock.
Stock levels update to match cart changes
When a customer updates the product quantity in their cart, the stock quantity is also updated on the product page.
Example: Product A has 6 in stock and 4 are in a customer’s cart. The customer decides to add 4 more of Product A to their cart. Now the customer has 8 x Product A in their cart. Product A shows 2 left in stock.
Set product expiry time
Set the amount of time you will allow customers to reserve the product in their cart. After this time, the product will be removed from their cart and released back into stock for other customers.
Example: You want customers to only hold products in the cart for 60 minutes. A customer adds 5 x Product A into their cart. Five product As will be reserved for 60 minutes (you can change this amount of time to whatever you like). At the end of 60 minutes, the 5 Product As will be removed from the customer’s cart and Product A’s stock numbers will increase by 5.
If the customer goes through checkout and finishes their order before 60 minutes, then the product quantity stays the same. The product stock has already been decreased by 5 when they added it to the cart.
Updated expiry times when product quantity is changed in cart
If customers decide to add more of a certain product from their cart, the expiry time will also refresh in their cart. The expiry time does not reset when customers decrease the quantity of a product in their cart.
It’s important to give customers extra time when shopping on your site. Let them add as many products as they like without time pressure.
Stock expires from the cart whether customers are on the site or not
Stock reservations are tracked in the database using a custom database table. This means that stock will expire correctly whether customers are actively on the site or not. Stock will be restored and available for the next customer automatically.
Customizable add to cart notice on product page
Easily add a notification message that will be shown on each product page telling customers that the product has limited stock and how long they can hold a product in cart before it expires. The notification message is fully customizable via the settings.
Note: This is one message that applies to all products. Developer filters are available for further customization.
Customizable automatically removed from cart notification
Customers are notified using the WooCommerce notifications when a product under stock control has been automatically removed from their cart. This notification won’t be shown to customers who remove the product themselves. You can customize this message via the settings.
Note: This is one message that applies to all products when expired from the cart. Developer filters are available for further customization.
Keep customers informed with a sticky countdown
Customers need to know what is going on, that way nothing is unexpected and they will continue to have a great shopping experience. This is where the built-in countdown for reservations comes in. Your customers will be able to see exactly how long they have to purchase their products. The countdown will automatically display at the bottom of each page while the customer has reserved stock in their cart. There are no unexpected surprises.
The countdown automatically refreshes and reflects any changes to the customer’s cart.
Reserved Stock Pro is Made for Performance
Reserved Stock Pro uses a custom database table (
rsp_reserved_stock.) Using a custom database table allows for the best performance without making any changes to your data or products.
Product reservations are made for each guest customer or signed-in customer. A customer visits your store and adds a few products to their cart, then those are products are reserved using their guest session ID (automatically generated by WooCommerce). If the customer logs in to their account, then their “guest” reservations will automatically be transferred to their customer id.
Read more details about In our technical explanation.
Reserved Stock Pro supports a few caching plugins out of the box. The product page cache will automatically be cleared when the reserved stock level changes, so customer will always see the current stock status.
- LiteSpeed Cache
- WP Rocket Cache
- WP Fastest Cache
- W3 Total Cache
- Redis Cache
- Kinsta Cache
All stock reservation database queries are optimized for performance with use of object caching to reduce the about of database requests.
Need more information on caching? Read the cache documentation.
How does RSP compare to Cart Stock Reducer?
We’ve written a comparison post between our Reserved Stock Pro and the WooCommerce Cart Stock Reducer plugin.
Requirements for Reserved Stock Pro
Our plugin is designed specifically to use with products with inventory. Therefore the reservation features will only apply to products and variations with the “managed stock” setting enabled.
This plugin requires products to have “Managed Stock” Enabled in the product settings. Reservations are only applied to stock managed products and will not affect non-stock managed products. Customers can have both normal and stock managed products in their cart.
Note: Bookable products using WooCommerce Bookings are not affected. WC Bookings has its own management “in-cart” system. If you would like to change the WooCommerce Bookings “in-cart” expiry time, then have a look at our Clear Cart & Sessions plugin.
What product types are supported?
RSP supports reserving the stock for the following product types:
- Simple Products
- Variation Products – Each variation will be reserved separately.
- Grouped Products – Any product with stock within a grouped product will be reserved.
- Subscription Products – WooCommerce Subscriptions (Use with code snippet)
- WooCommerce Product Bundles
See our list of compatible product types and plugins.
What happens if customers abandon their cart?
The timer starts as soon as a customer adds a product to their cart or changes the quantity in their cart. The product stock will be removed from the cart at your set expiry time, even if the customer leaves your site.
For example: you allow customers to hold products in a cart for 60 minutes. If a customer adds 5 x Product A to the cart, they will have 60 minutes to complete the purchase. The customer then abandons the cart 20 minutes later, which means the 5 Product As will be reserved for the remaining 40 minutes. After the set expiry time, the stock levels will increase by 5 on Product A’s page.
How can I limit the product quantity in each cart?
You can make sure that a single person can only reserve a limited amount of each product per order with our Minimum & Maximum Quantities for WooCommerce plugin.
Can robots reserve inventory?
No, we’ve added additional protection by blocking reservation attempts made by common bots.
Previously bots could reserve products in their cart depending on if they can crawl your add to cart buttons.
How can I customize RSP? Do you have developer hooks?
Yes, we’ve made our Reserved Stock Pro plugin flexible with many WordPress filter and action hooks. See our prepared example code snippets in the developer hooks to help you get started.
Got a feature request or an awesome idea? Let us know via support!
I release my products in small batches and publicly announce what time they go live. This means although I’m only a small-volume seller, all my sales are done over the course of a short period of time. Sometimes I even sell out in minutes!
In the past, this has frequently led to accidental multiple purchases of the same item, so then I have to disappoint customers by telling them they didn’t actually get it and have to refund. As well as the potential bad feeling this caused, it also cost me financially as my payment provider does not refund transaction fees.
I had a developer create a plugin that marked stock as sold as soon as a customer hit the Paypal button, but that didn’t eliminate duplicate sales completely. It also meant that if the customer changed their mind and didn’t complete payment, the item continued to be marked as sold. I had to do a LOT of micro-managing.
Your plugin does exactly what I need and have been hoping for since I started way back in 2013. I no longer have any duplicate sales and my customers aren’t so frustrated. They also like being able to see that an item is reserved because they know they might have another chance to get it if they come back a few moments later.
I honestly don’t have any suggestions for improvement, the plugin works absolutely beautifully for me! I just hope you keep making it for many years to come. 🙂
Outstanding support service! Awesome product and awesome support. Highly recommend it!
The plugin works amazing and with no issues at all.
I later wanted to do some CSS on some of the notification boxes and also here I got help within 12-hours. The funny thing is… the CSS was related to WooCommerce I realized and not the plugin! Even Morgan was confused about how to execute what I wanted and still took his time helping out, and solving the issue.
Also to add… we are very focused on fast load times on nezumistudios.com and we haven’t seen slow down symptoms since activating this plugin at all.
It’s a little expensive – but ye, you get what you pay for….. Good stuff!!
Amazing support and flawless plugin. This plugin helped me with limited edition drops.
This plugin handles woocommerce product reservations perfectly! I had one customize need and they manage it super fast and just that way what I looking for. I highly recommend this 5/5
Fantastic service! 10/10 product can’t recommend Morgan and his software highly enough! Instant assistance
This plugin is exactly what we needed. We manage a vinyl music webstore that sells very limited items, and in the past we had numerous feedbacks from our customers that their items where “snagged” out of their carts while they were going through the payment process. This is, as explained above by the plugin description, a problem within Woocommerce itself.
This plugin has fixed the issue for us with basically no further effort in terms of configuration. Clean and fast installation with immediate effect. The plugin already proved it’s worth during a pre-order rush where every customer got exactly what they wanted with no further problems.
The developer also quickly responded to us when we asked for a new feature which is now released as the plugin called “Min & Max Quantities”, where a store owner can set the minimum and maximum quantity for an item to be put into the basket of a customer.
We’re incredibly happy with this solution, as it has been straight forward and easy to use. Totally hassle-free, working as expected. Big ups for the great customer service the dev provided to us.
Used other plugins for managing stock reduction, but they always caused more problems than the solved. Reserved Stock Pro is the answer we have been looking for. Its doesnt slow down your site, is fully customisable, and is constantly improving. Not to mention the support is outstanding!
We were using an outdated, poor performing ‘stock reducer’ plugin. This one has been a great replacement. Much better performance and reliability. Their support is very good, they were able to quickly answer all my questions!