Our Cart & Stock Control plugin for WooCommerce allows your store to reduce the stock quantity of products when they’re added to cart. Stock controlled products will automatically be removed from the cart after a set amount of time and the stock will be restored to the product.
Cart & Stock Control is current in beta and on hold
We highly recommend that you test on a staging site for now.
Reach out to support with any feedback you have 😄
We are holding development for a little while to adapt to the new WC_Reserved_Stock table.
- Simple and variable product types.
- WPML – Translated products can be synced with a 3 minute additional setup.
- LiteSpeed Cache Support
- WP Rocket Cache Support.
- WooCommerce 4.2
This plugin is for those WooCommerce stores that operate with small amounts of stock and high demand.
Why do I need Cart & Stock Control?
Reducing product stock when a product is added to the cart will ensure that customers don’t end up disappointed. By default WooCommerce will only reduce stock once an order is created. The problem is that multiple customers could have the same product in their cart. Customers won’t be able to purchase the product if it goes out of stock while they’re browing the store or finishing the checkout process.
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 quick!
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 a cart.
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 cart.
The features of Cart & Stock Control include:
- Stock decreases when products are added to cart
- Stock increases when products are removed from cart
- Stock levels update to match cart changes
- Set product expiry time
- Updated expiry times when product quantity is changed in cart
- Stock is removed from cart after your set time, whether customers are on the site or not
- Customizable add to cart notice on product page
- Customizable automatically removed from cart notification
- Developer hooks to programmatically set expiry times, e.g. for product categories
Features in More Detail
Stock decreases when products are added to cart:
When a customer adds a product to their cart, its 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 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:
You can set an expiry time that will apply to each product. This is 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 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 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 for that particular product will also refresh in their cart. The expiry time for a product will also refresh if customers decrease the amount of stock in their cart.
Example: You want customers to hold products for 60 minutes. A customer adds 5 x Product A in their cart and 2 x Product B. They can hold these for 60 minutes.
30 minutes later, the customer increases the quantity of Product A in their cart by 2. The customer now has 7 x Product A in their cart which they can hold for another 60 minutes. Their 2 x Product B will still expire in 30 minutes.
Stock expires from the cart whether customers are on the site or not:
Cart & Stock Control uses the WordPress Cron so reserved stock can be returned to the product when customers are not on the site. This means that if customers abandon a full cart, the abandoned product stock will be marked as available at the end of your set expiry time.
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 cart. Developer filters are available for further customization.
Made With Performance in Mind
We understand that the stores who require this kind of plugin may have large amounts of traffic with low fast moving stock. Therefore, we’ve developed this plugin to be as fast & light as possible. It integrates directly into the WooCommerce cart and session objects without adding bloat to the database.
The product stock quantity number is a “virtual” number, which means that the real stock quantity on the product is not modifed by this plugin.
This plugin requires products to have manage stock enabled in the product settings. The stock control and expiry will only apply to stock managed products and will not affect non-stock managed products. Customers can have both normal and stock managed products in their cart.
Bookable products using WooCommerce Bookings are not affected. WC Boookings has their own management “in-cart” system. If you’ like to change the WooCommerce Bookings “in-cart” expiry time, then have a look at our Clear Cart & Sessions plugin.
What happens if customers abandon cart?
The timer starts as soon as customers add a product to their cart or change the quantity in their cart. The product stock will be removed from cart at your set expiry time even if the customer leaves your site.
Say you allow customers to hold products in cart for 60 minutes. If a customer adds 5 x Product A to cart, they will have 60 minutes to complete the purchase. The customer then abandons 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 the Product A’s page.
What if I want to have separate expiry times for different products?
Our settings page allows you to choose one expiry time that will apply to all products. However, we have a developer hook that you can use to set different expiry times for different products.
We’ve got a few ideas in the pipeline, but we’re always open to more!
Got a feature request or an awesome idea? Let us know via support!