A Shopify CSV import can finish without an obvious error and still leave a market catalog with the wrong price or fewer variants than the base catalog.
This is especially easy to miss after the change from Markets to Catalogs. A product import CSV and a catalog-specific price CSV may look similar, but they are not interchangeable workflows. The safest approach is to treat a market-price update as a small data-reconciliation job.
Why a successful import is not proof
There are three separate questions:
- Did Shopify parse the CSV?
- Did the intended Handle/SKU rows match the right variants?
- Did the target catalog apply the expected price and inclusion state?
The first answer can be "yes" while the second or third is "no." A catalog can fall back to a base price, omit a variant, or keep an old inclusion value without producing the kind of row-level error merchants expect.
A safer workflow
1. Save a baseline
Export the current product state and record the target market/catalog, export date, currency, and number of products and variants. Keep this as a rollback reference. Do not start by editing the only copy of the export.
2. Use the target catalog's own template
Open the specific catalog you intend to update and download its sample or export format when Shopify provides one. Do not assume that columns such as Price / US, Price / UK, or Included / US belong in the ordinary product import flow.
For a catalog-specific file, keep the smallest set of columns that the template documents. In many workflows that means an identity pair plus the catalog fields, for example:
Example columns: Handle, SKU, Price, Included.
Example row: blue-shirt, BLUE-S, 29.90, true.
Use your actual exported headers and identifiers; the example is only a shape, not a universal Shopify template.
3. Normalize numbers before checking catalog behavior
Prices should be numeric and consistent:
- Use a decimal point, not a locale comma, unless the target template explicitly says otherwise.
- Remove currency symbols and thousands separators.
- Keep one currency per file and confirm the catalog currency before importing.
- Check for formulas that exported as blank strings or text.
- Make sure the same SKU is not repeated for two different variant rows unless that is intentional.
A browser-side numeric price-format check can catch malformed price cells before they create noise in the catalog test. It cannot prove that Shopify mapped a row to the correct market catalog, so treat it as the formatting step only.
4. Compare identities and counts
Before importing, compare the Handles and SKUs in the proposed file with the baseline export. Record:
- total rows in the proposed file;
- unique Handle + SKU pairs;
- missing identifiers;
- duplicate identity pairs;
- products with fewer or more variant rows than expected.
This catches a common false positive: the file is valid, but the catalog receives only part of the intended variant set.
5. Test a small, multi-variant sample
Choose a few products that cover the risky cases: one single-variant product, one product with several options, one sale-price change, and one product that should be excluded from the target catalog.
After the import, check the catalog itself. Do not rely only on the import toast or the product page's base price.
6. Verify the result in the target catalog
For each sample, confirm the market price, currency display, included/excluded state, and variant count. Then compare the post-import export with the baseline. If one market shows fewer variants or the base price appears in place of the market price, stop the full rollout and isolate that catalog's template and identity rules.
7. Keep a rollback path
Store the original export, the exact file you imported, a short change summary, and the post-import verification result. For a large catalog, keep an exception sheet rather than repeatedly re-importing the whole file while guessing.
The practical boundary
A general CSV validator can help with headers, encoding, row identity, file size, and numeric price formatting. It cannot read Shopify's private catalog state or guarantee that an import changed every market correctly.
That boundary matters: "CSV accepted" is an input check; "catalog prices and variant coverage match the plan" is a post-import reconciliation check. Keeping those two claims separate makes international price updates much safer.
Top comments (0)