Start with the file itself
Most failed imports come down to the file, not the products in it. Shopify reads a CSV file saved as UTF-8 and separated by commas, with the headers in the first row. The headers have to match Shopify's template word for word, including capitals and spaces. A misspelled header isn't read as the column you meant, so check them first when a field comes in empty on every product.
If you build the file in Excel, save it as CSV UTF-8. A plain CSV from Excel can garble accented letters and curly quotes.
Photos that don't come in
Shopify copies each photo from the link in the file while the import runs. The link has to be a public https address that opens the image itself, with no sign-in and no password. A Google Drive or Dropbox page that shows the photo isn't enough.
A product with several photos takes one row per photo. The first row carries the product. Each further row carries only the URL handle, the photo link, its position and its alt text. If those extra rows have a different handle from the product, their photos won't attach to it.
Shopify takes up to 250 photos per product. Once the import finishes, it keeps its own copies, so the original links only need to work until then.
Products that merge or split
Shopify uses the URL handle to tell products apart. Rows with the same handle are treated as the same product. So two different items with the same handle merge into one, and a product whose rows have slightly different handles splits into several.
Handles should use only letters, numbers and dashes, with no spaces. Building them from the title plus a stock or lot number keeps them unique without much thought.
Prices and status
- Price and Compare-at price take a plain number, like 450.00. No currency sign and no thousands separator. A blank price comes in as 0.00, so check that one before you publish.
- Status takes active, draft or archived. If the column is there, every product row needs a value.
- Published on online store takes true or false.
Import as drafts first
Set Status to draft and Published on online store to false for every product in the file. Everything comes in hidden, so you can check titles, prices and photos in the Shopify admin and publish when you're happy. If something went wrong, you fix it there or delete the drafts and import again, and no shopper ever saw it.
Where to go next
Cataloger writes this file from your photos, with every product as a draft and the price from your own rule, and checks these limits before you download. See every column it writes, or read how it works for online stores.