Web App

Reservations

Hold stock now, then complete the customer’s order when they are ready.

When to use a reservation

Use Stock Operations → Reservations when a customer needs you to hold available stock before paying. You can also start from Reserve stock on a product or scan result when available. A reservation is linked to a WooCommerce order; keep working with that linked order instead of creating a separate order for the same sale.

Example: a customer wants three jackets, with two on Shelf 101 and one in Overflow. Create one reservation with a quantity for each location. Add shipping or other items later through Continue to order.

An ordinary New Order or proforma payment request does not reserve stock. If you need a hold, start with a reservation.

Create a reservation

  1. Choose Create reservation, then search or scan the exact product or variation. Enter a quantity and, for products managed by Stokkap locations, choose a sellable location. Non-sellable locations cannot supply a reservation.
  2. To reserve the same product from another location, choose Add location under that product and enter the quantity for the additional location. The product is shown once, with separate location rows. Quantities are checked against available stock; the connected store makes the final check when you save.
  3. Reference and notes are optional. Open Customer and other details (optional) to select or enter customer details and set an expiry. A customer email is not needed simply to hold stock. It is needed for confirmation emails, online payment links and creating a customer account.
  4. Choose Create reservation. Wait for the result before starting another reservation. If the connection fails and Retry is shown, retry that operation rather than creating a duplicate.

What happens to stock

Reserved units are already excluded from available stock. Do not subtract the Reserved figure again. The location breakdown identifies where the held units came from; other stock at those locations remains available.

When payment converts the reservation to an order, the existing hold is used. The held units should not be deducted a second time. This is why available stock can stay the same while the reservation disappears from the active list.

For example, holding two units from six available leaves four available and two reserved. After payment, four can still be available and the reservation has become an order. Check the linked order and payment status to confirm the outcome.

Creating or changing a hold, removing a line, cancelling or expiring a reservation sends a stock update to the connected app. If delivery is delayed, the normal stock sync provides a fallback. Allow the update to arrive or refresh the view; do not make another stock adjustment just to compensate for a delayed display.

Edit the hold or continue to the order

Open an active reservation to change quantities, reference, notes or optional details, then save. Use Remove to release a product/location line. Adding products or changing source locations uses Continue to order.

Choose Continue to order for the full editor: add or remove items, adjust prices, choose sellable locations for managed products, add fees or discounts, and enter shipping details. It updates the same linked order and checks changes to the stock hold.

Save reservation keeps the updated hold active. Continue to payment saves the order details and moves it into the payment flow. Review the items, delivery details and total before continuing; a reservation waiting for payment is no longer freely editable in the active-reservation editor.

To remove an item from an active reservation, choose Remove on its product/location line and confirm. Only that allocation is released; other lines remain reserved and the reservation stays open. Removing the final line asks you to cancel the whole reservation. Save other changes first. Product names link to their product details when the product is available in the app.

Send the customer a payment link

For a reservation that is already correct, open Payment options → Send payment link. Confirm the customer’s email address and send. Missing or invalid email errors appear beside the email field.

This action prepares the linked order for payment and emails the checkout link in one step. It does not charge the customer. Open payment link is available once a link exists; the customer pays through the WooCommerce store’s available checkout gateways.

You do not need a POS register to send an online payment link. Availability depends on the connected plugin, enabled payment capabilities and your permissions. If email delivery is uncertain, check before sending again.

Record a cash payment

When POS is enabled and you have POS access, Payment options includes Record cash payment. Select an open register session and confirm that you have received the full amount in cash before recording it.

This records cash already received. It does not charge a card or start a card terminal. Card-terminal payments are configured separately in POS settings. If POS or its permissions are unavailable, cash controls are hidden; online payment links are separate.

Statuses, cancellation and expiry

Active means stock is held and the reservation can be edited. Ready for payment means the order is waiting for checkout. Payment in progress or Needs review requires checking the linked order before taking another action.

Converted to order means the hold has moved into the order workflow. Cancelled and Expired are no longer active holds. Use Order details to review payment and fulfilment; a reservation disappearing from the active list alone is not proof of successful payment.

Cancel reservation is separate from payment actions and asks for confirmation. Cancellation or expiry releases an eligible unpaid hold. Do not use reservation cancellation as a refund for a paid order. If payment or stock evidence needs review, resolve that state rather than forcing a second stock adjustment.

WooCommerce order attribution identifies new reservation orders with the source Stokkap Reservation and medium reservation. This origin stays after payment or conversion; it describes where the order started, not whether it is still reserved or paid. With the updated Connect plugin, older reservation orders with no attribution display the same origin. Existing attribution is preserved.

If an action is unavailable

Save changed reservation details before requesting payment. If stock has changed, refresh and review the quantities and sources. If another user has changed the reservation, reload its current details instead of overwriting them.

Reservations require an online connection, access to orders and stock editing, and a compatible Connect plugin. The connected store also needs transactional reservation storage. Update the plugin or resolve the storage warning if the app reports that reservations are unavailable.

Activity records describe reservation actions and, for newer entries, their products, quantities and location names. Earlier entries may contain less detail.

Use cases

  • A customer asks you to hold a jacket until tomorrow: reserve the exact variation, add a reference or note, and set an expiry if appropriate. Customer contact details can be added later.
  • The customer wants three units but they are split across two shelves: add a quantity for each sellable location under the same product.
  • The customer decides to add another item and wants delivery: open the active reservation and choose Continue to order, update the items and shipping, then save the hold or continue to payment.
  • The customer is ready to pay remotely: send the payment link from the reservation. For full cash payment at the counter, use Record cash payment with an open register session when available.

Limitations and restrictions

  • Eligible items: choose a published simple product or a specific variation with stock tracking enabled and a price. A variable parent is not a reservable item. Quantities must be positive whole numbers; a reservation supports up to 50 product/location lines.
  • Available stock only: managed products need an assigned, active, sellable source location. A reservation cannot use non-sellable stock or promise units that are not available at the selected source.
  • Other stock operations: a hold does not freeze all remaining stock. Normal stock additions, adjustments and transfers operate on available balances and remain subject to their usual rules and permissions. They do not move or release the reservation’s held allocation. Do not add the Reserved figure back into an available-stock adjustment.
  • Stock-management changes: while an active reservation references a product or its stock owner, switching Stokkap management or WooCommerce stock tracking is blocked. Resolve the reservation first.
  • Location changes: a location referenced by an active reservation cannot be deleted, deactivated or have its slug changed. Moving the remaining available stock elsewhere does not remove the hold or make its source location safe to delete.
  • Editing the reserved order: use the reservation editor or Continue to order. Direct changes to its products, quantities, prices, stock-source evidence and protected order details through ordinary WooCommerce editing/API paths are blocked. Do not use another plugin to bypass this protection.
  • Payment states: the basic editor only changes active holds. Ready for payment, Payment in progress and Needs review restrict further actions. Do not force a custom order status or restart payment to work around a restriction; check the linked order and payment outcome.
  • Refunds and cancellation: an unpaid active reservation must be cancelled through Reservations, not refunded. A payment in progress cannot simply be cancelled. Once paid and converted, use the normal order/refund workflow.
  • Storage and access: reservations require an online store, the necessary order/stock permissions, a compatible Connect plugin and transactional InnoDB storage for the required tables. A payment link is not proof of payment.
Back to documentation