Traceability
Bundles and assembled packs
How to define a bundle in Crown, assemble packs from finished-good lots, and keep gift sets and sampler packs inside your traceability chain.
A bundle is something you pack from finished goods you have already made: a three-bottle gift set, a mixed sampler, a retail multipack. It's the one thing in Crown that isn't produced by a batch, and that's exactly why it needs its own handling. A bundle has no recipe and nothing to cook. It's assembled from lots of your existing products, and it carries its own lot code, expiry, and carton label.
You work with bundles in two places:
- Products → Bundles is where you define a bundle: its name, what goes into one pack, and its lot-code format.
- Batches → Bundles is where you assemble packs, alongside your production batches, and see every pack you have made.
Defining a bundle
A bundle is defined once, then assembled as often as you need. Defining it records what the bundle is made of; it doesn't create any stock.
- Create the bundle
On Products, open the Bundles tab and select Add bundle. Crown opens a New bundle page.
- Name it
Fill in Bundle name the way you'd list it on an order, such as "Hot Sauce Trio (3 x 150 mL)". Add a Bundle code as an internal identifier if you use one, and set the Status.
- Add its components
Under Components, add a row for each SKU that goes into one pack, and how many of it. A four-bottle sampler with one of each variety is four rows of one; a case of twelve of a single bottle is one row of twelve.
- Set its lot-code format
Under Lot code, either inherit your company's format or override it for this bundle. A pack needs a code that isn't borrowed from a product, because a bundle doesn't have one.
- Save
Select Save. The bundle now exists as a definition, ready to assemble against.
Optionally record a UPC / EAN, a Carton barcode (GTIN-14), and an HS tariff code on the bundle, the same way you would on a product SKU. These print on the pack's carton label and travel with it to a distributor.
Assembling packs
Assembling is the step that creates real stock. It consumes the component lots you choose and produces a lot of the bundle.
- Start an assembly
Open Batches from the main menu, select the Bundles tab, then Assemble bundles. From a bundle's own page on Products, View packs takes you straight to that bundle's packs.
- Choose the bundle and how many packs
Pick the bundle and enter Packs. Leave Lot code blank to generate one from the bundle's format, or type one in.
- Check the components
The Component check compares what each component needs with what you have in date, and flags any shortfall before you start picking lots. Expired stock is shown separately.
- Check the lots you're packing from
Under Lots, Crown has already picked each component's soonest-expiring lots that are still in date, splitting across lots when one runs short. Change a line's lot or quantity, remove it with ×, or select + Add lot to draw from another. Each component's total has to match what the pack count needs before Crown will let you assemble. Changing Packs picks the lots again from scratch, so set the pack count first.
- Assemble
Crown shows the pack expiry it will inherit: the earliest date among the lots you picked. Select Assemble. The component lots are consumed, and the new pack lot appears on the Bundles tab.
Adding a run to an existing pack lot
If you pack the same bundle again from exactly the same component lots as a pack lot that's still in stock, Crown asks whether to add the new packs to that lot or make a new one. Adding keeps the lot's code and best-before, and the pack's Runs list shows each run with its date, person and pack count.
Crown only asks when every lot matches. If one lot differs, even because an earlier lot has run out, or the bundle's recipe has changed since, the run gets a new lot code, so a lot code always names one set of ingredients.
Printing a carton label
A carton label prints from a pack, not from the bundle definition, so you need to assemble one before you can print its label. On Batches → Bundles, open the pack and select Carton label.
The label uses your company-level carton label settings, the same as any product label. See Setting up carton labels.
Costing a bundle
Crown costs a bundle from what it's packed from. As you add components, it rolls up the cost of each component SKU from that product's own cost data, and adds any packaging cost you record on the bundle itself (the gift box, the insert, the shrink wrap).
That gives you a cost per pack you can price against, without having to maintain a separate figure that drifts every time an ingredient price moves.
Voiding a mis-recorded pack
If you recorded an assembly that never happened, or recorded it twice, void the pack rather than leaving a phantom lot in inventory.
Open the pack on Batches → Bundles, select Void, and give a reason. Its component lots return to stock, the pack leaves inventory, and it stays listed on the Bundles tab as Voided.
How bundles reach your traceability chain
Assembled packs are full participants in trace and recall, in both directions.
Backward, from a pack. Trace a pack's lot code and Crown shows a Packed from card listing every component lot inside it, each linked to the batch that produced it. This is the hop a recall on a pack has to make to reach real production records.
Forward, from a component. Trace a finished-good lot and Crown shows a Packed into card: every pack that lot shipped inside, with how much of it was used and how much of that pack remains. This is what you need when a single ingredient lot goes bad and you have to work out which gift sets it ended up in.
Voided packs are left out of both directions, so a corrected record doesn't pollute a recall.
Bundles also appear elsewhere you'd expect:
- Inventory lists assembled packs alongside batch-produced lots on the Finished Goods tab, marked Assembled in the Batch column. Filter by Type → Bundled goods to see only packs.
- Complaints can name a bundle. The product picker lists bundles with a "(bundle)" suffix, and selecting one loads that bundle's pack lots instead of product lots.
- The Bundles list on Products shows how many components each bundle has, its units per pack, and how many packs are on hand and shippable. It exports that summary to CSV.
- The Bundles tab on Batches lists every pack lot you have assembled, with who assembled it and what it was made from, and exports to CSV.
- Your whole-company data export includes what actually went into each assembled pack, not just what a pack is supposed to contain. That is the record an auditor follows from a recalled component to the packs it shipped inside.
What's next
For the whole picture of how lots connect, see How lot traceability works.
Frequently asked questions
What is the difference between a bundle and a product in Crown?
A product is something you make in a batch, from a recipe. A bundle is something you pack from finished goods you already made — a gift set, a sampler, a multipack. A bundle has no recipe and no batch, which is why it lives on its own tab rather than inside the products list.
Does a bundle pack get its own lot code?
Yes. Each assembly creates a stocked lot of the bundle with its own lot code, generated from the bundle's lot-code format or typed in by hand. It is a real lot: it appears in inventory, prints a carton label, and can be traced and recalled.
What best-before date does a bundle pack carry?
The earliest expiry among the component lots you packed it from. Crown shows you that date before you assemble, and prints it on the pack's carton label.
Where do I assemble packs?
On the Batches page, in the Bundles tab. Products → Bundles is where you define a bundle; Batches → Bundles is where you assemble packs and see every pack you have made.
I recorded an assembly that never happened. Can I undo it?
Void the pack. Its component lots return to stock and the pack leaves inventory, with your reason kept on the record. Voiding corrects the record; it does not physically unpack anything.