
Category Manager for Magento 2 — Bulk CSV Import/Export
Category Manager turns your Magento 2 category tree into a spreadsheet. Export every category to CSV, edit names, URL keys, status, menu visibility and SEO meta, and re-import to update existing categories or create new ones — matched by ID.
Manage your whole Magento 2 category tree in a spreadsheet
Editing categories one screen at a time is slow, and restructuring a large tree — renaming, re-parenting, fixing URL keys, filling in SEO meta — is painful in the admin. Category Manager turns the job into a spreadsheet: export every category to CSV, edit it in Excel or Google Sheets, and re-import to update the ones you changed and create any new ones. The export format is the import format, so it round-trips cleanly.
category_id updates that category; a blank ID creates a new one under its parent.What you'll use it for
- Restructure a large tree — re-parent and rename dozens of categories by editing the
parent_idandnamecolumns, instead of dragging nodes one by one. - Bulk-fill category SEO — write meta titles, descriptions and URL keys across the whole tree in one spreadsheet pass.
- Create many categories at once — add a block of new categories by leaving
category_idblank and setting eachparent_id. - Tidy menu visibility — flip
is_activeandinclude_in_menufor a set of categories together. - Hand it to a non-Magento person — give the CSV to someone who lives in Excel; they never touch the admin.
How it works: export, edit, import
The CSV format
One row per category. The export produces exactly these columns, and the import reads them back:
| Column | Meaning |
|---|---|
category_id | The category to update. Leave blank to create a new one. |
parent_id | The parent category to sit under. |
name | Category name. |
url_key | SEO URL key. |
is_active / include_in_menu | 1 or 0 flags. |
description | Category description (HTML allowed). |
meta_title, meta_keywords, meta_description | Category SEO fields. |
Good to know
Imports are written at the default (global) scope — this manages your category structure and base content, not per-store-view translations. Files with commas or quotes are safely quoted on export, so content round-trips cleanly, and the import is limited to CSV files up to 10 MB. Both import and export sit behind their own permission, so only authorised admins can run them.
Specifications
| Magento | Open Source 2.4.9 and later 2.4.x |
|---|---|
| PHP | 8.4 and 8.5 (verified) |
| What it does | Export / import the category tree as CSV (update existing, create new) |
| Fields | id, parent, name, URL key, active, menu, description, meta title/keywords/description |
| Matching | By category_id (present = update, blank = create) |
| Scope | Default (global) scope |
| Import limit | CSV only, up to 10 MB; malformed rows skipped |
| Access control | Import/export permission resource |
| Dependencies | None — no third-party libraries |
| Delivery & licence | Composer install, per-domain licence key, updates via Composer |
Works with
Part of the AgenticEcom suite for Catalog & Products:
Included in the Growth and Enterprise bundles.
Frequently asked questions
How do I bulk-edit categories in Magento 2?
Export the category tree to CSV, edit the rows in a spreadsheet (names, URL keys, status, menu visibility, descriptions and SEO meta), and re-import. Each row keeps its category_id, so it updates that exact category rather than creating a duplicate.
How do I import categories from a CSV in Magento 2?
Upload the edited CSV on the import screen. The file must be a CSV up to 10 MB; rows with a category_id update existing categories, and rows with a blank category_id create new ones under their parent_id.
Can I create several new categories at once?
Yes. Add a row per new category with category_id left blank and parent_id set to the parent. The import creates each one in a single pass.
Can I bulk-edit category SEO (meta titles, URL keys)?
Yes. The CSV includes url_key, meta_title, meta_keywords and meta_description, so you can fill or fix category SEO across the whole tree in one spreadsheet.
What happens if a row in my spreadsheet is broken?
A row whose column count doesn't match the header is skipped, so it can't crash the import — the valid rows still apply, and the result reports how many categories were created and updated.
Does it manage per-store-view category content?
Imports apply at the default (global) scope — they manage your category structure and base content. Per-store-view translations aren't part of the CSV.
Which Magento and PHP versions are supported?
Magento Open Source 2.4.9 and later 2.4.x, verified on PHP 8.4 and 8.5, with no third-party dependencies.

