Products

Import and export

Create or update products in bulk with a CSV file.

Export and import are on the Products page: the Export products and Import products buttons. Both run in the background and notify you when done.

File format

  • Format: CSV.
  • Encoding: UTF-8.
  • Columns: the Shopify product CSV columns (listed below). Aeolian exports and Shopify exports import without changes.
  • Header row: first row, column names. Matched by name, not position. Surrounding spaces are ignored. Column order does not matter on import.
  • Export line endings: CRLF. Every field is quoted.

Export offers two encodings:

OptionWhat it does
Plain CSVUTF-8, no byte order mark. Use for re-import or other tools.
CSV for Excel, Numbers, and Google SheetsUTF-8 with a leading byte order mark so Excel reads it as UTF-8 instead of corrupting accented and special characters.

If editing in Excel, save as "CSV UTF-8" before importing.

Columns

ColumnFormat / valuesNotes
HandleText (slug)Required. Rows with the same Handle form one product. Rows with no Handle are skipped.
TitleTextProduct name.
Body (HTML)HTMLDescription.
TagsComma-separatedExample: apparel, new
PublishedTRUE or FALSEStorefront visibility.
Statusactive or draft
Option1 NameTextOption name, for example Size.
Option1 ValueTextThis variant's value, for example S.
Variant PriceDecimal
Variant Compare At PriceDecimalOptional. Shows as a discount.
Variant Cost Per ItemDecimalOptional. Not shown to customers.
Variant Charge TaxTRUE or FALSE
Variant Inventory QtyInteger
Variant Stock Statusinstock, outofstock, preorder, or untracked
Image SrcURLProduct image.
Variant ImageURLImage for this variant.
SEO TitleText
SEO DescriptionText

Products with more than one option add Option2 Name / Option2 Value, Option3, and so on. Exports include as many option columns as the product with the most options requires.

Row layout

  • One Handle = one product. A product can span multiple rows.
  • One row per variant. Same Handle, one OptionN Value set per row.
  • Product-level columns (Title, Body (HTML), Tags, Published, Status, SEO Title, SEO Description) are read from the first row of each Handle. Leave them blank on later rows.
  • Extra images: one extra row per image, with only Handle and Image Src filled in.

A 3-size t-shirt with 2 extra photos is one Handle across 5 rows: 3 variant rows plus 2 image rows.

Export

Steps:

1. Open the Products page.

2. Click Export products (or press E).

3. Choose scope: current page, selected products, or all products.

4. Choose encoding: Plain CSV, or CSV for Excel, Numbers, and Google Sheets.

5. Click Export. A download link arrives by notification and email.

Import

Steps:

1. Open the Products page.

2. Click Import products (or press I).

3. Choose the source: Aeolian / Shopify, or WooCommerce.

4. Optional: click Download template for a valid starter file.

5. Upload a .csv file (drag and drop, or click). Only .csv is accepted.

6. Set Duplicate slugs handling (below).

7. Click Upload and preview, then confirm.

Duplicate slugs

When a Handle matches an existing product:

OptionBehavior
ExtendAppend -1, -2, etc. to the new slug. Existing product kept, new one added alongside.
OverrideReplace the existing product with the matching slug.

To bulk-edit existing products: export, edit, import with Override.

Failed rows

If any rows fail, Aeolian produces a report listing each failed row and the reason. Fix those rows and re-import. Only the failed rows need to go back in.

Imports count toward the daily caps in Limits and caps.

WooCommerce

Select WooCommerce as the source. Aeolian reads a WooCommerce product export directly. Progress and the failed-row report work the same as a CSV import.