Bundles group product variants sold together as a single sellable unit: a meal combo, a starter kit, a multi-pack. A bundle has its own price, SKU, image, tax settings, and categories, independent of its components. Each component references a product variant with a quantity and display position.
Bundles are sellable the same way variants are: pass a bundle_id on an order line item and Flint resolves price and display from the catalog. available_for_sale reflects catalog eligibility, meaning every component is active and sellable; it is not a stock guarantee. Flint checks and reserves each component's inventory when the order flow creates its stock claim. Use inventory levels to inspect stock at each Location. Bundles can also carry a modifier set for buyer customization.
Create components with the bundle, or replace the complete components array in a bundle update with the bundle's current version as expected_version. Include a returned bundle_component_id to keep and update an existing member. Omitting a component removes it. Bundle categories and images use the same fenced, full-replacement pattern.
Each component carries a variant summary with the variant's name, sku, and product_name, so you can label a component without a second read of the product. A component whose variant no longer exists reports only its variant_id.
The bundle list omits components. Every bundle reports component_count, including 0, so a list row can show how many components a bundle holds; retrieve the bundle by ID for the components themselves.
Use the exact sku filter on the bundle list to find a bundle by SKU. Archived bundles remain available by ID and are excluded from list results unless you request status=archived.
