Skip to content

Import a CSV

Import and export brings in suppliers, supplier products, purchase orders and adjustment history from a spreadsheet saved as a CSV file. Importing is included on every plan.

Your products and stock levels always come from Shopify, so there’s no product import.

Each kind of file has a template with every column Shelfcast reads and two made-up example rows. Replace the examples with your own rows, and delete any columns you don’t need.

To bring in Template How to fill it in
Suppliers, with contact details, currency and lead time Suppliers template Suppliers CSV
Which supplier sells which product, and on what terms Supplier products template Supplier products CSV
Purchase orders you’ve already placed or received Purchase orders template Purchase orders CSV
A record of past stock changes Adjustment history template Adjustment history CSV

The same templates are in Shelfcast. Choose what you’re importing, then press Download template. How to fill it in opens that file’s page here.

  • Wait for your first sync to finish. Supplier products, purchase orders and adjustments are matched to your products and locations, which Shelfcast reads from Shopify when you install it. Home shows Catalog synced when it’s done.
  • Import in this order: suppliers, then supplier products, then purchase orders and adjustments.
  • Spell each supplier’s name the same way in every file. Supplier products and purchase orders files name their supplier, and a name Shelfcast doesn’t recognize adds a new supplier. Names are matched exactly apart from capital letters, so Acme Co and Acme Co. become two suppliers.

Switching from Stocky? → Moving from Stocky

  1. Go to Import and export.
  2. Under What are you importing?, choose Suppliers, Supplier products, Purchase orders or Adjustment history.
  3. Drop your file on CSV file, or click to choose it.
  4. Press Import. You’ll see “Import started”.

The import runs in the background. Recent imports shows its progress: Queued, Importing, then Imported or Failed. It also shows how many rows came in, such as “480 of 500 rows imported”, and who started it.

  • A .csv or .txt file, up to 20 MB. Long files are fine. Shelfcast works through them in batches.
  • A header row first, naming each column. Columns can be in any order.
  • The required columns, and only those. Each kind of file needs one to three columns, listed on its page. Every other column is optional. Delete it, or keep it and leave cells blank.
  • Column names Shelfcast recognizes. Each page lists the names it accepts for every column, such as Cost, Unit cost or Cost price. Capital letters don’t matter, and underscores, hyphens, dots, #, brackets and slashes count as spaces, so PO #, po_number and PO Number all work. Columns Shelfcast doesn’t recognize are ignored. If two columns could fill the same field, the name listed first on the page wins.
  • Commas, semicolons or tabs between columns. Shelfcast uses whichever the header row has most of.
  • UTF-8 text, ideally. Files from older versions of Excel, saved in the Windows encoding, are read too, so accented letters come through either way.

If a required column is missing, Shelfcast refuses the file when you press Import, before anything is imported: “The file has no column for: PO number, Supplier, Quantity ordered. Check that you chose the right kind of import, or download the template to see the column names.” It usually means the wrong kind is chosen under What are you importing?, or a column needs renaming.

  • Blank cells are fine in optional columns. They never skip a row, and never clear what’s already in Shelfcast.
  • Leave a cell empty rather than writing N/A, - or TBC. Those are read as values, so in a number, date or email column they skip the row.
  • Spaces at the start or end of a cell are ignored.
  • Whole numbers (quantities, lead times, pack sizes) can have thousands separators: 1,250 and 1.250 both mean one thousand two hundred and fifty. Words after the number are ignored, so 14 days reads as 14. A fraction such as 2.5 skips the row.
  • Costs and money amounts can have a currency sign, and a comma or point for decimals: $4.50, 4,50, 1,234.50 and 1.234,50 all work. The last comma or point is taken as the decimal point.
  • Dates are read in your store’s timezone. Year, month, day always works, with an optional time: 2026-01-15 or 2026-01-15 09:30.

Other date formats are read like this:

Written as Read as
01/15/2026 or 1/15/26 15 January 2026. Dates with slashes are read month first.
15.01.2026 or 15-01-2026 15 January 2026. Dates with dots or dashes are read day first.
Jan 15 2026 or 15 January 2026 15 January 2026
15/01/2026 Skipped, since there’s no month 15
  • Excel: File → Save As (or Save a Copy), and choose CSV UTF-8 (Comma delimited) (.csv). Excel saves only the sheet you’re on.
  • Google Sheets: File → Download → Comma Separated Values (.csv). It downloads only the sheet you’re on.
  • Numbers: File → Export To → CSV…. Under Advanced Options, choose Unicode (UTF-8). If the spreadsheet has more than one table, each is exported as its own file.

Keeping leading zeros in SKUs and barcodes

Section titled “Keeping leading zeros in SKUs and barcodes”

Spreadsheets treat a code like 0123456789012 as a number. They drop the leading zero, and can show long codes as 1.23457E+12. Shelfcast then can’t find the product, and skips the row with “No product in Shopify has the SKU or barcode …”.

  • Excel: don’t open the CSV by double-clicking it. Use Data → From Text/CSV, choose the file, set Data Type Detection to Do not detect data types, then press Load. When you type or paste codes, format the columns as Text first (Format Cells → Text).
  • Google Sheets: open a CSV with File → Import, and untick Convert text to numbers, dates, and formulas. Before you paste codes, select the columns and choose Format → Number → Plain text.
  • Numbers: select the columns and, in the Format sidebar’s Cell tab, set Data Format to Text before you paste.

The same goes for ZIP and postal codes that start with 0.

  • Excel: select the column, choose Format Cells → Custom, and type yyyy-mm-dd.
  • Google Sheets: select the column, choose Format → Number → Custom number format, and type yyyy-mm-dd.
  • Numbers: select the column and, in the Format sidebar’s Cell tab, choose a date format that spells out the month, such as January 5, 2026.

Saving as CSV handles these for you. The spreadsheet wraps any cell with a comma, quote or line break in double quotes. If you write a CSV by hand, do the same, as in "Unit 2, Harbour Road", and double any quote inside a cell: "The ""blue"" one".

If any rows were skipped, Recent imports says how many. Press rows skipped to see why. Each reason is listed once, with how many rows it covers and the first few row numbers, such as “211 rows, such as row 4: No product in Shopify has the SKU or barcode 12345678905. …” followed by “Rows 4, 9, 15 and 208 more”. Row numbers match your spreadsheet, with the header as row 1. The messages for each kind of file are listed on its page.

To fix them, press Download skipped rows. You get a CSV of just the rows that didn’t come in, with all their columns as you uploaded them, and an Error column saying what to fix on each row. Fix the rows, then import that file the same way. Shelfcast ignores the Error column, so there’s no need to delete it, and only the fixed rows come in, so nothing is imported twice.

Skipped rows are kept for 30 days, then deleted, and the download link goes with them. After that, fix the rows in your own spreadsheet and import again:

  • Suppliers and supplier products: import the whole file again. Rows that came in the first time are updated, not added twice.
  • Purchase orders: import the whole file again. An order with a problem on any row is left out whole, and orders that came in the first time are skipped as already in Shelfcast. So the fixed orders come in, and nothing is duplicated.
  • Adjustment history: import only the rows that were skipped. There’s no duplicate check, so rows imported twice show up twice in History.

The uploaded file itself is deleted once the import finishes.

Stuck on a file? Email [email protected] with the file attached. A person reads it.