Magento
Attribute Import/Export
Creating and editing product attributes one-by-one in the admin is slow. Attribute Import/Export lets you do it in a CSV: export every product attribute, edit labels, input types, dropdown options, scope and the dozen storefront/grid flags in a spreadsheet, and import to update existing attributes or create new ones in bulk — dropdown options included.

Compatibility
Section titled “Compatibility”PHP
Creates options
Hardened upload
Quick start
Section titled “Quick start”-
Export every product attribute to CSV —
attribute_code,frontend_label,frontend_input, options, scope, and the searchable / filterable / comparable / visible-on-front / used-in-listing / grid flags. -
Edit in a spreadsheet. Keep an
attribute_codeto update it; add a new row with a new code to create an attribute. -
Import — existing codes are updated, new ones are created.
What you can set
Section titled “What you can set”| Group | Columns |
|---|---|
| Identity | attribute_code, frontend_label, frontend_input (text, textarea, select, multiselect, boolean, price, date…). |
| Behaviour | is_required, is_unique, default_value, note, apply_to. |
| Storefront & search | is_searchable, is_filterable, is_comparable, is_visible_on_front, is_filterable_in_search, used_in_product_listing, used_for_sort_by, is_used_for_promo_rules. |
| Admin grid | is_used_in_grid, is_visible_in_grid, is_filterable_in_grid, position. |
Safe by design
Section titled “Safe by design”Hardened upload
Uploads must be a real uploaded file with a .csv extension, under 10 MB, and whose
actual content is a CSV (MIME sniffed with finfo, failing closed) — so the import can’t be
used for path injection or to push a non-CSV payload.
Won't choke on bad rows
Each row is normalised to the header width — short rows are padded, over-long rows (a stray comma) are trimmed — so one malformed line can never abort the whole import with a fatal error.
Can I bulk-create attributes, with their dropdown options?
Yes — add rows with new attribute_codes and, for select/multiselect, list the options in the
options column (pipe-separated). The import creates the attribute and its options in one pass.
How do I bulk-edit existing attributes?
Export, change the columns you want (labels, flags, scope) in a spreadsheet, and re-import.
Rows with an existing attribute_code update that attribute in place.
Is the CSV upload safe?
Yes — it only accepts a genuine uploaded .csv under 10 MB whose sniffed content type is a CSV,
and it’s behind the module’s import ACL resource. A malformed row is normalised rather than
crashing the import. Verified clean on PHP 8.4 and 8.5.