DEV Community

王磊
王磊

Posted on

Shopify CSV Files Over 15MB: Split by Product Handle, Not Row Count

When a Shopify product CSV grows past 15 MB, making it smaller is only half the job. The split must keep each product together, or Shopify may receive variants and image rows without the parent context they need.

A safer batching checklist

  1. Keep the untouched Shopify export as your rollback reference. Make a working copy before removing or reordering anything.
  2. Group rows by the exact Handle. Do not split after an arbitrary line number: one product can occupy several rows.
  3. Keep every variant row for a Handle in the same batch. Check Option values, Variant SKU, price, inventory, and barcode together.
  4. Keep the product's image rows with the same Handle. Moving an Image Src row into another file can attach media to the wrong product or make the import harder to audit.
  5. Check each batch independently for headers, UTF-8 text, prices, and duplicate Handles before importing.
  6. Import a small representative batch first. Confirm product count, variant count, prices, inventory, and images before continuing with the remaining files.
  7. Keep a simple batch log: file name, Handle range, row count, import time, and any Shopify warning. This makes a partial retry much safer.

The 15 MB limit is a file-size boundary, not a promise that a large catalog will import cleanly. Long descriptions and image URLs can push a file over the limit, while a row-count split can quietly break variant groups. A handle-aware split plus a post-import spot check gives you a better audit trail.

For a browser-side check and handle-aware batching guide, see the Shopify CSV size checker. It prepares review guidance locally; it does not upload files to Shopify or change products in your admin.

Top comments (0)