The Shopify CSV at a glance
Shopify's product import CSV has 50+ columns. Most are optional, some are required, and a handful are easy to break with a manual spreadsheet edit. The safest way to understand the file is to group the columns by job instead of reading left to right.
Handle, Title, Vendor, Product Category, and Type define the product record.
Body (HTML), Tags, and Published control product-page copy and visibility.
Option columns, SKU, inventory, pricing, barcode, weight, tax, and cost define the sellable versions.
Image Src, Image Position, Image Alt Text, SEO Title, SEO Description, and Google Shopping fields support storefront and search display.
The exact header list Storeshift writes
Shopify keys on exact column names. These are the current Storeshift core headers, copied from the CSV writer so the reference matches the export code.
- 01Handle
- 02Title
- 03Body (HTML)
- 04Vendor
- 05Product Category
- 06Type
- 07Tags
- 08Published
- 09Option1 Name
- 10Option1 Value
- 11Option1 Linked To
- 12Option2 Name
- 13Option2 Value
- 14Option2 Linked To
- 15Option3 Name
- 16Option3 Value
- 17Option3 Linked To
- 18Variant SKU
- 19Variant Grams
- 20Variant Inventory Tracker
- 21Variant Inventory Policy
- 22Variant Fulfillment Service
- 23Variant Price
- 24Variant Compare At Price
- 25Variant Requires Shipping
- 26Variant Taxable
- 27Variant Inventory Qty
- 28Variant Barcode
- 29Image Src
- 30Image Position
- 31Image Alt Text
- 32Gift Card
- 33SEO Title
- 34SEO Description
- 35Google Shopping / Google Product Category
- 36Google Shopping / Gender
- 37Google Shopping / Age Group
- 38Google Shopping / MPN
- 39Google Shopping / Condition
- 40Google Shopping / Custom Product
- 41Google Shopping / Custom Label 0
- 42Google Shopping / Custom Label 1
- 43Google Shopping / Custom Label 2
- 44Google Shopping / Custom Label 3
- 45Google Shopping / Custom Label 4
- 46Variant Image
- 47Variant Weight Unit
- 48Variant Tax Code
- 49Cost per item
- 50Status
- 51Length (mm) (product.metafields.dimensions.length_mm)
- 52Width (mm) (product.metafields.dimensions.width_mm)
- 53Height (mm) (product.metafields.dimensions.height_mm)
Identity columns
Handle is the URL slug. A product named American Thunder Hard Hat might become american-thunder-hard-hat, which turns into yourstore.com/products/american-thunder-hard-hat. Title is the customer-facing product name, capped for clean search display. Vendor is the brand or maker name. Product Category maps into Shopify taxonomy. Type is your own store classification, such as Hard Hats, Graphic Tees, or Rings.
Body HTML and tags
Body (HTML) is the rich product description. Storeshift writes this as structured product-page copy with H2 sections such as Specifications, Sizing, Care, Fitment, or Compatibility when the source supports them. When canonical facts contain useful values, the body can include schema.org microdata such as <span itemprop="material">cotton</span>.
Tags are comma-separated and usually come from category, base tags, condition, and useful product facts. Published controls whether Shopify makes the product visible at import. Storeshift defaults to true because the customer has already reviewed the preview or paid run before import.
Variant columns
Shopify variants are one base product with multiple sellable versions. A shirt might have Size and Color. A ring might have Size. An auto part might have fitment variants. Shopify allows up to three option dimensions, so the CSV uses Option1 Name, Option1 Value, Option2 Name, Option2 Value, Option3 Name, and Option3 Value, plus the Linked To columns when Shopify needs an option relation.
Variant SKU is the unique stock identifier. Storeshift builds stable SKU-like values when the source does not provide one, commonly using a vendor prefix and a short hash for uniqueness. Variant Inventory Qty comes from eBay stock signals when exposed. Variant Price, Compare At Price, Barcode, Image, Weight Unit, Tax Code, and Cost per item round out the sellable row.
Images
Image Src is a full public URL. Shopify fetches product images during CSV import, so the URL needs to be reachable without a login. Storeshift hosts cleaned images on images.storeshift.app, backed by R2, so Shopify can fetch them during import.
Image Position controls gallery order. Image Alt Text supports accessibility and search. Variant Image connects a specific variant to the image that best represents it when eBay exposed that relationship.
SEO and Google Shopping
SEO Title and SEO Description are the meta fields search engines read. Storeshift caps them at 60 and 155 characters so they fit normal search-result display better. Google Shopping fields populate Merchant Center data once you connect Google Shopping to Shopify.
The Google Shopping group includes product category, gender, age group, MPN, condition, custom product, and five custom labels. Those fields help Google understand products after Shopify becomes the catalog source.
Status and metafields
Status controls lifecycle. Active makes the product visible after import, while draft keeps it hidden for review. Storeshift defaults to active because the review step already happens inside Storeshift.
The dimension columns use Shopify-native metafield syntax: Length (mm) (product.metafields.dimensions.length_mm), Width (mm) (product.metafields.dimensions.width_mm), and Height (mm) (product.metafields.dimensions.height_mm). They stay blank when the eBay source did not expose dimensions.
What Storeshift fills in vs what you'd tweak
Storeshift fills titles, Body (HTML), prices, variants, images, SEO fields, Google Shopping fields, tags, condition, and dimension metafields when the source supports them. You would typically tweak collection assignment inside Shopify, theme-specific metafields, merchandising order, and featured-product choices.
The free preview includes an actual CSV download. That means you can inspect the Shopify product csv format before paying for the full run, including variant rows, Image Src URLs, SEO fields, and metafield headers.
Related reading
Sources
FAQ
Can I edit the CSV before import?
Yes. You can edit it in a spreadsheet tool. Save it back as CSV with UTF-8 encoding before importing, and avoid changing exact Shopify column names.
What if my Shopify theme uses custom metafields?
Storeshift produces the standard schema plus supported dimension metafields. Theme-specific metafields are usually added in Shopify Admin after import or through a follow-up CSV process.
Why does Shopify show Failed for some rows on import?
Common causes are duplicate Handle values, an empty required field, a private Image Src URL, or a Variant Price that is not a valid number. Storeshift checks these before export, but manual edits can reintroduce them.