Skip to content

Category Manager

Category Manager lets you manage your whole category tree as a CSV — export every category, edit it in a spreadsheet (names, URL keys, active/menu flags, descriptions, SEO meta), and re-import to update existing categories or create new ones in one pass. It’s the fast way to restructure a large catalogue or hand category content to someone who lives in Excel.

Category Import & Export

Magento

Open Source 2.4.9 GA (and later 2.4.x).

PHP

Tested on 8.4 and 8.5.

Round-trip

Export → edit → import. The export format is the import format.

Robust

A malformed row is skipped, not fatal — the rest still import.
  1. System → Data Transfer → Category Import & ExportExport CSV to download every category. (It sits with Magento’s other data-transfer tools, under the System menu.)

  2. Edit in a spreadsheet. To update a category, keep its category_id; to create one, leave category_id blank and set the parent_id.

  3. Import CSV to apply — existing IDs are updated, blank-ID rows are created.

One row per category; the export produces exactly these columns:

category_id,parent_id,name,url_key,is_active,include_in_menu,description,meta_title,meta_keywords,meta_description
12,2,Outdoor,outdoor,1,1,"Everything for the outdoors","Outdoor Gear","",""
,2,New Arrivals,new-arrivals,1,1,"","","",""
ColumnMeaning
category_idThe category to update. Leave blank to create a new category.
parent_idThe parent category (defaults to the root catalog when creating).
nameCategory name (required).
url_keySEO URL key.
is_active / include_in_menu1/0 flags.
description, meta_title, meta_keywords, meta_descriptionContent & SEO fields.
How do I bulk-rename or restructure categories?

Export, edit the name / parent_id columns in a spreadsheet, and re-import. Keeping each row’s category_id means it updates that exact category rather than creating a duplicate.

Can I create new categories from the CSV?

Yes — leave category_id blank and set parent_id to the parent. The import creates the category under that parent (defaulting to the root catalog if no parent is given).

What happens if my spreadsheet has a broken row?

It’s skipped. A row whose column count doesn’t match the header is ignored so it can’t crash the import, and the valid rows still apply.

Is it secure?

The import and export are behind the AgenticEcom_CategoryManager::import_export ACL resource, so only authorised admins can run them. Verified clean on PHP 8.4 and 8.5.