A bundle’s cost is the sum of its components at the cost those specific units carried, plus any packaging that goes into it. Getting that right requires three things to happen when the bundle sells, and most setups only do the first.
1. The revenue has to land
Every system records the sale. This part is never the problem.
2. The components have to leave stock
Selling a bundle should deplete each component, at the cost layer those units actually carry. When it does not, two things go wrong at once: the bundle’s margin is guesswork, and the stock figures for every other product sharing those components are now wrong too. That second effect is the one that surprises people, because it shows up as a stockout on a product that appeared to have inventory.
3. The cost has to be built, not typed
If a bundle’s cost is a number entered once, it stops being true the first time a component’s landed cost changes. A bill of materials keeps it accurate: the cost is derived from the components, so a freight increase on one part shows up in the bundle’s margin without anyone updating anything.
The discount belongs on the order
Bundles almost always sell at a discount to the sum of their parts. That discount is a reduction of gross sales on the order it came from, not a monthly adjustment. Kept on the order, it lets the real margin on the bundle be compared against the margin on selling those products separately, which is the decision the bundle exists to inform.
Returns close the loop
A returned bundle has to put its components back, or the stock figures drift in the opposite direction. This matters most in January, when returns arrive in volume against products sold in November.
Focal handles bundles through kitting and bundling: selling one depletes each component at its actual cost layer, the bundle’s cost comes from its bill of materials, and the discount stays on the order it belongs to.










