How to import or export many products at once via CSV instead of creating each one individually.
Manually creating a large number of products isn't practical – Magento ships a CSV-based import/export tool for this under System > Import and System > Export.
Export as a starting point
The easiest way to start is with an export: go to System > Export, choose entity type "Products", optionally narrow it down via the Entity Attributes filter (e.g. only a specific category or attribute set), then click Continue. The downloaded CSV file shows you exactly the column structure Magento expects – a great template for your own import, instead of rebuilding the structure from memory.
Running an import
- Under System > Import, choose entity type "Products".
- Set the Import Behavior: "Add/Update" (default – creates new rows, updates existing ones by SKU), "Replace" (fully replaces existing products), or "Delete" (deletes products by SKU).
- Upload the prepared CSV file; for images, also provide the folder path under Images File Directory.
- Click Check Data – Magento validates the file row by row and shows errors/warnings BEFORE anything is saved. Errors (red) block the import entirely, warnings (yellow) usually don't.
- If there are no errors, the Import button appears – only that click actually writes the data to the database.
Common pitfalls
- SKU as the key: the import recognizes existing products exclusively via the SKU column – a typo accidentally creates a duplicate instead of an update.
- Character encoding: the CSV file must be saved as UTF-8, otherwise accented characters and special characters get mangled during import.
- Multiple values: fields like categories or multi-select attributes usually separate several values within one cell with a comma, and the field itself then needs to be wrapped in quotes.
Important: an import cannot be undone with a single click – for larger imports, always create a database backup first, or run the import with just a handful of test rows before uploading the full file.
Required and special columns in the CSV
Besides the SKU column, Magento expects certain other columns with a fixed meaning: attribute_set_code (which attribute set applies), product_type (simple, configurable, bundle, etc.), categories (category paths, levels separated by "/", multiple paths separated by a comma), and product_websites (assignment to one or more websites). For bulk image import, the additional_images column holds the filenames, which must exist in the folder specified under Images File Directory.
Store-view-specific translations via CSV
Translated field values (name, description, URL key, etc.) can be imported directly: for each SKU you can add extra rows with the same SKU but a filled-in store_view_code column – the values in that row then override only that store view, while a row with an empty store_view_code sets the default/website-level values.
Checking the import history
Under System > Import/Export > Import History you'll find a log of every import that's been run, with timestamp, executing user, and outcome. The link in the Execution Time/status column lets you download the full import log, listing every row alongside its specific error – much faster than re-uploading just to troubleshoot.