A card hold sets aside the exact copies of a card for one customer's request, so those copies drop out of availability for everyone else until the request is picked up, cancelled or expires.
The problem a hold solves
A shop has one near mint foil of a card. Two customers want it. One is at the kiosk, one is on a phone. Without a hold, both are told yes, and one of them is let down at the counter.
Oskii places a hold when a request is sent. From that moment the copy is promised to one customer, and every other screen treats it as gone.
The same problem hits any shop that lists stock on a screen. The count on the screen is only useful if it already subtracts what is promised, and a hold is how Oskii subtracts it.
A hold targets the exact copy
A hold sits on an inventory line, which is one printing in one finish, condition, language and location. The customer chose that line, so the hold reserves that line. It does not reserve "any copy of the card".
Where a request needs more copies than one location holds, Oskii takes them from your locations in a set order and records which request holds which copies. Staff then see one pick list line per location touched.
That precision matters at the shelf. The customer who asked for the lightly played copy is not handed a moderately played one because it was easier to reach.
On hand, held and available
Each line stores how many copies are on hand and how many are held. Available is the difference, and it is never stored. The kiosk, the pick list and the console all work it out fresh.
Because there is no stored availability figure, there is nothing to fall out of date. The hold itself is a counter on the line, plus a record on the request of which copies it holds and when the hold lapses.
- Request sent: held goes up, available goes down.
- Request completed: holds on not-found copies are released.
- Picked up and paid: found copies leave on hand.
Two people, one last copy
A hold is placed in a single database step that checks availability and reserves the copy together. If two requests arrive for the last copy at the same moment, one succeeds. The other customer is told it is no longer available.
This is the check that stops a double sell. It runs on the server, not on the kiosk's screen, so a stale screen cannot win a race.
The other customer is told the copy is no longer available, so nobody walks to the counter expecting a card that is not there.
Holds end on their own
A hold does not last forever. By default, unclaimed holds expire at your business close and the copies return to stock without anyone doing anything. Once a request is ready, the hold lasts for the pickup window your shop has set.
A request that staff are actively fetching is left alone by the expiry job. Cancelling a request releases all of its holds immediately.
This protects you from the other failure: cards trapped in a request nobody collects. Held copies that no one picks up do not sit hidden from the next customer for days.
Partial pulls and imports
When staff complete a request, only the holds on missing copies are released. The copies that were found stay held for the customer.
Imports never drop holds. When you re-import a ManaBox binder, Oskii compares the file with stock it already holds and leaves the copies customers have reserved in place.
When an import and a hold disagree
- A file can say you have fewer copies than customers are holding. A binder was recounted after a request came in, or a copy was sold at the counter and the export still lists it. Oskii does not take the file's word over the customer's hold.
- The held copy stays in stock, the line is flagged as a discrepancy, and the dry run marks the row as hold kept so you see it before anything applies. You sort out the shelf; the customer's request is untouched.
Questions shop owners ask
- What is a card hold?
- It is a reservation on the exact copies a customer requested. Held copies leave availability for everyone else until pickup, cancellation or expiry.
- How is availability calculated?
- Available is on hand minus held. Oskii works it out each time a screen loads and never stores it.
- When do holds expire?
- By default at business close, and the copies return to stock on their own. A ready request holds for the pickup window your shop sets.
- Can an import remove a customer's hold?
- No. Imports never drop holds.
- Does a hold take payment or a deposit?
- No. A hold reserves stock only. The customer pays at your register when they collect.
- Can a customer hold a card that is already held?
- Only if copies remain. Available is on hand minus held, so a fully held line shows as unavailable.
- What if staff cannot find a held card?
- They mark the line Not found. Completing the request releases only those holds, and the card is available again.