How to check a Shopify product CSV before import
Check variant rows, SKU and barcode columns, duplicate values, formatting, and live-catalog collisions before a bulk product update reaches Shopify.
A product CSV can be syntactically valid and still introduce identifiers that collide with the live catalog. The safest time to find that problem is before the import changes hundreds of variants.
Shopify product CSVs use variant-level SKU and barcode columns. Those fields depend on the row identifying the correct product and variant, so identifier review cannot be separated from handles, option values, and the intended import mode.
Decide whether the file creates or updates products
For an update, export the current Shopify products and preserve the columns needed to identify each target. Do not assemble a minimal spreadsheet by deleting fields until the dependency between variant columns is understood. Shopify warns that included columns can affect related product data during import.
Keep an untouched export as a rollback reference. Work on a copy, record who owns the source values, and split unrelated jobs. A price update does not need to become a simultaneous SKU cleanup unless both changes have been reviewed together.
Check the identifier columns as a set
Confirm the expected headers are present and inspect every non-empty SKU and barcode for edge whitespace, control characters, unexpected symbols, and spreadsheet transformations. Long numeric barcodes are especially vulnerable to scientific notation or dropped leading zeros when opened with the wrong column type.
Group exact and normalized duplicates within the file. Then compare proposed values with the live catalog. A value appearing once in the CSV may still collide with a variant untouched by the import.
A file-only duplicate check is incomplete. The preflight needs both the proposed rows and a recent catalog snapshot to identify collisions at the boundary between them.
Treat blanks according to the import's intent
A blank barcode can be legitimate for a product without an assigned GTIN. A blank SKU may be unacceptable for a custom fulfillment service or warehouse workflow. Apply that business rule to the relevant rows instead of filling every empty cell with generated data.
Also distinguish an intentionally blank field from a missing column. Including a field in an update can carry a different meaning from omitting it. Review Shopify's current CSV instructions for the exact import you are about to perform.
Import a controlled sample and reconcile the result
Correct findings by CSV row number, save the file using Shopify's expected encoding and delimiters, and test a small representative subset when the workflow permits. Include a product with variants, a proposed identifier change, and a row expected to remain untouched.
After the full import, export or scan the catalog again. Compare the stored SKU and barcode values with the approved file, then test the downstream system that consumes them. Import success confirms that Shopify accepted the file; reconciliation confirms that the intended identifiers survived the entire workflow.