How do I track stock for a bundle or kit?
Do not keep a separate stock figure for the bundle. Derive its availability from its components, and let a sale reduce each one. Holding stock for both the kit and its parts means every sale has to be reflected twice — it works until one of the two is forgotten, and then nobody can tell which number is right. If the bundle is physically assembled in advance, that is a production step, not a second stock figure.
Two figures for one thing will diverge
The moment you store bundle stock separately, you have created a reconciliation task that runs forever. Every bundle sale, every component sale and every restock has to touch both numbers.
Deriving removes the second number entirely.
Assembled versus virtual bundles
| Type | What happens | How to record |
|---|---|---|
| Virtual | Picked at dispatch | Derive from components |
| Assembled | Built in advance | Production: components out, item in |
The distinction matters for cost as well. An assembled bundle has a real cost made of its components plus the labour of assembly; a virtual one does not exist as an object at all.
Where it usually breaks
The gift set that sells well over the holidays, built in advance, and then partially broken up in January to fill component orders. Without a production record there is no trail for either direction.
Checklist
- Is bundle availability derived rather than stored?
- Are pre-assembled bundles recorded as production, not as a stock edit?
- Does a bundle sale reduce each component by the right quantity?
- Is the cost of an assembled bundle taken from its components?
Frequently asked questions
How should bundle stock be tracked?
By deriving availability from the components. A bundle sale reduces each component by its quantity in the bundle.
What if I assemble bundles in advance?
Then it is a production step: components are consumed and a finished item is created, with its own cost taken from the components.
Can one product be in several bundles?
Yes, and they all draw on the same stock, which is exactly why a separate bundle figure drifts.