Keep the Shopify error and the source file together
This guide is for tracing a failed Shopify upload back to the exported product file. The interactive checker runs local checks; the general quoting guide explains CSV grammar. Here, keep the exact Shopify message, the original export, its export settings, and the time of the attempted upload before changing anything. Do not post a full product file containing private data in a public support thread.
Start with encoding
Shopify product CSV imports require UTF-8. If the file is not valid UTF-8, convert it from the confirmed source encoding before debugging quote placement. Curly or legacy-encoded punctuation can otherwise confuse the diagnosis.
Check whether the file is valid UTF-8 →
Then inspect the reported line
Look for a field containing a comma, line break, or double quote. A value such as Blue, Large needs quotes if comma is the delimiter.
SKU-1,"Blue, Large",19.99Missing closing quote
SKU-2,"Blue Shirt,19.99
SKU-3,Red Shirt,24.99The parser can treat the next physical line as part of the same field. One missing quote can therefore create several later errors.
Stray quote
SKU-4,Blue 12" Shirt,29.99If the field is not quoted correctly, a literal quote can violate the CSV grammar expected by the importer. Do not remove it until you confirm whether it belongs in the product text.
Curly quotes are not CSV delimiter quotes
Word processors and smart-quote features can turn " into typographic characters such as opening and closing curly quotes. Shopify’s troubleshooting documentation specifically calls out quote problems and UTF-8 requirements. Re-exporting from a clean spreadsheet or text workflow may be safer than manual mass replacement.
Why the exact line number can be confusing
A multiline quoted field means a physical text line is not always the same thing as a logical CSV record. If a quote opens on one line and never closes, the error may be reported later than the character that caused it. Inspect surrounding lines too.
Safe debugging sequence
- Keep the original file.
- Confirm UTF-8.
- Confirm comma delimiter.
- Find the first broken quote state.
- Inspect the raw row and the row before it.
- Correct only the quote or field boundary you can prove is wrong.
- Re-run the Shopify preflight checker.
- Test a small import before a full product upload.
Choose the next action from the evidence
- Auto mode cannot confirm UTF-8
- Stop quote editing. Confirm the source encoding with the exporter, or export again as UTF-8. A controlled encoding case shows why CSVFixLab blocks a guessed conversion.
- A quote error appears together with a row-width error
- Trace the first unfinished quoted field in the raw text, including nearby physical lines. Do not add empty columns to every later row: a quote can swallow those rows into one field.
- The local checks pass but Shopify still rejects the upload
- Keep the Shopify message. A local pass does not reproduce Shopify's importer or its store state. Check the latest product template and the destination's requirements; review other Shopify import failures if the message concerns headers, product values, images, or references.
Reproduce the quote failure without using a store
Download the broken-quote fixture and inspect it with the repair tool. In the published worker run, the unfinished field produces MissingQuotes and column-count, both at parsed record 2, and blocks serialization. The report contains 1 data record and 3 columns. This deliberately malformed three-column file is a generic parser example, not a Shopify product template.
The complete case supplies the raw input, a manually corrected synthetic example, hashes, and the recheck result. That example parses as 2 data records with 0 reported issues. It demonstrates how one missing quote can change parsing; it does not establish that Shopify will accept a product upload. CSVFixLab record numbers include the header and are not a translation of Shopify's physical line number.
Verify the edited product file before a live import
- Compare the edited field with the authoritative source. Preserve literal quotes that belong to the product description.
- Recheck the full edited CSV locally, then compare headers, record counts, handles, SKUs, and affected values with the source. A clean syntax report cannot prove those values are correct.
- If a real import test is appropriate, use a controlled store or a reviewed small sample and review Shopify's update options first. A small import can still change existing products.
- Record the file version and actual Shopify outcome. If it fails again, investigate that new message instead of repeating a bulk quote replacement.
No Shopify store import was performed for the fixtures cited here. Store acceptance remains a separate test.
Shopify official troubleshooting →