How to Set Up Cost of Goods Sold in WooCommerce (the Native Way)
Since WooCommerce added native Cost of Goods Sold (COGS) tracking, every product and variation has had a real cost field sitting in the product editor, right next to the regular price and sale price fields. It's easy to miss because nothing prompts you to fill it in, and an empty field doesn't throw an error — it just quietly reports a cost of zero, which makes every profit number built on top of it wrong.
For a small catalog, filling it in manually is realistic: open each product, enter what it actually cost you landed (unit cost plus your share of freight-in, not just the supplier's invoice price), save, done. For anything past a few dozen SKUs, or a catalog with variations, doing this by hand doesn't scale and it goes stale the moment a supplier changes their price.
The more durable approach is a rule, not a number. Instead of setting cost per product, set cost as a formula scoped to a category, tag, attribute, or even a keyword in the product title: 'everything in Category X costs 40% of its sale price,' or 'everything tagged Imported gets a flat $3 added for customs.' New products that match the rule inherit the cost automatically, and when your supplier costs shift, you update the rule once instead of every product it touches.
The other detail worth getting right early: variable products. A T-shirt in three sizes usually doesn't cost the same to produce or source in each size, but it's tempting to set one cost on the parent product and call it done. WooCommerce's COGS field supports cost per variation specifically because this matters — a lot of stores lose real margin visibility right here, on products that look uniform from the storefront but aren't uniform in the warehouse.
One more thing worth doing once you have costs in place: back-apply them. If you're setting up COGS for the first time, your last six or twelve months of orders were placed with no cost data attached, which means historical reporting looks broken until you recalculate it against your new rules. Any tool built on WooCommerce's native COGS field should be able to re-price historical orders in bulk, not just new ones going forward.