How to track raw materials for a Shopify store
Shopify is good at counting finished products. It has no idea what those products are made of. If you sell candles, Shopify knows you have 40 candles in stock. It does not know you have 12 pounds of wax, 300 wicks, and two cases of jars, and it will not warn you when the next batch is impossible because the fragrance oil ran out on Tuesday.
Every maker on Shopify runs into this: candle makers, soap makers, jewelers, ceramicists, small-batch food producers. The usual solutions fall into three buckets: a spreadsheet, fake products inside the Shopify catalog, or a dedicated materials system. This guide walks through each, including exactly where the first two break.
The spreadsheet approach
The starting point for almost everyone. One tab lists materials: name, supplier, purchase unit, quantity on hand, cost of the last order. A second tab holds recipes: each finished product and the quantity of each material it consumes. After every batch, you multiply the recipe by the number of units made and subtract each line from the materials tab.
This works, and for a small operation it can work for a long time. Then it starts to break, and it breaks in predictable places:
- The subtraction discipline problem. Every batch requires manual edits across every ingredient line. Do it immediately, every time, or the numbers drift. Skip one busy market weekend and your spreadsheet becomes fiction that looks like data.
- Unit conversion by hand. You bought wax in pounds and your recipe is in grams. Every update involves a conversion factor, and one mistyped conversion quietly corrupts every number downstream. There is more on this in calculating COGS for handmade products, where the same conversions drive your costs.
- No connection to Shopify. Finished goods live in Shopify and materials live in the sheet, so every batch means updating two systems that never check each other.
- No alerts. A spreadsheet does not tap you on the shoulder when wick stock crosses a threshold. You have to open it, look, and remember what the reorder level was supposed to be.
- More than one person. Once a partner or helper also makes batches, "did you update the sheet" becomes a daily conversation, and the answer is sometimes no.
When is it fine? A handful of materials, one person, low volume, and genuine discipline about updating after every single batch. If that describes you, keep the spreadsheet and spend your money on materials instead.
The fake products workaround, and why it backfires
The next idea most people have: since Shopify already tracks inventory, create a product called "Soy wax 464" with inventory tracking on, set it to draft or remove it from every sales channel, and let Shopify count your materials.
It feels clever and it causes problems:
- Catalog pollution. Every material becomes a product record living in the same list as your sellable items. Admin search, bulk edits, automated collections, apps that operate on "all products", and product feeds to Google or Meta can all pick these records up. Draft status and channel settings are supposed to keep them hidden, but one misconfigured app or feed and a customer is looking at "Soy wax 45 lb case" on your storefront or in a shopping ad.
- The units make no sense. Shopify counts whole units of a product. Your wax on hand becomes "45" with no unit attached, and there is no way to say a candle consumes 170 grams of it. You end up tracking bags rather than usable quantity, which is too coarse to be useful.
- Nothing decrements when you produce. Shopify has no concept of a recipe, so making 20 candles changes none of your material counts. You still do all the subtraction by hand, now in an interface that is slower than a spreadsheet for that job.
- Reports get skewed. Inventory value reports, product counts, and anything an accountant pulls from Shopify now mixes materials with sellable goods, and untangling that at tax time is miserable.
The workaround uses a tool built for finished goods to model something it has no vocabulary for. The friction never goes away; it compounds.
What a materials system actually needs
Whether you buy an app or build a very good spreadsheet, the requirements list is the same:
- Materials as their own records, outside the catalog. Materials are inputs. They should never risk appearing anywhere a customer looks.
- Units and conversions. A purchase unit and a usage unit per material, with the conversion handled once, centrally. Buy wax by the pound, consume it by the gram, and never touch a calculator again.
- Recipes. A bill of materials per finished product: this candle is 170 grams of wax, 17 grams of fragrance, one wick, one jar.
- Production runs. One action that subtracts the consumed materials and adds the finished units to Shopify, together, with a record of when and how many.
- Reorder points in material units. "Alert me when wax drops below 2,000 grams" is actionable. A stack of bags on a shelf is a guess.
- Cost rollup. Once quantities and costs exist per material, the cost of each finished unit is computable automatically, which is the foundation of sane pricing.
Judge any solution, including your own spreadsheet, against those six points.
Where Madestock fits
Disclosure: Madestock, which we are building, is a Shopify app designed around exactly that list. Materials live as records inside the app, so your Shopify catalog stays clean. You define recipes per finished product, log production runs that subtract materials and add finished stock in Shopify with an audit trail, and get unit conversions, low stock alerts with reorder points, and a live cost per finished unit. It is in development, the free tier covers up to 10 materials and 3 recipes with all features, and the paid Maker plan is $29 a month flat.
A sensible path
Start with the spreadsheet if you are small. It teaches you your own recipes and consumption patterns, and that knowledge transfers to any tool later. Move to a real system when the symptoms show up: a stockout discovered halfway through a batch, shelf counts that no longer match the sheet, or more evening time spent updating cells than making product. Those symptoms are the business telling you the tracking job has outgrown the tool, and it is a good problem to have, because it means you are selling.