Bundles
Create bundle items (paketartiklar) that automatically break down into components
Bundles (paketartiklar) let you sell a group of items as a single product. When a bundle is ordered, MPH WMS automatically expands it into its component items for picking and stock management.
How bundles work
A bundle is an item with the bundle flag enabled. It has no stock of its own - instead, its availability is calculated from the component items.
For example, a "Starter Kit" bundle with:
- 1× T-shirt
- 2× Sticker pack
- 1× Tote bag
When a customer orders 3 Starter Kits, MPH WMS creates pick lines for:
- 3× T-shirt
- 6× Sticker pack
- 3× Tote bag
Creating a bundle
- Go to Items
- Click Create item
- Toggle Bundle / kit on under Status
- Fill in the bundle's name, SKU, and price
- Add components:
- Search for items by name or SKU
- Set the quantity of each component per bundle
- Click Save
Bundle availability
Bundle availability is calculated automatically:
Available bundles = minimum of (component available ÷ component quantity) across all components
For example, if your bundle contains 2× Item A and 1× Item B:
- Item A has 10 available → 10 ÷ 2 = 5 possible bundles
- Item B has 3 available → 3 ÷ 1 = 3 possible bundles
- Bundle available = 3 (limited by Item B)
This prevents overselling when any component is low on stock.
Order line expansion
When an order containing a bundle is created:
- The bundle line appears as the parent with the full price and tax
- Component sub-lines are generated automatically:
- Each sub-line links back to the parent bundle line
- Quantities are multiplied (order qty × component qty)
- Sub-lines have zero price (the price lives on the parent)
- Fulfillment pick lists show the component items, not the bundle
Stock and valuation
- Bundles do not have their own stock level - stock is tracked on the component items
- Stock movements happen on the components when a bundle order is fulfilled
- Valuation follows the components, FIFO per batch, exactly as it would if they had been sold separately
Changing a bundle that is already selling
Editing the components of a bundle that sits on open orders raises an impact dialog first, listing the orders that will be re-expanded. Confirming re-syncs those orders to the new composition. Orders that are already picked or shipped are left alone.
Bundles and Shopify
To the sales channel, a bundle is one line. The components exist only in the WMS.
- Outbound - when the bundle ships, MPH reports the bundle line as fulfilled so the customer sees the product they actually bought.
- Inbound - a "fulfilled" echo coming back from the channel will not complete a bundle that the WMS is in the middle of shipping. If any component sub-line has already shipped, the inbound update is skipped rather than closing the order early.
An order that mixes a bundle with ordinary items and is shipped in more than one parcel can report more fulfilled quantity to the channel than the channel expected. This is deliberate - it keeps the bundle showing as sent - but it is worth knowing before you split such an order.
Importing bundles via CSV
You can import bundle definitions using CSV:
Bundle SKU, Component SKU, Quantity
STARTER-KIT, TSHIRT-BLK-M, 1
STARTER-KIT, STICKER-PACK, 2
STARTER-KIT, TOTE-BAG, 1Rules:
- Quantity must be a positive integer
- A bundle SKU cannot reference itself as a component
- Both the bundle SKU and component SKU must exist as items
Best practices
- Set prices on the bundle, not the components - component sub-lines always have zero price
- Monitor component stock - a bundle becomes unavailable as soon as any component runs out
- Use tags to group bundle components for easy filtering
- Give the bundle a weight if the assembled parcel weighs less than its parts, or let the warehouse setting add up the component weights instead. See Warehouses
- Check availability before running promotions on bundles to ensure component stock covers demand