A bundle has a product identity, but that does not make its stock independent of its components. Before commissioning catalogue or search work, require the supplier to identify parent and component records and explain exactly what one sale consumes.
Source-bound fact
Shopify estimates available bundles from tracked component stock divided by required quantities, using the lowest whole result. Official reference · Checked 17 October 2026.
Filled synthetic acceptance example
Synthetic teaching example, not a client case or a real-store assessment. On narrow screens, scroll to read the complete table.
| Input | Check basis | Expected |
|---|---|---|
| Kit:2A +1B; availableA11/B4 | min(floor11/2,floor4/1) | 4kits |
| A11/B1 | B is bottleneck | 1kit |
| A not tracked or overselling enabled | outside tracked-stock assumption | do not certify count |
Supplier acceptance procedure
- Record parent ID, component IDs, quantities, tracking flags and app/version in a filled mapping.
- Recompute the bottleneck, then test a component stock change in an authorised non-production store.
- Keep parent revenue and component fulfilment counts separate in analytics; prove the chosen discount/checkout path independently.
Interpret the output
The first case produces4 complete kits, leaving3A and0B if all four are assembled. It does not make four parent products plus twelve components into sixteen sales. Search availability, order representation and analytics each need their own identity map.
Explicit limits
Tracked finite stock only; no nested bundles, overselling, concurrency, mixed apps, exchange/refund allocation or live inventory guarantee.
Replay the finite teaching model
Save both files in one folder. With Node22 or newer, run the command below. JSON contains explicit inputs and expected results. The script processes synthetic data only, with no network, credentials, payment or API calls. Passing proves the finite model only, not a live integration.
Filled inputs and expectations · Inspectable teaching script
node check.mjs bundle-component-stock-reconciliation.json