Where to find it

Open Products and use the Import / Export menu. Download CSV exports every product and variant with the exact columns of your workspace, including one name and description column pair per enabled language. Import CSV uploads a file in the same format, shows a preview of what would change, and writes nothing until you confirm.

The export is also the template: on an empty catalog it contains just the header row, and on a populated one it doubles as a starting point you can edit and re-import.

File format

One row per variant. A product with three variants takes three rows that share the same product_slug, each with its own sku. Product columns like status and names repeat on every row of the group; the import reads them from the first row and reports a validation issue if later rows disagree. Files are UTF-8, comma separated, with standard CSV quoting; exports from WireGum, Excel, Numbers and Google Sheets all work as-is.

Columns

ColumnNotes
product_slugRequired. Identifies the product; rows sharing a slug become variants of the same product. Lowercase letters, numbers and dashes only.
product_statusactive or draft. Empty keeps the current status; new products default to active.
tax_codeStripe tax code like txcd_99999999. New products default to the physical goods code.
name_xx, description_xxOne pair per workspace language, for example name_en and description_en. The name in the default language is required for new products.
skuRequired. Identifies the variant inside the product; must be unique per product.
variant_titleDisplay title of the variant, for example Small / Green. When empty on a new variant it is derived from the options.
variant_title_xxTranslated variant title per workspace language.
optionsName=Value pairs separated by semicolons, for example Size=Small; Color=Green.
options_xxTranslated option values per workspace language, same format as options.
priceAmount in the workspace currency, like 19.90 for EUR or 2900 for JPY. Dot or comma decimals both work when the currency supports decimals; no currency symbol. Required for new variants.
currencyOptional consistency check: when present it must match the workspace currency, which is set in Settings, Payments. The import cannot change currencies.
stock_on_handWhole number. Sets the available stock; reserved stock is never touched.
weight_grams, length_mm, width_mm, height_mmWhole numbers used for shipping quotes and labels.

Example

A workspace with English and Italian, importing one product with two color variants. The first row creates the product, both rows create variants:

product_slug,product_status,tax_code,name_en,description_en,name_it,description_it,sku,variant_title,variant_title_en,variant_title_it,options,options_en,options_it,price,currency,stock_on_hand,weight_grams,length_mm,width_mm,height_mm
canvas-tote,active,txcd_99999999,Canvas tote,Sturdy everyday bag,Borsa in tela,Borsa per tutti i giorni,TOTE-RED,Red,,Rossa,Color=Red,,Color=Rosso,19.90,eur,12,320,,,
canvas-tote,active,txcd_99999999,Canvas tote,Sturdy everyday bag,Borsa in tela,Borsa per tutti i giorni,TOTE-BLUE,Blue,,Blu,Color=Blue,,Color=Blu,19.90,eur,8,320,,,

Import rules

  • Products match by product_slug and variants by sku. Matches are updated, new rows are created, and nothing is ever deleted by an import.
  • Every file is validated first and the preview lists any issues with their row numbers. The import runs only when the file is clean, and it is all-or-nothing: if anything fails, no changes land.
  • Empty cells leave existing values unchanged, so a file with just product_slug, sku, price and stock_on_hand is a valid bulk price and stock update.
  • Stripe references on exported products are preserved; changed products are flagged so the next Export to Stripe refreshes them.
  • Images are not part of the CSV format; manage them from the product editor.
  • Files up to 2 MB and 4000 rows per import.

Questions or a file the importer refuses? Write to mail@wiregum.com with the workspace slug and the reported issue.