How to track COGS on Shopify (cost of goods sold, done right)
Cost of goods sold (COGS) is the single biggest line between a sale and profit — and on Shopify it's blank until you fill it in. Get it wrong and every margin number downstream is wrong too. Here's how to track it properly.
Start with Shopify's "Cost per item"
Every product variant in Shopify has a Cost per item field (Products → variant → Pricing). Fill it in for every variant. Once it's there, Shopify can show a basic margin, and any profit tool you connect can compute real gross margin per order.
The catch: it's manual, it's per variant, and Shopify doesn't remind you. New variants ship with it blank, so coverage quietly drops over time.
Use landed cost, not just the supplier price
The "cost" of a product isn't only what you paid the supplier. Real landed cost includes:
- The unit price from the supplier
- Inbound shipping and duties to get it to you
- Any per-unit packaging or assembly
If you only record the supplier price, you'll overstate margin by whatever it costs to actually land the goods.
Handle the tricky cases
- Currency (FX). If you buy in USD and sell in EUR, the cost needs converting at a sensible rate, or your margin swings with the exchange rate.
- Bundles and kits. A "3-pack" isn't one cost — it's three of a component. If you sell bundles, the COGS should roll up from the parts.
- Cost changes over time. A supplier price rise mid-quarter means orders before and after should use different costs. A single static number quietly misstates both.
Keep it accurate without the busywork
Maintaining all of this by hand — landed cost, FX, bundles, date changes, new variants — is where it falls apart. Margeny reads your Shopify costs, lets you override or bulk-upload them, supports date-versioned costs, FX and bundles, and flags any variant still missing a cost so your contribution margin stays honest.
Get COGS right and everything above it — margin, profit after ads, which products to scale — finally tells the truth.
Know your real profit this week
Connect your store in minutes. 14-day free trial, no card required.