What each product is made of
A bill of materials per product: the components and raw materials that go into one unit, in the units you measure them in. Stockroom rolls it up into an assembled cost from live component costs and tells you how many you could build from what is on the shelf before you start one.
One bill of materials per product, nested as deep as you need
A recipe is a list of components and a quantity per unit. Yours might be three parts or thirty, whole items or 0.25 of a sheet, and some of the parts might themselves be things you build.
- Components with a quantity per unit. Pick any product or variant in your store and say how much of it goes into one finished unit. Quantities can be whole numbers or decimals to four places, so 0.125 of a sheet works.
- Sub-assemblies nest. A component can have a bill of materials of its own - a hardware kit inside a finished board, a case of twelve built from singles. Stockroom consumes a sub-assembly as finished stock, as deep as eight levels, and refuses a recipe that loops back on itself.
- Say which lines gate buildability. Each component carries a "counts toward buildable" flag. Packaging you never run out of can stay on the recipe without dragging the can-build count to zero.
- Active or inactive, one per product. A product has one bill of materials, switched active or inactive. Duplicate a recipe onto another product when a new variant is ninety percent the same, then edit the difference.
- Shopify bundles are left alone. If a product is a Shopify bundle, Shopify derives its stock from the components. Stockroom recognises those items and refuses them as an output or a component.
- Import and export as CSV. One row per component (output SKU, component SKU, quantity, buildable), matched by SKU then barcode. Re-importing a product replaces its recipe, so you can keep the file as the master copy. Export uses the same columns, so it round-trips.
Raw materials, in their own units
Most of what goes into a build is not something you sell. Stockroom keeps materials alongside your catalog, in the unit you measure them in, and counts them as live inventory.
- A unit on every material. Grams, kilograms, ounces, pounds, millilitres, litres, fluid ounces, millimetres, centimetres, metres, inches, feet, yards, pieces or sheets. The unit shows beside the quantity on the recipe, the build, the purchase order and its PDF, and the pick list.
- New material in one step. Name it, pick the unit, type the cost and an opening count, and Stockroom creates it as a draft product on your store: tracked, stocked at every location and not on any sales channel. Or mark any existing product as a material and give it a unit.
- Buy in packs, consume by the unit. A pail of 5,000 grams is a pack size on the material. The purchase order says "5 pails of 5,000", the buy plan rounds to it, and the recipe still consumes grams.
- Materials are inventory everywhere. They appear in the buy plan, the shortfall projection, stock alerts, stock value, the stock-on-hand and last-counted reports and the Flow stock triggers. They stay out of the sales reports, since a material never sells.
- Their own view of the catalog. An All / Products / Materials switch on the Inventory page, and a Material tag on every row, so materials stay separate from the products you sell.
- Materials in the stock-settings CSV. A unit code in the material_unit column marks a product as a material on import, and export writes it back out.
Live assembled cost and can-build count
The bill of materials list shows what one unit will cost to build and how many you could make from current stock, before you start a build.
- Assembled cost from live component costs. Each component at its current unit cost times its quantity, summed. If any component has no cost, the total shows "(some costs missing)" instead of a low number.
- Can build, from the bottleneck. The component you have least of, divided by its quantity per unit, sets how many you can build from stock across your locations. A build at one location shows readiness for that location.
- Costs that keep their precision. A per-gram cost of $0.012 shows as $0.012 rather than rounding to $0.01. The build that consumes it keeps the decimals too.
- Print the bill of materials. The recipe on paper: what it makes, status, component count, can build now, assembled cost, and per component the quantity, unit cost, line cost and what is available.
- On the Shopify product page. Pin the Stockroom Builds block to the product page to see the bill of materials, can build now, the estimated cost, the open builds and whether this product is a component elsewhere. Create build is on the block too.
- Create a build from the product page. A Create build entry in the product and variant pages' More actions menu opens a new build with that bill of materials already chosen.
What a bill of materials does not do yet
What to know before you import a recipe.
- One unit per material, no conversion. Buy in the unit you consume in. A material counted in grams is bought in grams, or in packs of grams. There is no conversion between units, such as metres to feet or litres to millilitres, between the purchase order and the recipe.
- The roll-up uses current costs. Assembled cost on the bill of materials list is what one unit would cost to build today. The cost of what you built lives on the build, which snapshots component costs as it consumes them.
- Sub-assemblies come from stock. A nested recipe consumes the sub-assembly from finished stock. When you run short, Stockroom does not automatically raise a build for the sub-assembly. You raise that build yourself, or let the planning loop raise it from the shortfall.
Common questions
Do I have to create my materials as Shopify products?
Stockroom does that for you. A material is a draft product on your store with tracked inventory, a cost and a unit, and it never reaches a sales channel. Your stock stays in Shopify, so counts, transfers, purchase orders and every report already handle it.
Can a component be something I also sell?
Yes. A finished board can be a component of a bundle you also sell on its own, and a sub-assembly can be a product in its own right. The product-page block tells you when a product is used as a component elsewhere.
What happens when I edit a recipe?
Future builds use the new recipe. A build that is already open keeps the recipe it was created with, since the people on the bench are working from that sheet.
Can I bring recipes in from a spreadsheet or another app?
Yes, as a CSV with one row per component. Stockroom matches by SKU, then barcode. If any row in a recipe is bad, the whole recipe is skipped rather than half imported. Re-importing a product replaces its existing recipe.
What does it cost?
Nothing. Manufacturing is in early access and it is free, like the rest of Stockroom, with no trials and no credit card at install. Early access means we are still building it out and want to hear what your floor needs next.
Try bills of materials free
Install Stockroom free from the Shopify App Store. No trials, no credit card.