Importing Your SKU Catalog
Upload a CSV spreadsheet or sync directly from your connected Shopify store. Both methods handle catalogs of any size — even tens of thousands of SKUs — in the background.
Two ways to build your catalog
CSV import
Upload a spreadsheet with your SKU codes, names, costs, and other product data. Best for raw materials, migration from another system, or any catalog that isn’t already in Shopify.
Sync from Shopify
Pull your product catalog automatically from your connected Shopify store. Products, variants, and current inventory levels all come across. This is the standard path for Shopify merchants during onboarding.
Before you import: clean, consistent SKU codes are the foundation of a healthy catalog. If your codes are blank, duplicated, or inconsistent across channels, read Getting your SKUs ready first.
Large catalogs run in the background
Whether you have 500 SKUs or 50,000, the import always runs as a background job. You do not need to keep the page open or wait for it to finish.
Live progress bar
A progress bar shows exactly how far the import has gotten — for example, 8,000 of 25,000 imported. It updates in real time as each batch of SKUs is processed.
Leave the page and keep working
Once the import starts, you can navigate to any other part of the app or close the browser tab — the import continues without interruption. A banner across the top of the app lets you know a catalog import is in progress so you can come back to check when it suits you.
Completion summary and per-row error report
When the import finishes, a summary shows how many SKUs were created, updated, and skipped. If any rows had problems, the error count is shown alongside a downloadable per-row error report— a CSV listing every failed row with the specific reason, so you can fix and re-import just those rows.
Importing via CSV — step by step
Go to SKUs → Import. Download the template, fill it in, and upload.
Download the template
On the SKUs page, click Import in the toolbar, then Download Template. The template is a pre-formatted CSV with all supported column headers.
Fill in your data
Each row is one SKU. Every column except the match key is optional — include only what you have. Leave unused columns blank rather than removing them, and do not edit the header row.
Tip: if you are updating existing SKUs, export your current catalog first (SKUs → Export). The export includes the ID column. Using IDs is the strongest match key and prevents a mistyped SKU Code from accidentally updating the wrong record.
Tick "Allow updates to existing SKUs" if needed
When checked, rows that match an existing SKU by ID or SKU Code will overwrite only the fields you provided. Columns you leave blank are preserved on the existing record. If unchecked, matching rows are skipped entirely to protect existing data.
Upload the CSV and start the import
Drag and drop the CSV into the upload zone, or click Choose File to browse. The import starts immediately in the background. You do not need to keep the page open.
Monitor progress, then review the summary
Watch the live progress bar on the import page, or navigate away and come back later — a banner across the top of the app indicates that an import is running. When the import finishes, review the created / updated / skipped counts. If any rows failed, download the per-row error report and re-import only the corrected rows.
CSV column reference
Each row needs at least one match key: either ID (from a previous export) or SKU Code. Every other column is optional — include only what you have.
| Column | Required | Notes |
|---|---|---|
SKU Code | Yes | Your primary identifier for this product. Case-insensitive when matching existing SKUs. Required unless ID is provided. |
ID | Optional | Internal record ID from a previous catalog export. Strongest match key — use it when updating existing SKUs to avoid accidental mismatches. |
Name | Optional | Product name. Required when creating a brand-new SKU that has no existing record to update. |
Type | Optional | FINISHED_GOOD (default), RAW_MATERIAL, or INTERMEDIATE. |
UPC | Optional | 12–14 digit barcode (UPC, EAN, or GTIN). |
ASIN | Optional | Amazon Standard Identification Number. |
Cost | Optional | Standard cost in your account currency. Used for inventory valuation and reorder cost estimates. |
Reorder Point | Optional | Units on hand at which a reorder suggestion is triggered. |
Reorder Quantity | Optional | Suggested order quantity when the reorder point is reached. |
Supplier | Optional | Supplier company name, exactly as it appears on the Suppliers page. The supplier must already exist. |
Supplier Part Number | Optional | The part number your supplier uses for this product. |
Supplier Cost | Optional | The price you pay this supplier per unit. |
Bin Location | Optional | Warehouse bin or pick location code (e.g., A-01-03). Requires bin locations to be enabled in Settings → Inventory. |
Quantity | Optional | Initial on-hand quantity. Applied only when creating a new SKU — ignored when updating an existing SKU to prevent double-counting. |
Example — creating new SKUs:
SKU Code,Name,Type,Cost,Reorder Point,Reorder Quantity,Supplier WIDGET-100,Standard Widget,FINISHED_GOOD,4.75,50,200,Acme Supplier GADGET-200,Pro Gadget,FINISHED_GOOD,12.50,25,100,Acme Supplier PART-300,Mounting Bracket,RAW_MATERIAL,0.85,500,2000,Parts Co
Example — updating costs on existing SKUs (using exported IDs):
ID,SKU Code,Cost sku_abc123,WIDGET-100,5.25 sku_def456,GADGET-200,13.00
Updating existing SKUs
The import is not limited to first-time setup. Re-import at any time to update fields across your catalog in bulk.
Only provided columns are changed. A CSV with only ID and Cost updates costs and leaves everything else — names, UPCs, reorder points, supplier links, bin locations — untouched.
ID is the strongest match key. Export your catalog first (SKUs → Export) to get pre-populated IDs. Using IDs prevents a mistyped SKU Code from updating the wrong record.
You can rename SKU codes via import. Include both the ID column and a new value in the SKU Code column. Channel aliases, BOMs, purchase orders, and all history stay linked to the renamed SKU.
The Quantity column is only applied when creating a brand-new SKU. It is ignored when updating an existing SKU to prevent double-counting. To correct quantities on existing SKUs, use the inventory import or the Adjust Stock dialog instead.
Handling import errors
When the import finishes, any rows that could not be processed appear in the error count on the summary screen.
Download the error report. A CSV listing every failed row with the specific reason — for example, “Name is required when creating a new SKU,” “Supplier not found,” or “SKU Code conflicts with an existing record.” Fix the problems directly in the error report CSV and re-import it; only the corrected rows need to be re-submitted.
Rows that succeeded are not re-processed. Re-importing the error report only affects the rows you corrected. SKUs that were already created or updated are matched and either updated or skipped — no duplication.
Common error causes: a Supplier name that doesn’t exactly match what is on the Suppliers page (create the supplier first, then re-import); a missing Name on a brand-new SKU; a Quantity value that isn’t a whole number; or a SKU Code that conflicts with a different existing SKU.
Ready to get started? Try Carpe Inventory IQ free for 14 days.