Skip to content

Checkout stock hold

When a shopper reaches checkout, Nudova places a real, time-limited hold on the items in their cart. The storefront shows a countdown (“Items reserved for 14:59”), and the same hold appears live for staff under Inventory → Reservations in the admin app. If the shopper pays, the hold is committed; if they walk away, it expires and the stock returns — automatically.

This is part of the honest scarcity posture: the countdown is the reservation’s actual expiry, not theatre. If the banner says items are held, they are held.

Set per store in the admin app under Settings → Checkout:

Setting Purpose Default
Reserve items during checkout Turn the checkout-entry hold (and its countdown) on or off On
Hold duration How long the reservation lasts before it expires 15 minutes

The duration dropdown offers 5, 10, 15, 20, 30, 45 and 60 minutes. The API accepts any value from 1 to 120 minutes if a store needs something in between.

Changes apply on the next checkout entry — no redeploy, no restart. Under the hood the values live in the tenant config (TenantConfig.extra["checkout"]hold_enabled, hold_minutes) and are served by GET/PATCH /api/v1/commerce/admin/settings/checkout/.

  • Entering checkout calls POST /api/v1/commerce/checkout/reserve/, which reserves each cart line and returns the shared expiry that drives the storefront countdown.
  • Re-entering checkout extends the same hold — refreshing the page or coming back from the cart never stacks a second reservation.
  • Changing the cart re-syncs the hold: a changed quantity is re-reserved, a removed line releases its held units.
  • Placing the order adopts the hold — the stock a shopper holds is the stock their order commits, so their own reservation can never block their own purchase, even on the last unit.
  • Expiry is automatic: the scheduler sweeps expired holds and the units return to availability (and to anyone on the back-in-stock waiter list).

What “disabled” means — stated plainly

Section titled “What “disabled” means — stated plainly”

Turning the hold off only removes the checkout-entry courtesy hold and its countdown; the storefront banner switches to “we’ll re-check stock and prices when you pay”. It does not make ordering oversell-prone: order placement itself always reserves stock for the moment between “place order” and payment settling (instantly for COD; until the gateway webhook for online payments). That placement hold is a correctness guarantee and cannot be switched off.

Active holds are listed in the admin app under Inventory → Reservations: variant, SKU, quantity, the owning cart or order reference, and when the hold expires. A committed hold moves onto the order; an expired one disappears from the list as its stock returns.

Related: Inventory · Store settings & branding · Delivery zones & fees.