This is the complete reference for the product CSV you import into and export from
your store (SD-0002 §6.5.1). The format is **canonical** — a clean superset of the
Shopify product CSV — and a **Shopify product CSV** imports directly too: we detect
which one you uploaded and map it for you (see *Shopify dialect* below).
You don't pick a format. Upload your file; the preview tells you which format was
recognized and shows exactly what will change before anything is applied.
## File shape
- UTF-8 (a byte-order mark is tolerated), comma-delimited, RFC 4180 quoting.
- A header row is **required**. `Handle` and `Title` are the only always-required
columns.
- Up to 5,000 rows and 10 MB per file. Split larger catalogs and import in parts.
## Row grammar
Consecutive rows that share a `Handle` describe **one product**. The product's first
row carries the product-level fields (`Title` is required there). Each row may carry:
- a **variant** — its `Option n Value`s plus `Variant *` fields;
- an **image** — `Image Src` with `Image Position` / `Image Alt Text`;
- or both.
An image-only row (just `Handle` + `Image *`) is valid — that's how a product carries
more images than it has variants.
## Updating: blank vs. absent
- A column **absent from your file** is left untouched on existing products.
- A cell that is **present but empty** clears that field (resets it to its default).
Every clear is shown explicitly in the preview, so this is deliberate, visible
behavior — never a silent surprise.
## Canonical columns
| Column | Level | Required | Notes |
| --- | --- | --- | --- |
| `Handle` | product | every row | Identity: lowercase letters, numbers, and dashes. |
| `Title` | product | first row of a product | |
| `Description` | product | — | HTML allowed; sanitized on import. |
| `Vendor` | product | — | Free text. |
| `Type` | product | — | `standalone` (default). `kit_virtual` / `kit_assembled` are reserved; any non-`standalone` value is a row error until kits ship. |
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.