How to Track Material Inventory Alongside Shopify (A Maker's Guide)
Shopify tracks finished products. It doesn't track raw materials, recipes, or what it cost to make each item. Here's how to build the inventory layer Shopify is missing — specifically for makers who manufacture what they sell.
You’ve got your Shopify store set up. Orders are coming in. Products are listed and looking good.
But every time you go to make a batch, you’re standing in your workspace counting jars of fragrance oil and wondering whether you have enough beeswax. Then you finish production, and you’re manually adjusting Shopify stock counts one product at a time. And at the end of the year — when your accountant asks what your cost of goods sold was — you’re digging through invoices trying to reconstruct numbers that should have been tracked all along.
This is the maker’s inventory problem. Shopify solves the selling side beautifully. But it doesn’t see anything that happens before a product hits your shop — and for makers, that’s where most of the complexity lives.
Need to get your raw material and product inventory under control?
Try Craftybase - the inventory and manufacturing solution for DTC sellers. Track raw materials and product stock levels (in real time!), COGS, shop floor assignment and much more.
It's your new production central.
What Shopify actually tracks (and what it doesn’t)
Shopify is built for commerce. Specifically, it’s built for selling things — and it’s very good at that.
What Shopify tracks:
- How many finished products you have in stock
- When stock falls below your low-inventory threshold
- Sales, revenue, and order volume by product
- Multi-location finished goods distribution
What Shopify doesn’t track:
- Raw materials or ingredients (soy wax, fragrance oil, shea butter, wire, beads)
- What goes into making each product — the recipe or bill of materials
- How much of each material gets used per production run
- The true cost to manufacture each item from materials and labour
- How many finished products you can make from materials currently on hand
None of this is a criticism. Shopify is designed for retail, and it does retail inventory well. But makers aren’t retailers. You’re manufacturers who happen to sell direct to customers. The gap between “retail inventory” and “manufacturing inventory” is real — and if you’re not filling it deliberately, it fills itself with guesswork and spreadsheets.
Why “products in stock” isn’t enough when you manufacture
Here’s the distinction that matters. A retailer orders 50 candles from a supplier and lists them in Shopify. When 10 sell, Shopify says 40 are left. Simple.
A maker starts with soy wax, fragrance oils, wicks, jars, and labels. They turn those materials into candles through a production process. When 10 candles sell, the question isn’t just “how many candles are left?” — it’s also “how much soy wax do I have left?”, “do I have enough supplies to make another batch?”, and “what did those 10 candles actually cost me to produce?”
Shopify can answer the first question. It cannot answer the others.
And those others are the ones that actually drive your business decisions. Running out of fragrance oil mid-production run is a much more expensive problem than a low-stock alert for finished goods. Pricing a candle based on a guess at material costs — rather than an actual calculation — means you might be selling at a loss without knowing it.
The three-layer inventory system for makers
Once you understand the gap, the solution becomes clear. You need two systems working together:
Layer 1: Raw materials tracking. Everything that goes into your products — ingredients, packaging, components, labels, hardware — logged with current quantities, costs, and suppliers.
Layer 2: Bills of materials (recipes). For each product you sell, a precise recipe that says exactly what goes into one unit and in what quantity. This is the bridge between your raw materials and your finished goods.
Layer 3: Production runs. When you make a batch, the system uses your recipe to automatically deduct materials and add finished products. No manual calculation. No spreadsheet.
Shopify handles the selling layer above all three of these. What you need is a system that manages the manufacturing layer underneath, and connects to Shopify so your finished goods counts stay accurate.
Setting up material inventory tracking: step by step
Step 1: Catalogue your materials
Start by logging every material you use into a manufacturing inventory system — not just the expensive ones. Fragrance oils, tubs of beeswax, spools of wire, jars, bags, stamps, labels, mesh bags, boxes. Everything.
For each material you’ll want to record:
- Name and description (be specific — “Lavender Fragrance Oil 10ml” is better than “fragrance”)
- Unit of measure — grams, millilitres, pieces, metres, whatever matches how you use it
- Current quantity on hand — do one physical count to get the baseline right
- Cost per unit — what you paid, so the system can calculate product costs accurately
- Supplier — useful for reorder planning later
This first catalogue is the most time-consuming part. But it’s a one-time investment — once the baseline is set, the system keeps it current as you buy and produce.
Step 2: Build your bills of materials
For each product you sell on Shopify, create a recipe. A recipe is just a list of exactly what goes into making one unit:
Example — Lavender Soy Candle (one unit):
- Soy wax: 200g
- Lavender fragrance oil: 15ml
- Cotton wick: 1 unit
- Glass jar (8oz): 1 unit
- Label (printed): 1 unit
That’s your bill of materials. Simple. And once it’s in the system, you never have to build it again — you just update it if your formula changes.
The recipe does three things automatically:
- Tells the system what materials to deduct when you run a production batch
- Calculates your unit cost from actual material prices (so if wax prices go up, your cost figures update too)
- Tells you how many units you can make from current materials on hand — before you even start
That last one is genuinely useful in practice. Before you commit to a production run, you can check whether you have enough supplies — and see exactly which material will run out first.
Step 3: Record production runs
When you sit down to make a batch, log it as a manufacturing run. Enter the product, the quantity you’re making, and the system handles the rest.
It deducts the materials (based on your recipe, multiplied by batch size), adds the finished goods to your inventory count, and records the production event with a timestamp and cost snapshot.
You don’t calculate anything. You don’t update a spreadsheet. You just log the run.
After the production run, your raw material inventory is accurate. Your finished goods count is accurate. And every unit has a cost attached — calculated from the actual materials used, not a static estimate you entered once.
Step 4: Push finished goods to Shopify
Once production is done and your finished goods are ready to sell, you need those counts to reach Shopify. This is where a Stock Push comes in.
Craftybase’s Stock Push feature lets you review and sync your manufacturing system’s finished goods counts directly to Shopify listings. You see a summary of what’s changed, confirm the update, and your Shopify stock counts are current — without logging into Shopify and editing each listing by hand.
If you also sell on Etsy, the same push can update both channels at once. One action, both stores updated.
Step 5: Orders flow back automatically
When Shopify orders come in, your manufacturing system imports them automatically — typically on a nightly sync. This keeps your finished goods count accurate between production runs.
More importantly: the order import maintains your COGS records. Every sale is matched to the product’s cost at the time of manufacture. By the time tax season arrives, your cost of goods sold is calculated, period by period, without any reconstruction from invoices.
The COGS problem Shopify can’t solve
Shopify has a “cost per item” field. You’ve probably noticed it. You might even have put numbers in it.
The problem is that it captures a static number — whatever you typed in when you set up the product listing. It doesn’t update when material prices change. It doesn’t account for batch-to-batch cost variation. And it certainly doesn’t connect to actual material usage records.
For a reseller buying finished goods wholesale, this is fine. The cost is the supplier invoice price. It’s stable and easy to enter.
For a maker, the cost of each product depends on:
- The current price of every material that goes into it
- How much of each material was used in production
- Labour costs (if you’re tracking time)
- Any overhead allocated to the batch
A good manufacturing system calculates this using weighted average costing — so when you buy materials at different prices over time (bulk purchase vs. top-up order), the cost calculation reflects a weighted average, not whichever price you happened to enter last.
This matters at tax time. Your COGS for Schedule C (or your country’s equivalent) needs to be accurate. An inaccurate number means you’re either over- or under-reporting your expenses — and neither is where you want to be.
For a deeper look at how this works in practice, see our guide on how to track COGS in Shopify for handmade sellers.
Connecting the manufacturing layer to Shopify
The key question makers ask: do I have to maintain two separate systems manually?
No. The point of a good manufacturing inventory system is that it syncs with Shopify, so you’re not duplicating data entry. Here’s what the connection looks like with Craftybase:
What flows from Craftybase to Shopify:
- Finished goods quantities (via Stock Push, triggered by you after production)
What flows from Shopify to Craftybase:
- Orders (automatic nightly import, so your finished goods count adjusts after sales)
What stays in Craftybase only:
- Raw materials and quantities
- Recipes and bills of materials
- Production run history
- Material costs and COGS
- Reorder planning data
You’re not doing the same work twice. Craftybase handles the manufacturing side; Shopify handles the selling side. They talk to each other so the numbers stay aligned.
A typical week in practice
Here’s what this looks like when it’s running smoothly:
Sunday evening: You check your manufacturing dashboard. You can see which materials are getting low. Soy wax is approaching your reorder threshold. You note that before you start next week.
Monday: You run a production batch — 30 Lavender Soy Candles. You log the run in Craftybase. Materials are deducted automatically. 30 units added to finished goods.
Monday afternoon: You trigger Stock Push. Shopify updates across all your listings that changed. Two minutes of review and confirm.
Tuesday–Friday: Orders come in through Shopify. Craftybase imports them overnight.
Saturday: You do a quick materials check. The system shows you what you have and what you can make. You place a soy wax order.
End of month: You pull a COGS report. Every sale has a unit cost. You can see which products are most profitable. You make a pricing note for next quarter.
No spreadsheets in that workflow. No manual stock count mid-month. No reconstructing costs from memory at year end.
What to look for when choosing a system
If you’re evaluating manufacturing inventory software to run alongside Shopify, these are the questions worth asking:
Does it handle raw materials — not just finished goods? Some “inventory for makers” tools only track products. You want one that tracks both materials and finished goods.
Does it have recipe/BOM management? The recipe is where the automation lives. Without it, you’re still doing material deductions manually.
Does it calculate COGS automatically? Look specifically for weighted average costing — not a static cost-per-item field.
Does it connect directly to Shopify? A native Shopify integration means no CSV imports, no middleware, no third-party sync service to manage.
Does it handle multiple channels? If you also sell on Etsy or plan to, a system that syncs both from a single Stock Push saves significant time.
Craftybase is built specifically for this workflow. Makers are the only customers it has — which means the features are designed for people who manufacture, not people who resell.
For an overview of how the full inventory system for handmade businesses fits together, see Shopify inventory management for handmade businesses.
Frequently Asked Questions
Can I track raw materials directly in Shopify?
No. Shopify only tracks finished products — there's no built-in feature for raw materials, ingredients, or supplies. To track what goes into your products, you need a separate manufacturing inventory system alongside Shopify. Tools like Craftybase are built for this: you log materials, define recipes for each product, record production runs, and the system automatically deducts materials and updates your finished goods count.
What is a bill of materials and how does it help Shopify makers?
A bill of materials (BOM) — sometimes called a recipe — is a precise list of every material that goes into making one unit of a product, with exact quantities. For a Shopify maker, your BOM connects your raw material inventory to your finished products: when you log a production run, the system uses the BOM to automatically deduct the correct materials and calculate your unit cost. Without a BOM, you're tracking materials and products separately with no link between them.
How do I sync inventory between my manufacturing system and Shopify?
The sync works in both directions. After completing a production run in Craftybase, you use the Stock Push feature to send updated finished goods quantities to Shopify — you review the changes and confirm in one action. Orders from Shopify then flow back to Craftybase automatically (nightly), keeping your finished goods count accurate after sales. The result is that both systems stay aligned without manual data entry in either direction.
Why doesn't Shopify's "cost per item" field work for makers?
Shopify's cost field captures a single static number — whatever you type in when setting up the product. It doesn't update when material prices change, doesn't account for batch-to-batch variation, and has no connection to actual material records. For makers, true cost of goods depends on current material prices, exact quantities used, and production labour — all of which change over time. A manufacturing system calculates this dynamically using weighted average costing, so your COGS figures stay accurate even as input costs fluctuate.
How do I know how many products I can make from materials on hand?
Once your materials are catalogued and your recipes are built, a manufacturing inventory system calculates production capacity automatically — it checks current material quantities against each product's BOM and tells you how many units you can make before any single material runs out. Makers tend to notice this feature early: before you start a production run, you already know whether you have enough supplies. No manual counting, no guessing mid-batch.
Does Craftybase work with both Shopify and Etsy at the same time?
Yes. Craftybase connects to both Shopify and Etsy simultaneously. When you run a Stock Push after production, you can update both channels at once from a single action — so your Shopify listings and your Etsy listings stay in sync without updating them separately. Orders from both channels flow back to Craftybase automatically, and COGS is tracked across all channels in one place. If you sell the same products across both platforms, this matters more than it might seem — you're not managing two separate cost systems.
