SKUs and Inventory in Your Catalog CSV

Published 24 August 2026· 8 min read

Maintained by · Editorial and testing standards

SKUs identify products; inventory says how many you have. Both sound simple and both break catalogs when mishandled. A duplicated SKU silently overwrites a product on import. A stock count typed as "9,999 units" arrives as text or as the number 9. This guide explains how SKUs and inventory work in the Hyperzod CSV structure and how CSV Pilot keeps them clean.

SKUs: one product, one code

A SKU is a unique code for tracking a product. The rules that matter in a CSV:

  • Unique — two rows with the same SKU overwrite each other on import. One product silently replaces another; no error tells you which survived.
  • Unique case-insensitively — SKU-001 and sku-001 count as the same code. Validation compares them case-insensitively.
  • Product-level only — the Hyperzod CSV has PRODUCT.SKU and no variant SKU column. When converting from Shopify, the Variant SKU value carries over to the product SKU, not to individual variants.
  • Plain text — a SKU like 00123 must keep its leading zeros, which means it must never pass through a spreadsheet that treats it as a number. Excel's default behavior strips those zeros on open and save.
  • Consistent pattern — PIZ-MARG, PIZ-PEP beats a random mix of formats. Patterns make bulk operations possible: "add NEW- in front of every SKU" only works when the SKUs are structured.

When you generate a catalog with CSV Pilot, you can ask for SKUs explicitly: "create 10 products with SKUs in the pattern CAT-001". When converting from Shopify, the first Variant SKU on a product carries over as the product SKU.

Inventory: numbers that mean business

Inventory is the stock quantity in the PRODUCT.INVENTORY column — a plain whole number. Three details trip people up:

  • Empty means untracked — an empty inventory cell keeps inventory tracking off for the product; a number enables it.
  • Variant inventory works differently — inside an option group's VARIANTS cell, a count is only written when it is greater than zero. Empty keeps the per-variant quantity stepper off rather than claiming zero stock.
  • No symbols or separators — 9999, not 9,999 or 9999 units.

DeliverLogic RDS exports carry a Quantity column; CSV Pilot copies its value into the product inventory as-is. A 9999 there is just a number, not a special "unlimited" sentinel in Hyperzod.

Managing both at once

For a catalog-wide update, describe the rule:

  • "Set inventory to 100 for every product."
  • "Set inventory to 0 for products in the Discontinued category."
  • "Add 'NEW-' in front of every SKU."
  • "Set the cost price of all Beverages to 40% of the selling price."

CSV Pilot applies the change to the matching rows and shows the result in the preview. Validation flags duplicate SKUs before export, which catches copy-paste duplicates while you can still fix them.

The checklist before import

  • Every SKU is unique (case-insensitively) and keeps its leading zeros.
  • Every inventory cell that matters has an explicit number — or is left empty on purpose to keep tracking off.
  • Products you no longer sell are marked inactive rather than left at zero stock — unless zero is the truth.
  • Variant prices are deltas over the product base price, never full prices.

Why these columns cause silent failures

Name and price errors are visible — a wrong name shows up immediately. SKU and inventory errors are invisible until they matter: the duplicate SKU product is missing from the store, the zero-stock item is still orderable. That is why both columns deserve a validation pass before every import, and why CSV Pilot runs those checks continuously rather than at the end.

SKUs and inventory are the columns that look the most boring and cause the most silent failures. Let the preview and validation catch the problems before Hyperzod sees them.

Try CSV Pilot

Create, edit and convert CSV files with AI — free, no signup.

Open CSV Pilot