The Catalog (/products/catalog) is where you set per-SKU cost, stock, and tracking settings. Ecom Forward auto-syncs your Shopify products nightly — you don't manage the catalog itself. You just layer operational metadata on top: COGS, low-stock thresholds, notes, and flags.
The table
- Product — title, vendor, product type.
- Inventory — live from Shopify.
- Units 30d / 60d — velocity indicators.
- Last sold — date of last order containing this SKU (or “None” in gray).
- Avg sell 30d — computed from revenue/units in the last 30 days.
- COGS tier-1 — your per-unit cost. Click to edit.
- Margin % — live, computed from avg sell price and tier-1 COGS.
- Days left — estimated stock runway.
- D/S — dropshipper flag (affects stock alerts).
- Low stock — your threshold.
- Notes — free text, team-visible.
Setting COGS
COGS is what lets the P&L compute real profit. Without it, your gross profit line is revenue-only.
- Click a product's COGS tier-1 cell.
- Type your unit cost in your COGS currency (defaults to store currency).
- Press Enter to commit. The margin column updates immediately.
For products with many SKUs, use the Quick filter: Needs COGS to find every product still without a value.
Tiered COGS for bundles and multi-unit SKUs
Some products cost less per unit when bought in bulk — either because you buy COGS in volume or because the product is a bundle. Open the product from the Catalog and set:
- Tier 1 — default unit cost.
- Tier 2 — kicks in when the customer orders N+ units.
- Tier 3 — kicks in for even larger orders.
- Units per order — for bundle products where one order = N SKU units.
When COGS is recomputed (overnight or on-demand), Ecom Forward picks the right tier per order based on units sold.
Pulling cost straight from Shopify
If you already keep a Cost per item on your Shopify variants, you don't have to retype it. In single-store view, turn on Use cost from Shopify at the top of the Catalog. Each sync then fills any blank cost from Shopify — and it never overwrites a cost you typed yourself. A typed cost always wins.
Cost per variant (sizes / colours)
When sizes or colours cost you different amounts, a single product-level cost isn't accurate. Click Set per variant under the COGS cell (or on the product page) and type a cost for each variant. From then on, COGS uses the exact per-variant cost for the units actually sold.
Note
Tracking shipping separately from cost
By default, your fulfilment shipping cost lives inside COGS. If you'd rather see it on its own line, flip Track shipping separately in Store Settings. A Shippingcolumn then appears in the Catalog where you set a per-unit shipping cost per product, exactly like COGS. Ecom Forward sums it into a per-day shipping figure and shows it as its own line on Daily Profit and the P&L. Because we already know what the customer paid for shipping, free-shipping-over-X nets out automatically.
Break-even ROAS target
Set a break-even ROAS target per product (a column in the Catalog) — the ROAS you need on that product's ads to come out ahead. Ford reads it: if a product's real break-even (from its margin) is higher than the target you set, he'll flag that you're likely losing money on its ads unless you raise the price or cut the cost. See unit economics for what break-even ROAS means.
Inventory and stock alerts
Inventory levels auto-sync nightly from Shopify. Set a low-stock threshold per product so the restock signal fires at the right time for your business.
- Days-of-stock column estimates how long current inventory will last at the 30-day velocity.
- Restock signal fires at <14 days (watchout) and <7 days (alert).
- No-stock-tracking flag — for digital products or infinite-inventory items that shouldn't trigger stock alerts.
- Dropshipper (D/S) flag — same idea: drop-shipped SKUs don't have local stock, so stock alerts are disabled.
Bulk editing
For stores with hundreds of SKUs, bulk editing is essential.
- Check the box on each row you want to edit (or the header box to select all filtered rows).
- A sticky bulk action bar appears at the bottom.
- Apply: Tier-1 COGS, low-stock threshold, D/S toggle, or notes.
- Click Apply to N products.
Tip
Quick filters
- All
- Needs COGS — products without tier-1 COGS set.
- Dead stock — products with inventory but zero 60-day sales.
- Low margin — avg sell price vs COGS margin <10%.
- New in Shopify — products created in the last 7 days.
- Dropshipper — flagged as D/S.
After editing COGS historically
If you update a product's COGS and want past Performance rows to reflect the new value, click ⟳ Recompute COGS on the Performance page header. This rebuilds every row where COGS is still auto-derived.
Note