Your first cleanup
A cleanup is the four-stage flow CSVwise uses to turn a messy CSV into a Shopify-ready CSV. This article walks through one full cleanup end to end so you know what to expect.
The four stages
- Upload. Drop your CSV into the app or click to browse.
- Review columns. Match your CSV's columns to Shopify's standard product columns. AI does the first pass for you; you adjust if needed.
- Fix issues. Toggle auto-fixes on or off, see what gets changed, and remove rows that can't be fixed.
- Download. Get the cleaned CSV and import it through Shopify's built-in importer.
The whole flow usually takes 2–5 minutes for a typical file.
Step 1: Upload
Open CSVwise from your Shopify admin. The home screen shows a drop zone.
Drop your CSV onto the drop zone, or click to pick a file from your computer. CSVwise reads the file directly in your browser. At this upload stage, nothing leaves your machine. (Later, the AI column-mapping step, which runs only after you click Suggest column mapping with AI and confirm, sends only your column headers and up to 5 sample rows to our AI provider, never the full file.)
Limits:
- File size: 25 MB max.
- Row count: 1,500 on Free, 5,000 on Pro, 50,000 on Studio. CSVwise checks this before anything else. A file over the limit is rejected with no credit charged. See Catalog size limits.
- Shopify's own product importer accepts CSV files up to 15 MB, which is a smaller ceiling than CSVwise's 25 MB. A description-heavy file near the Studio row cap can clear CSVwise and still be too large for Shopify.
If the file reads cleanly, you'll see a preview of the first few rows. Confirm it looks right, then continue to Stage 2.
Step 2: Review columns
On Stage 2, click Suggest column mapping with AI. CSVwise asks you to confirm before it starts:
- On Free: "This will use 1 of your N remaining free cleanups." Confirm with Yes, use 1 cleanup (N-1 left after). This is the moment the credit is spent, not the download. If the AI step fails, the credit is restored automatically.
- On Pro or Studio: a plain Start AI column mapping? with Yes, start.
Not yet backs out with nothing spent.
CSVwise then sends your column names and the first 5 data rows to Claude via Vercel AI Gateway for column matching. Routing is pinned to zero-data-retention hosts of the same model: Anthropic first, then Amazon Bedrock, then Google Vertex. Your data is never routed to any other provider. Claude suggests a Shopify column for each of your source columns (Title, Handle, Vendor, Variant Price, and so on) along with a confidence score and a one-sentence explanation.
Review each row:
- High confidence: usually correct. Glance and move on.
- Medium confidence: read the explanation and adjust if needed.
- Low confidence: the suggestion is a guess. Review carefully before continuing.
- No match: the AI couldn't find a Shopify column for that source column. Columns marked "No match" pass through to your cleaned CSV unchanged unless you map them manually.
When you're satisfied, click Continue to fix issues. If the mapping is badly off, Re-analyze with AI runs it again (it warns you first if that would overwrite manual edits you've made).
Privacy note. Only the column names and 5 sample rows are sent through Vercel AI Gateway. The full contents of your file are never sent. The request is made with zero data retention and is routed only to Anthropic, Amazon Bedrock, or Google Vertex, which process it under commercial API terms that don't retain inputs for model training.
Step 3: Fix issues
CSVwise scans every row in your file, applies the auto-fixes that are turned on, and flags any problems that need your attention.
You'll see two panels:
- Auto-fix options: 13 toggles grouped by category. All default to ON because each one prevents a Shopify import rejection. You can turn any of them off if your data is intentionally formatted differently. See The 13 auto-fixes explained.
- Problem list: everything CSVwise found, in four sections. Store matches (Pro and Studio, rows that match products you already sell), then Errors, then Warnings, then Notes. Each section says up front what happens to the rows inside it. See Errors, warnings, and notes.
Below the panels is the live preview, a table showing the cleaned output as it will appear in your downloaded CSV. Cells changed by auto-fixes are highlighted. Toggle a fix and the preview updates instantly, so you can see what each change does. See Reading the live preview.
If a row has problems CSVwise can't fix, you have three options:
- Fix the source. Open the CSV in your spreadsheet app, correct the row, re-upload.
- Remove the row from the cleaned CSV. Use the per-card button, the bulk Remove all N error rows from the cleaned CSV action above the error cards, or the Remove button on the row in the preview. See Removing rows from the cleaned CSV.
- Override the block. Advanced… next to Generate offers Download anyway (with errors), plus Reset auto-fix options to defaults.
Warnings and notes never block you. Once the errors are dealt with, Generate is unblocked.
Step 4: Download
Click Generate clean CSV at the bottom of Stage 3. CSVwise builds the final file and your browser starts the download. The filename adds -csvwise-clean to your original filename.
If you marked any rows for removal, CSVwise confirms first: "Remove N rows and download?" It tells you how many rows will be left out and how many will be cleaned and exported, and reminds you that your source file is unchanged. Click Remove rows and download to continue. (If you overrode the error block via Advanced, the file is named -csvwise-with-errors instead.)
Stage 4 confirms what was generated: the filename, the row count, and the column count. If your browser's save dialog was canceled, Download again re-triggers the save, and Process another file starts a fresh cleanup.
Now import the cleaned file through Shopify's built-in importer:
- Click Open Shopify Products → Import. It opens the Products page in a new tab so you can keep the CSVwise summary in view.
- Click Import in the top-right.
- Select the downloaded CSV.
- Decide about Overwrite products with matching handles. Left unticked (the default), Shopify skips any row whose handle already exists. Ticked, those products are updated. If CSVwise showed you a Store matches section, this checkbox is the one that decides what happens to those rows.
- Review Shopify's preview screen and click Upload and continue.
Shopify will import the products. Because CSVwise has already cleaned the file, the import should succeed without the usual "row X failed: missing handle / invalid weight unit / unrecognized boolean" errors.