Apparel catalogs are variant-heavy. One hoodie can be six sizes in five colours, thirty variants with their own SKU, price and stock status. On the store’s pages you only see that one dropdown at a time. In a spreadsheet you can see the whole size run of a brand at once: which colours each style comes in, which sizes are already gone, and where the prices step up.

The export: one row per size and colour

The Variant rows format gives every variant its own row. For a clothing store, these are the columns that matter most:

  • title and handle: the garment.
  • option1, option2, option3: the variant’s values, for example Navy, M. Shopify allows up to three options per product.
  • variant_title: the same values joined the way the store shows them, such as Navy / M.
  • sku, price and compare_at_price (the crossed-out sale price, when there is one).
  • available: true if that size and colour can be bought right now, false if it is sold out.
  • variant_image: the photo attached to that variant, usually the colourway shot. image_src is the product’s main image.
  • vendor, product_type and tags, for filtering by brand, category or season.

The full file has 26 columns, and the first 100 products of every export are free.

Which option is size and which is colour?

This is the one trap in apparel data. The Variant rows file has the option values but not the option names, and stores don’t always put the options in the same order. On one product option1 is the colour and option2 the size; on the next it is the other way round, or there is a third option for fit or length.

Two ways to deal with it:

  • Look at the values. In most stores it is obvious: XS–XXL or 28–36 is size, words are colours. A quick filter on option1 shows you whether the store is consistent.
  • Use the Shopify import CSV instead. That format has Option1 Name, Option2 Name and Option3 Name columns, filled in on the first row of each product, next to the values. It is laid out for importing rather than analysis, but it settles the question for every product.

Turn it into a size grid

Once the options are sorted out, a pivot table gives you the view a buyer or merchandiser actually wants:

  1. Select the data and insert a pivot table (Excel: Insert → PivotTable; Google Sheets: Insert → Pivot table).
  2. Put title and the colour option in Rows, and the size option in Columns.
  3. Put available in Values, summarised as a count. Or filter the source to available = false first, and the grid shows exactly which sizes are sold out in which colours.

Swap available for price (summarised as min and max) to see whether a store charges more for larger sizes, which some brands do.

What the export can tell you, and what it can’t

  • Sold out, yes. How many left, no. The public product list says whether each variant is available, not how many units are in stock. A size that shows true could be one piece or a thousand.
  • No sales figures. A sold-out size could mean it sold well, or that the store only ever had a few. CatalogCSV doesn’t estimate sales.
  • A snapshot. Each export shows the store at the moment you click. To see which sizes sell through over a week, export again later and compare by variant_id. See tracking a store with two exports.
  • Public stores only. Stores running a bot check can’t be read, and a password-protected store needs its password entered first.

Big fashion catalogs

Because every size counts as a variant, an apparel file gets long fast: 100 products can easily be 1,000 rows. The free limit counts products, not rows, so you get every size and colour of the first 100 products. For a whole store, a Pro license ($9 a month or $79 a year) removes the limit; CatalogCSV pages through the catalog 250 products at a time, and in testing it read a 6,498-product catalog to the end.

If you also need the photos per colour, the Image URLs only format lists every image with the variant IDs it belongs to. More in extracting variant images.