Category Duplicate
v1.0.0
Category Duplicate
- Updates and support included for 12 months
- License key delivered immediately by email
- 30-day money-back guarantee
- Full documentation included
- Compatible with Hyvä themes
- Composer-ready installation
Category Duplicate
Copy a whole category branch — the category and every subcategory below it — in one click from the category edit page, optionally with its product assignments. A new car model that reuses the tree of the previous one, a new product family that reuses an existing brand / model structure: what took an afternoon of creating categories by hand takes a few seconds.
Magento has no category duplication at all. Rebuilding a tree of 50 or 200 categories means re-entering every name, every display setting, every image and every store-view translation, with mistakes along the way. This module copies all of it, rebuilds the URLs for the copy's own place in the tree, and leaves out what must not be copied.
Who it's for
- Catalogues organised by brand / model / year (automotive, spare parts, accessories) where every new model or product family repeats an existing tree
- Multi-store-view shops where every category carries translated names and URL keys that would otherwise be retyped by hand
- Merchandisers who want to prepare a new branch quietly and publish it only when it is filled
Key benefits
- The whole branch in one action — "Duplicate this branch" on the category page, a name for the copy, done. The copy is placed next to the source and the admin is taken straight to it.
- Everything that describes the category is copied — display mode, anchor, CMS block, image, layout, Page Builder description, third-party attributes, and every store-view override row by row.
- Product assignments on demand — copy the products with their positions, or create empty categories for a new family.
- Clean URLs, no collisions — URL keys and URL rewrites are built for the copy, store view by store view. Names and URL keys are checked against the categories at the same level before anything is written.
- No dead redirects — while a copy has never been enabled, renaming or moving it creates no 301 redirect: its URLs were never public. Redirects work as usual once it goes live.
- Safe by design — the copy is created disabled, meta title / description / keywords are cleared (they describe the source), unique attributes are skipped, and the whole duplication runs in one transaction: any failure leaves nothing behind.
- Extensible — an event with the source → copy ID map lets other modules copy their own per-category data.
Compatibility
- Magento Open Source 2.4.7 / Mage-OS 3.x
- PHP 8.2, 8.3, 8.4, 8.5
- Admin only: works with any storefront theme, Luma or Hyvä
- Requires
wimakeit/module-core3.2 or later - Community Edition schema only: Adobe Commerce content staging (
row_id) is not supported
Install this module via Composer. Make sure your auth.json is configured with your Wimakeit credentials.
$ composer require wimakeit/module-category-duplicate:^1.0.0
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile
Installation notes
The standard composer require + setup:upgrade + setup:di:compile flow applies. The points below cover what's specific to this module.
Required dependency
This module requires wimakeit/module-core 3.2 or later. Composer pulls it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.
Database
setup:upgrade creates one table, wimakeit_category_duplicate_draft, which records the copies that have never been enabled (no redirect is created while a copy is in it). Rows are removed with their category (foreign key).
Static content
The "Duplicate this branch" modal is an admin JavaScript component. In production mode, deploy the admin static content after installing:
bin/magento setup:static-content:deploy en_US fr_FR --area=adminhtml -f
Configuration
Stores > Configuration > WiMakeIT > Category Duplicate (default scope only). The defaults are safe for production.
| Setting | Default |
|---|---|
| Status of the Copy | Disabled (or Same as the source) |
| Attributes Cleared on the Copy | meta_title, meta_description, meta_keywords |
| "Copy Product Assignments" Checked by Default | No |
| Maximum Branch Size (categories, top included) | 300 |
Raise the maximum branch size only if your PHP and web server timeouts allow it: the whole branch is copied in a single request and a single transaction.
ACL permissions
| Resource | Grants |
|---|---|
Wimakeit_CategoryDuplicate::duplicate (under Catalog > Inventory > Categories) | the button and the duplication |
Wimakeit_CategoryDuplicate::config | the configuration section |
Both are granted to the Administrator role only. Assign them to the back-office roles that manage the catalogue.
Product URL rewrites
Product URLs are generated per category only when the core setting Generate "category/product" URL Rewrites is on (off by default). With it on, copying a large branch with its products creates many product URL rewrites.
No cron, no env keys
The module has no cron jobs and no app/etc/env.php keys to set.
- Version
- v1.0.0
- Support
- 12 months
- Last updated
- Oct 19, 2026
- Magento
- Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
- PHP
- PHP 8.2 PHP 8.3
- Hyvä
- Compatible
- Package
-
wimakeit/module-category-duplicate
Compatibility checker
Pick your stack to see if this module fits.
Changelog
Categories: Security, Feature, Fix, Perf, Admin, Deps.
[1.0.0] - 2026-10-14
Feature
- Initial public release of Wimakeit Category Duplicate for Magento 2 / Mage-OS.
- "Duplicate this branch" button on the admin category edit page: copies the category and all its subcategories next to the source, under a new name, optionally with the product assignments and their positions.
- Every non-static category attribute and every store-view override is copied; meta title, description and keywords are cleared and unique attributes skipped. The copy is created disabled by default.
- URL keys and URL rewrites are built for the copy on every store view, including store views that override a URL key inside the branch.
- Names and URL keys are checked against the categories at the same level before anything is written; the whole duplication runs in one transaction.
- No permanent redirect is created when a copy that has never been enabled is renamed or moved; the "Create Permanent Redirect" checkbox is replaced by an explanatory note on such copies.
wimakeit_category_duplicate_afterevent with the source → copy ID map, for modules storing per-category data in their own tables.- Admin configuration (copy status, cleared attributes, product copy default, maximum branch size), ACL resources, French and Dutch translations.
Found a bug? Tell us about it.
A short form opens in a new tab — the module name and your language are already filled in. Share what you tried, what went wrong, and we will get back to you within one business day.
Report a bug for Category DuplicateNeed help?
Our team is available to assist with integration.