Skip to content
BlogCommerce

Online stock reservations: when to hold and when to release

A cart does not always hold goods. Decide the trigger and verify that uncertain payments or repeated notices do not release the same units twice.

Reservation and last-unit tests

Ten synthetic hold, expiration, late-notice, retry and physical-dispatch cases. Record evidence and observed outcomes.

Download CSV worksheet
In this guide

Choose which action reserves a unit

Opening a product, adding it to a cart, starting payment and confirming an order are separate moments. Holding stock for every cart protects the first shopper but may retain goods in abandoned attempts. Reserving later leaves more units for sale, but requires an availability check as the purchase progresses. The process owner must choose the trigger, duration and release condition.

Shopify distinguishes on-hand, available, committed, unavailable and incoming inventory. Damaged or held units should not be counted twice within the sets calculating availability. Stripe documents manual or timed payment-session expiration and an expiration notification a store can use to return reservations to stock. That notification requires the store to process release; it does not independently prove your inventory has updated.

MomentWhat it protectsRequired test
Add to cartTemporary priority while shoppingAbandoned carts and held-quantity limits
Start paymentAn attempt already checking outTwo buyers for the last unit
Confirm orderAccepted ordersEarlier payment when the unit is gone
Deferred-payment orderAuthorized commercial commitmentAgreed deadline, review and cancellation

Worked example: four sellable units and two buyers

TimeFactOn hand / damaged / held / available
10:00A receives RES-A for 2; expires 10:305 / 1 / 2 / 2
10:05B confirms ORD-B for 2; not dispatched5 / 1 / 4 / 0
10:06C attempts to reserve 1Denied; still 5 / 1 / 4 / 0
10:30Verify RES-A expired without payment; release 25 / 1 / 2 / 2
10:31A’s expiration notice arrives againNo second release; still 5 / 1 / 2 / 2
11:00ORD-B’s 2 units leave3 / 1 / 0 / 2

A browser countdown guides the shopper; the central clock and recorded reservation determine cutoff. Closing the tab does not prove payment failed. Stripe’s documented timed expiration is set between 30 minutes and 24 hours when creating the session; this example uses 30 minutes. Check the limits and payment methods of the provider you will use, without assuming every provider supports the same interval.

Resolve uncertain payment before releasing stock

Test an alternative starting at 10:00: A paid at 10:29 but the notice arrives at 10:32. The store checks the authorized result and discovers payment before cutoff. In this alternative the two units remain committed to A; a late or repeated notice must not release the same reservation. The previous no-payment test and this alternative are not cumulative.

If the result cannot be established at cutoff, display “payment under review” and assign an owner to resolve it within an agreed review period. Do not confirm goods or release stock by guessing. If money actually arrives after a reservation was released and units were sold, record the discrepancy and agree on a new delivery or authorized refund with the buyer. Do not automatically recreate the old order’s hold.

A reservation needs a product, location and owner

Link the reservation to variant, warehouse, quantity, buyer, purchase attempt and expiration. Repeating the same attempt retrieves RES-A; changing quantity modifies or replaces its reservation in a verifiable way without leaving two hidden holds. A genuinely new purchase has another reference. Decide whether boxes or packs deduct equivalent individual units; counting carts does not replace that quantity.

When online and counter sales share stock, both should consult a common authority when accepting commitments. A recent screen helps but does not protect the final unit when two people confirm simultaneously. The warehouse guide develops physical availability and transit; this article tests a reservation’s lifetime during purchase.

Accept the reservation under these conditions

  1. Normal: confirmed purchases retain their hold until dispatch without deducting available inventory twice.
  2. Exception: a verified unpaid expired attempt releases only its units; damaged goods remain blocked.
  3. Retry: repeated creation or expiration retains one reservation and one release.
  4. Concurrency: two attempts for the last unit cannot both receive confirmed availability.
  5. Change: cancellation after dispatch retains the physical movement; a return requires verified receipt before resale.

The downloadable worksheet contains ten synthetic cases with blank observed results. It includes earlier payment with a late notice and an uncertain outcome because normal demonstrations often miss these cases. Also review duplicate payment notices and cancellation with refunds. Before assessing retail software, identify which system controls availability and what evidence confirms each payment.

Test what happens to your last unit

In a free consultation we can review who controls availability and when a purchase actually commits it.

  • A product and variant with stock per warehouse and blocked items.
  • Current hold, expiration and deferred-payment rules.
  • An anonymized abandoned order or late payment notice with references.
Book a free consultationAsk on WhatsApp

Related

Frequently asked questions

That depends on platform and configuration. Define and demonstrate the trigger: cart, starting payment or confirmed order. Do not infer it from a visual countdown.

It does not prove that purchase or payment ended. The store must verify the reservation and payment attempt under the agreed policy.

The responsible system needs to process a verifiable release. Repeating the notice in this test does not return another two units.

Mark it under review, assign an owner and check the authorized result before confirming goods or releasing the hold. Agree on a review deadline.

Sources

  1. Understanding inventory statesShopify
  2. Manage limited inventory in CheckoutStripe

Last updated:

Keep reading

Free consultation

Has your business outgrown Excel?

Tell us how your team works. In one call we’ll tell you what to fix first. We reply the same business day.

Just need a website? See packages from $10,000 MXN, VAT included

  • Free, no commitment
  • Proposal in 1 business day
  • Delivered in stages