DEV Community

王磊
王磊

Posted on

Shopify CSV Cost per Item: Audit It Before You Create a Purchase Order

A native Shopify Purchase Order can leave line-item costs blank even when a variant already has a Cost per item value. That is a workflow gap, not necessarily a bad CSV.

A CSV can still help you prepare the numbers safely, but it cannot reach into a native Purchase Order and fill its lines. Treat the CSV step as a controlled cost review before you create or receive the PO.

1. Start with a fresh product export

Keep the original export unchanged. Work from a copy that includes the fields you need to identify each variant and compare the economics:

  • Handle
  • Title
  • Variant SKU
  • Variant Price
  • Cost per item

If your catalog uses barcodes or another stable identity, keep that reference too. Do not delete the baseline: it is the evidence you need if a later import changes more rows than intended.

2. Check identity before checking the numbers

A cost value is only useful when it is attached to the right variant. Before reviewing costs:

  1. Look for blank or repeated identifiers.
  2. Confirm that the SKU or other identity maps to one intended variant.
  3. Keep option values when several variants share a product Handle.
  4. Separate a supplier SKU from Shopify's own Variant SKU instead of silently treating them as interchangeable.

This prevents a clean-looking cost column from being applied to the wrong size, color, or pack.

3. Review Cost per item beside Variant Price

For each variant, check:

  • Cost per item is present and numeric.
  • Variant Price is present and numeric.
  • Cost is lower than price when a sale is expected to be profitable.
  • A blank, zero, or unusually large value is reviewed instead of being accepted automatically.
  • A supplier cost increase does not quietly turn a previously healthy margin into a loss.

The Shopify product CSV margin audit can calculate the margin amount and percentage locally from those columns and surface missing cost, invalid price, and low-margin rows for review.

4. Separate standing cost from the PO cost

Cost per item is a product-level reference. A Purchase Order is a specific supplier agreement at a specific time. If two suppliers quote different prices, keep the agreed PO cost in your purchasing worksheet and decide deliberately whether the standing product cost should change.

A practical worksheet can include:

  • Supplier and supplier SKU
  • Shopify Variant SKU
  • Ordered quantity and location
  • Agreed unit cost and currency
  • Freight, duty, or other adjustments
  • The date and reason for any standing-cost change

This preserves the historical price you actually agreed to instead of rewriting it later when a supplier sends a new list.

5. Test the smallest safe change

If you need to update product costs through Shopify's CSV workflow, use one representative product or a very small variant batch first. Compare the result with the original export, then expand only after the identifiers and cost values are confirmed.

Do not assume that a successful product CSV import means the native Purchase Order was populated. Verify the PO lines separately in Shopify and record any manual cost entry that remains.

What this workflow does not do

A browser-side CSV review cannot access a merchant's admin, read native Purchase Orders, call the Admin API, or write costs back automatically. It prepares evidence and a safer review path; the final Shopify import and PO entry remain manual actions.

That boundary is useful: it keeps supplier and store data local, makes the cost decision explicit, and avoids presenting a worksheet as an integration that Shopify does not expose.

Top comments (0)