Import/Export of Size Charts
Clean Size Charts includes a smart-import wizard for bulk-creating and bulk-updating size charts from a CSV. The wizard works with any column headers - you'll map your CSV's columns to our fields in the wizard. You can also assign products, collections, tags, vendors, product types, or "all products" directly from the CSV.
Creating new size charts
Step 1: Start with a CSV (template optional)
You can use any CSV your team already has, or download our import template from Google Sheets (make a copy first) or by clicking Export CSV on the Import/Export page. The wizard's column-mapping step accepts whatever headers you bring.
Step 2: Fill in the columns
For new charts, leave Size Chart ID blank — the app generates it during import. Name is the only field strictly required for new charts (or Size Chart ID for updates). Everything else is optional.
| Column | Description | Example |
|---|---|---|
| Size Chart ID | Leave blank for new charts. Set this to update an existing chart. The export uses the format <shop_id>-<chart_id>. |
42-1234 |
| Name | The internal name of the chart. | Unisex T-Shirt Size Chart |
| Primary Language | Default, a language name, or a two-letter language code. Only relevant on plans with multi-language support. |
Default, French, or fr |
| Top Text | Text shown directly above the size chart table. | Find your perfect fit using the chart below. |
| Table | The size chart table in HTML format. | <table><thead><tr><th>Size</th>...</tr></thead>...< ;/table> |
| Bottom Text | Text shown directly below the table. Usually how-to-measure instructions. | Measure across the chest at the widest point. |
| Image URL | Full URL of an image. We recommend hosting via Content > Files in Shopify Admin for Pagespeed. | https://cdn.shopify.com/s/files/1/0123/4567/files/measure.jpg |
| Image Position | Where the image displays. | Top, Bottom, Left, Right, or Background |
| Products | Comma-separated product handles or numeric IDs (or full Shopify GIDs). The exporter writes handles. | unisex-tee,mens-shorts,canvas-tote |
| Collections | Comma-separated collection handles or numeric IDs. | summer-2025,t-shirts,sale-items |
| Product Tags | Comma-separated tags. Case-sensitive — Summer and summer are different tags. |
unisex,summer,bestseller |
| Product Types | Comma-separated product types as they appear in Shopify Admin. | T-Shirt,Hoodie,Tank Top |
| Vendors | Comma-separated vendor names. | Nike,Adidas,Patagonia |
| All Products | TRUE to assign this chart to every product in the store; FALSE or blank otherwise. Accepted values when importing: true, 1, yes, y (case-insensitive). The exporter writes TRUE/FALSE. |
TRUE |
A few notes about commas:
- If a tag, vendor, or product type contains a comma, wrap the whole cell in double quotes — e.g. "Nike, Inc.,Adidas" is two vendors: Nike, Inc. and Adidas. This is standard CSV escaping; Google Sheets and Excel handle it for you.
- Whitespace around commas is trimmed automatically: tee, hoodie and tee,hoodie produce identical results.
- The wizard's preview screen shows you the resolved values before commit — if a product handle or collection handle doesn't exist in your store, you'll see a "missing" warning so you can fix the CSV and re-upload.
Step 3: Save the CSV
In Google Sheets: File > Download > Comma-separated values (.csv). In Excel or Numbers: save as CSV.
Step 4: Upload
Go to Clean Size Charts > Import/Export in the app and click Add File (or drag the file into the box). The smart-import wizard opens.
Step 5: Map your columns and choose options
The wizard tries to auto-detect each column from your headers. Confirm the mapping (or change it) for each one. Anything mapped to Don't import is ignored.
Then choose the import options:
- Overwrite size charts with matching IDs — when on, rows with a Size Chart ID overwrite the existing chart's columns that you actually mapped from the CSV. Other fields on the chart are left untouched. Default off.
- Publish new size charts — when on, newly-imported charts go live immediately. Default off, so they're created as drafts you can review first.
Step 6: Preview and edit
The wizard shows every row that will be imported, one row per chart with an expand/collapse toggle. Before committing you can:
- Edit any field per chart (top text, table, bottom text, image, language, conditions)
- See exactly which products, collections, tags, vendors, and types each chart will be assigned to
- Use the autocomplete suggestions for tags, vendors, and product types — they pull from values already in your
catalog so spelling stays consistent
Row-level errors (missing Name, unknown Primary Language, invalid Size Chart ID, etc.) appear at the top so you can fix them in your CSV and re-upload.
If your plan has a published-chart limit and the import would exceed it, you'll see a banner. The import still succeeds — any new charts beyond your limit are created as drafts so your store stays within plan. Republish them after upgrading or unpublishing existing charts.
Step 7: Commit the import
Click Import. The app processes the import in the background and shows progress. When it finishes, you'll get a confirmation summary (created, updated, skipped, demoted-to-draft, failed). From the dashboard you can publish any drafts and review the imported charts.
Updating existing size charts
The flow is identical to creating new charts, with two key points:
Step 1: Start from your current charts
On the Import/Export page, click Export CSV to download all of your existing charts. Edit in Google Sheets, Excel, Numbers, or any CSV tool.
Step 2: Keep the Size Chart ID column
That's how the app matches each row back to its existing chart. Rows with a blank Size Chart ID are treated as new charts and created during the same import.
Step 3: Edit only the fields you want to change
In the wizard's options, turn on Overwrite size charts with matching IDs. The wizard then overwrites only the columns you mapped from your CSV — every other field on the existing chart stays as it was. So if you only map Top Text and Table, the import updates just those two fields and leaves images, conditions, language, etc. untouched.
If your CSV has a mix of update rows (with a Size Chart ID) and new rows (blank ID), the wizard handles both in one import. Publish new size charts controls whether the new ones go live immediately or land as drafts.
Sample CSV row
A complete row showing every column populated, in the same column order the exporter uses:
Size Chart ID,Name,Primary Language,Top Text,Product Tags,Table,Bottom Text,Image URL,Image
| Column | Value |
|---|---|
| Size Chart ID | (blank — this is a new chart) |
| Name | Unisex T-Shirt Size Chart |
| Primary Language | Default |
| Top Text | Find your perfect fit using the chart below. |
| Product Tags | unisex,summer,bestseller |
| Table | <table><thead><tr><th>Size</th><th>Chest</th></tr& gt;</thead><tbody><tr><td>S</td><td>34-36</td></tr></tbody&g t;</table> |
| Bottom Text | Measure across the chest at the widest point. |
| Image URL | https://cdn.shopify.com/s/files/1/0123/4567/files/measure.jpg |
| Image Position | Bottom |
| Products | unisex-tee,mens-shorts |
| Collections | summer-2025,t-shirts |
| Product Types | T-Shirt,Hoodie |
| Vendors | Nike,Adidas |
| All Products | FALSE |
The Size Chart ID is left blank, which makes this a new chart. To update an existing chart instead, set the Size Chart ID to the value from the export (e.g. 42-1234) and turn on Overwrite size charts with matching IDs in the wizard.