Reference
Move the catalog in and out with CSV.
The Products page exports the whole catalog as a CSV file and imports the same format back. One format, both directions: migrate an existing catalog in, or export, edit prices and stock in a spreadsheet, and re-import.
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
| Column | Notes |
|---|---|
product_slug | Required. Identifies the product; rows sharing a slug become variants of the same product. Lowercase letters, numbers and dashes only. |
product_status | active or draft. Empty keeps the current status; new products default to active. |
tax_code | Stripe tax code like txcd_99999999. New products default to the physical goods code. |
name_xx, description_xx | One pair per workspace language, for example name_en and description_en. The name in the default language is required for new products. |
sku | Required. Identifies the variant inside the product; must be unique per product. |
variant_title | Display title of the variant, for example Small / Green. When empty on a new variant it is derived from the options. |
variant_title_xx | Translated variant title per workspace language. |
options | Name=Value pairs separated by semicolons, for example Size=Small; Color=Green. |
options_xx | Translated option values per workspace language, same format as options. |
price | Decimal amount in the workspace currency, like 19.90. Dot or comma decimals both work; no currency symbol. Required for new variants. |
currency | Optional consistency check: when present it must match the workspace currency. The import cannot change currencies. |
stock_on_hand | Whole number. Sets the available stock; reserved stock is never touched. |
weight_grams, length_mm, width_mm, height_mm | Whole 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_slugand variants bysku. 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,priceandstock_on_handis 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.