About this review
This report reviews one product file before it is imported into
Shopify. It was produced by automated checks and is meant to be read together with your operator's
review notes.
- Confirmed file error the file itself breaks a documented Shopify rule or is
objectively invalid. Fix before importing.
- Import risk - needs review a documented risk whose effect depends on your store or
on how you import. A person must decide.
- Cannot be verified from this file cannot be decided from this file alone (for example
without a current export of your store).
This review did not connect to Shopify and did not import anything. It cannot
guarantee that Shopify will accept the file or that an import will have no side effects, and it does
not replace a person's review before import.
Summary
| Review order | What it covers | Open items |
|---|
| Priority 1 | Potentially destructive or import-blocking | 1 |
| Priority 2 | Missing identifiers and ambiguous variants | 0 |
| Priority 3 | Pricing and inventory | 0 |
| Priority 4 | Other data quality improvements | 0 |
Every row of the file is accounted for in the delivered files
(RECONCILED); see “Reconciliation”
below. Original file SHA-256: 98cd07f7576a39b0566faf3774d7661971778a783b2dd0947516db846e5373e3
File type and assumptions
| Detected file type | Shopify product CSV 9 of 9 column names match Shopify's product CSV template; Title and URL handle present. Detection uses the header row only; it is not a validation by Shopify. |
| Column names | current Shopify template names |
| Import setting assumed | Operator recorded: the import will not overwrite; products with existing handles are ignored by Shopify. |
| Current store export compared | Not supplied – changes to existing products, options and variants were not checked. |
| Products in this file | 2 products (2 with several variants), 4 variant rows, 0 image-only rows. Repeated handles on variant and image rows are normal and are not treated as duplicates. |
Review before import (1 open items)
Work from priority 1 down. Row numbers are the rows of the original file as opened
in a spreadsheet program (header = row 1); “—” means the finding is
about a whole column or the whole file. Nothing listed here was changed automatically.
Priority 1 – Potentially destructive or import-blocking (1)
| Row | Column | Confidence | Finding and why it was flagged | Original value | Safe action |
|---|
| — | — | Cannot be verified from this file | No current store export supplied No current product export from the store was supplied, so changes to existing option names, option values and variants were not checked. Shopify documents that changing option values deletes and recreates variant IDs. | (empty) | Ask the customer for a fresh product CSV export from Shopify admin and re-run the review with it. |
Priority 2 – Missing identifiers and ambiguous variants (0)
None.
Priority 3 – Pricing and inventory (0)
None.
Priority 4 – Other data quality improvements (0)
None.
Checks performed and not performed
Performed
- File type detection (Shopify product CSV, inventory CSV, other spreadsheet) from the header row
- Shopify column names (current and legacy template names): required, misspelled, differently spelled, duplicated and unrecognised columns
- URL handles: missing, invalid characters, a product's rows split up, rows that cannot be linked to a product (repeated handles for variants and images are allowed)
- Titles and product details across a product's rows (blank product columns on variant and image rows are allowed)
- Options and variants: missing option names or values, duplicate option names, duplicate variants
- Prices: valid number, negative, zero, decimals, plain-number format, compare-at price against price
- Identifiers: missing and duplicate SKUs, SKU format, possible lost leading zeros; Barcodes lists (semicolon-separated, escapes, 20-barcode limit, type prefixes, GS1 checks for entries typed gtin/upc only), Barcode and Barcodes in one file, check digits in the older single-barcode columns
- Image URLs (text only: https, spaces, credentials, local paths) and the 250-image limit
- Inventory: linked tracker/policy/fulfillment columns, whole-number quantities, quantities on untracked variants
- Documented values for Published, Status (and a value in every product's Status when the column is included), Gift card, Requires shipping, Charge tax, inventory tracker/policy, weight unit and packed dimension unit
- Packed product dimensions: all four or none per variant, length/width/height positive and below 2,000,000,000, saved dimensions cleared by blank cells or by Requires shipping = FALSE
- Metafield and Option LinkedTo columns with values (need store definitions or a product category)
- Collection column: 255-character limit; collections that may be created
- Formula-like values (spreadsheet safety) and their effect on cleaned.csv
Not performed or not verifiable
- Live validation in Shopify: the file was not uploaded to or imported into any store.
- Changes to existing products, options and variants: no current store export was supplied.
- Image URLs were not opened: whether they exist, are public, and are valid images of an accepted size is unknown.
- Metafield, market price, Google Shopping and Option LinkedTo columns are recognised, but their values are not validated, and the store's metafield definitions and product categories cannot be seen (filled metafield and LinkedTo columns are reported as risks). Variant metafield columns are reported because Shopify's product CSV does not support them.
- Whether the named collections exist in the store, and whether barcode types other than gtin and upc are accepted by the CSV importer.
- Whether every alternative column spelling (current or legacy name) is accepted by Shopify's live importer.
- Plan-specific and variant-count limits, product category values, tax codes, theme templates and location names.
- Commercial correctness: prices, supplier data, and whether barcodes belong to the products.
Assumptions this review does not make
- That Shopify will accept this file or that the import will have no side effects.
- That products or variants missing from this file should be deleted from the store.
- That a repeated URL handle is a duplicate product (repeated handles are normal for variants and images).
- That a blank cell and an omitted column have the same effect (they do not with overwrite).
- That a valid barcode check digit proves the barcode belongs to the product.
- That supplier prices, stock levels or descriptions are correct.
- That this automated review replaces a person's review before import.
Shopify import limitations
- Rules reflect Shopify's documentation as reviewed on 2026-10-29. Shopify can change its importer and templates at any time.
- With 'Overwrite products with matching handles', blank values in included columns overwrite store values; columns that are not included keep store values. Without overwrite, products with existing handles are ignored.
- Changing option values deletes and recreates variant IDs; apps, feeds and integrations that refer to variant IDs can break.
- Product CSVs and inventory CSVs are separate imports. The product CSV's inventory quantity applies to single-location stores.
- Shopify downloads images from public https URLs during import; this review did not open them.
- This review does not produce an import-approved file. cleaned.csv is a review copy: when formula-like values were made spreadsheet-safe (leading apostrophe) it must not be imported as it is. Shopify imports CSV files, not Excel files; do not open and re-save a CSV in Excel (identifiers and leading zeros can change).
- Back up the store's products (product export) and test the import with a few products first.
Rules behind these findings
“documented” = stated in Shopify's documentation; “inferred” = follows from documented
behaviour; “heuristic” = a data-quality judgement of this review, not a Shopify rule. Documentation
reviewed on 2026-10-29.
| Finding | Basis | Evidence |
Source |
|---|
| No current store export supplied | Changing option values deletes existing variant IDs and creates new ones; only a comparison with current store data can show such changes. | documented | Shopify Help Center: Using CSV files to import and export products https://help.shopify.com/en/manual/products/import-export/using-csv |
Human review
This report is a working document for a person's
review. It does not record an approval. Before anything is imported, the operator and the customer
should go through the priority 1 items, confirm the import setting, and test the import with a few
products after exporting a backup of the store's products.
Result
No objective errors were found, but some items need a human decision.
0 of 4 rows (0.0%) have at least one
error or warning; 0 rows still have open items after cleaning.
4 rows passed all automated checks.
Passing the automated checks means none of the problems listed in this report were
detected. It does not prove that the data is correct or complete. See “Limitations” below.
Reconciliation RECONCILED
Every source row is accounted for. Flagged rows overlap with the other counts.
| Count | Rows | Meaning |
|---|
| Rows processed (input) | 4 | Data rows read from the file (header and trailing blank rows not counted). |
| Rows in output | 4 | Rows written to cleaned.csv / cleaned.xlsx. |
| Rows excluded | 0 | Rows left out because an exclusion option was switched on. Default: none. |
| Rows unchanged | 4 | Output rows where every value is identical to the source. |
| Rows normalized | 0 | Output rows where at least one value was changed by an enabled cleaning rule (see transformations). |
| Rows flagged | 0 | Rows with at least one error or warning found in the source. Overlaps with unchanged/normalized/excluded; not mutually exclusive. |
| Rows still needing review | 0 | Flagged rows that still have at least one open error or warning (not auto-corrected, not excluded). |
| Control | Result |
|---|
| input rows = output rows + excluded rows | PASS |
| output rows = unchanged rows + normalized rows | PASS |
| every changed value is recorded in the change log | PASS |
| every source row appears exactly once (in output or excluded) | PASS |
| cleaned.csv contains every output row (verified by re-reading the file) | PASS |
| cleaned.xlsx contains every output row in source order (verified by re-reading) | PASS |
| issues.csv and issues.xlsx contain every issue (verified by re-reading) | PASS |
| input file unchanged (SHA-256, size and modification time) | PASS |
Issues found (1)
| Severity | Issues | |
|---|
| error | 0 | Objective problems to fix before use. |
| warning | 1 | Possible problems; a person should decide. |
| info | 0 | Notes, no action strictly required. |
| Category | Severity | Type | Count | |
|---|
No current store export supplied Without a current product export from the store, changes to existing products, options and variants cannot be checked. | warning | unverified | 1 | |
Type “objective” = verifiable fact; “judgment” = needs a human decision;
“note” = information; “unverified” = cannot be decided from this file alone.
The full list is in issues.xlsx / issues.csv.
Duplicates
| Finding | Count |
|---|
| Rows identical to an earlier row | 0 |
| Rows that match an earlier row except case/whitespace | 0 |
| SKU values used more than once | 0 |
| Rows sharing a SKU with another row | 0 |
| Rows whose SKU differs from another only by case/whitespace | 0 |
Duplicates are never merged or deleted automatically.
Applied transformations
No cleaning rules were enabled. Data values in the cleaned files are identical to the source.
Output safety: in cleaned.csv, 0 value(s) starting with a formula character were prefixed with an apostrophe so spreadsheet programs treat them as text. In the .xlsx files all values are stored as text cells and are never executed as formulas.
Columns and settings
| Role | Column(s) |
|---|
| SKU column | SKU |
| Product name column | not set |
| Price column(s) | Price |
| Identifier columns (never rewritten) | URL handle, SKU |
| EAN/GTIN columns | not set |
| Other numeric columns | not set |
| Required columns | not set |
| Duplicate key columns | not set |
Column roles not set by configuration were detected from header names; please
confirm they are correct.
- Decimal convention: dot
- Trim whitespace (non-identifier columns): off
- Trim whitespace (identifier columns): off
- Normalize blank placeholders: off
- Normalize decimals: off
- Exclude blank rows: off
Input file and integrity
| File | shopify_products.csv (CSV, 304 bytes) |
| Encoding / delimiter | utf-8 / ',' |
| Columns (9) | Title, URL handle, Status, SKU, Option1 name, Option1 value, Option2 name, Option2 value, Price |
| SHA-256 before | 98cd07f7576a39b0566faf3774d7661971778a783b2dd0947516db846e5373e3 |
| SHA-256 after | 98cd07f7576a39b0566faf3774d7661971778a783b2dd0947516db846e5373e3 |
| Original file modified? | No |
- Delimiter auto-detected as comma.
Limitations
- Automated checks only find the problem types listed in this report. A row without flags has passed these checks; it has not been proven correct.
- Nothing is verified against external sources (supplier data, barcode registries, the live shop). An EAN/GTIN with a valid check digit is not necessarily registered to this product.
- Prices are checked as numbers (valid, not negative, not zero, at most two decimals); they are not checked for commercial plausibility.
- Identifiers that were already damaged before the file reached this tool (lost leading zeros, scientific notation) cannot be restored; they are only flagged.
- Excel formulas are never executed. The value Excel last saved is used. Excel display formatting (currency, percent, custom date formats) is not reproduced, except zero-padded number formats such as 00000; dates are written as YYYY-MM-DD.
- Duplicate, capitalization and lost-leading-zero findings marked 'judgment' are heuristics that need a person to decide.
- Files that are not UTF-8 must be given an explicit --encoding; the tool does not guess encodings.
Delivered files
cleaned.csv | Review copy in the original column order; its values are identical to the reviewed data. It is not validated or approved by Shopify: use it for an import only after the review above and a test import with a few products. |
cleaned.xlsx | Same data with a source_row column, plus a Changes sheet (every changed value with its original) and an Excluded rows sheet if any. |
issues.csv / issues.xlsx | Every finding with row, column, severity, original value and suggested action. |
summary.json | Machine-readable summary of this report. |
qa_report.html | This report. |