Sin impuesto Con impuesto

Reserving stock in the cart with a countdown: when it makes sense and for how long

In PrestaShop, stock only goes down when the order is validated, and until then everyone sees the last available unit. Reserving it in the cart solves launches and limited editions, but if badly configured it locks up stock. We explain how to do it properly.

Equipo Rekire
Updated: 22/10/2026 11
Reserving stock in the cart with a countdown: when it makes sense and for how long
Share:

You launch a limited edition of 50 units. In the first few minutes hundreds of people arrive, many add to cart and go to checkout. PrestaShop does not deduct stock until the order is validated, so during those minutes everyone sees units available. The first to pay get them; the rest find out at the last step that there are none left, or worse, they pay and then receive a cancellation email.

Reserving stock in the cart changes the moment a unit stops being available: from payment to “add to cart”, with a time limit.

How PrestaShop works without a reservation

A cart in PrestaShop is a wish list with purchase intent. It sets nothing aside. Physical and available stock only change when the order is created. For most stores this is fine: with plenty of stock, two people looking at the same unit is rare.

The problem appears in three situations:

  • Launches and drops: a lot of demand concentrated in a short time and little stock.
  • One-off or nearly unique pieces: art, second-hand items, the last units of a season.
  • Flash sales with a special price for a short window.

What a reservation does

When added to the cart, the units are set aside for that customer for a period of time. While it lasts:

  • Everyone else sees the free stock, not the total.
  • If someone tries to add more than is free, they can only add what is left, and they are told why.
  • The customer holding the reservation sees a countdown on the product page, in the cart and at checkout.
  • If the time runs out without payment, the units are released automatically.
The countdown has to be real. A timer that restarts on reload or releases nothing when it expires is a misleading commercial practice, and customers spot it straight away. If you show “your reservation expires in 8 minutes”, it must be true and, when it expires, the unit must become available to someone else again.

How long it should last

There is no universal number, but there is a criterion: the time it takes a typical customer to pay, with some margin. If your checkout is short and payment is by card or a quick method, ten minutes is usually more than enough. If your customer has to find their card, fill in long addresses or approve a payment on their phone, they may need a bit more.

SituationIndicative reservationWhy
Drop or launch with high demandShort (a few minutes)So stock rotates quickly among those who actually pay
One-off or high-value pieceMediumThe customer thinks it over more, but cannot hold it indefinitely
B2B sale with a large orderLong or no reservationThe buying process is slower and the risk of collision lower

The most useful thing is to allow limited extensions: a customer who is paying and needs a couple more minutes can ask for them, but only a set number of times. That way nobody holds stock indefinitely.

Effects to bear in mind

On conversion

A visible reservation is reassuring: the customer knows the unit is theirs while they pay. At the same time, it adds pressure. That is why it should not be switched on across the whole catalogue, only on the products and dates where there really is scarcity.

On the stock others see

With reservations, available stock can drop without any sales. If twenty people have the same unit in their cart, everyone else sees “out of stock” until the reservations expire. That is exactly what you want in a launch, and exactly what you don't want for a normal product with plenty of stock.

On bots and resellers

Without a per-customer limit, someone can reserve the whole stock of a launch with several carts. Set a maximum number of units per customer and per product in those cases.

On integration with other systems

If an ERP or an external warehouse also writes your stock, a safety margin (units that are never offered) avoids selling the one the other system has just subtracted.

The final check, at payment

The reservation protects the cart, but the critical point is order validation. If for any reason a cart reaches payment with a unit that is already reserved by another customer, the store has to stop it and send it back to the cart with a clear explanation, before charging. And the reservation has to be created in such a way that two customers clicking “add” at the same instant do not end up with the same unit: that requires locking the row in the database, not just checking and then writing.

Checklist

  • Switch on reservations only where there is real scarcity: launches, limited editions, one-off pieces.
  • Choose the duration based on how long your customer takes to pay, and limit extensions.
  • Set a per-customer maximum for launches.
  • Check that expired reservations are released without waiting for any task.
  • Run a test with two browsers at once on the last unit.
  • Measure: how many reservations end in an order, how many expire and how many double sales have been avoided.

Frequently asked questions

Does the reservation change my stock in PrestaShop? It shouldn't. The prudent approach is for reservations to live separately and for physical stock to go down only when the order is validated, as always. That way, if you switch off reservations, the store goes back to its normal behaviour with nothing to correct.

What about guests? They can reserve too, and their reservation counts against stock just the same. If you prefer only registered customers to reserve, that is a business decision: you reduce blocking by browsers in exchange for requiring an account before buying.

What about products I sell without stock? If a product accepts orders when out of stock, there is no point limiting its purchase. At most, the reservation only serves to show how long the customer has to pay at the offer price.

How to solve it in PrestaShop

RKR Reserva de stock en el carrito sets units aside when they are added to the cart and shows a countdown on the product page, the cart, the mini-cart and the checkout. The duration ranges from 1 minute to 24 hours (10 minutes by default), with limited extensions, a per-customer maximum, a safety margin and rules per product and per category with a date window. Each reservation is created in a transaction with row locking, payment has a final check and expired reservations stop counting immediately. It does not write to your physical stock: it lives in its own tables, and if you switch it off the store works as before. It includes statistics with the reservation funnel and a counter of double sales avoided.

Loading...
Cookie consent
Back to top