Let’s say you are running a holiday promotion where customers can order from a limited stock of 3 gift box types:
Cozy Cocoa Box
Winter Wellness Kit
Festive Treat Pack
The form includes:
The form is set up so that once a customer selects their preferred box, they must proceed to online payment (via a supported payment gateway) to complete the order.
Multiple customers, one smooth system
Let’s imagine 2 different customers: Anna and Ben interact with this form around the same time. Here’s what happens step-by-step.
Anna orders a Cozy Cocoa Box
Anna opens the form and sees:
- Cozy Cocoa Box – 5 available
- Winter Wellness Kit – 3 available
- Festive Treat Pack – 4 available
She selects Cozy Cocoa Box and clicks Submit, which redirects her to the payment page.
Zoho Forms immediately places a temporary hold on 1 Cozy Cocoa Box. This means the system reduces the visible availability of Cozy Cocoa Box to 4 for all other users.
This hold ensures no one else can reserve the same box while Anna is entering her payment details.
Ben also wants a Cozy Cocoa Box
Ben opens the form a minute later.
He sees:
- Cozy Cocoa Box – 4 available
- Winter Wellness Kit – 3 available
- Festive Treat Pack – 4 available
He selects a Cozy Cocoa Box and proceeds to the payment gateway.
Another temporary hold is applied, reducing the availability of Cozy Cocoa Box to three for all other shoppers.
This means only 3 of the original 5 boxes remain visible to others while both Anna and Ben are in the payment process.
Anna completes her payment
Anna successfully pays for the box. The hold on Anna’s box becomes permanent.
The available stock for Cozy Cocoa Box stays at 3 (Anna's order is now confirmed) and she receives a confirmation email with the order details.
Ben’s payment fails
Ben’s credit card gets declined, or the session times out.
Zoho Forms immediately cancels Ben’s temporary hold. The Cozy Cocoa Box availability goes back up to 4. Other customers can now reserve that box.
Zoho Forms allocates choices to your customers on a first-come, first-serve basis.
Customer | Action | Item status | Payment Status
| Availability for others |
Anna | Opens the form and selects 1 Cozy Cocoa Box | No change yet (view-only) | - | 5 |
Anna | Clicks Submit and is redirected to the payment page | 1 box temporarily held | Processing | 4 |
Ben | Opens the form | Sees updated availability | - | 4 |
Ben | Selects 1 Cozy Cocoa Box and proceeds to payment | 1 more box temporarily held | Processing | 3 |
Anna | Completes payment successfully | Hold becomes permanent; box is booked | Completed | 3 |
Ben | Fails payment (card declined or session timeout) | Temporary hold is released | Failed | 4 |
Why this combo works so well
- It prevents overbooking or overselling limited items.
- It ensures fairness: If someone is already in the middle of paying for a box, others can’t “snatch” it before the payment completes.
- Orders are only confirmed after successful payment.
- Failed or abandoned payments instantly free up stock. Others can purchase the item without delay.
- You don’t need to monitor or update stock manually.
You can check the choice availability status and the payment status in the All Entries section of a form.