3 min readNov 1, 2026by jakub
Changelog
Current version: 1.0.6
[1.0.6] - 2026-10-30
Fixed
- Product and category URLs are generated for every store view again: with more than one store view, all rewrites were written to the first store view and the others were left without any
- Category regeneration no longer fails with an SQL error on catalogs with more than one root category
- Saving an empty set of URL rewrites no longer fails with an SQL error
- URL rewrites are written in batches of 1000 rows instead of a single statement, so large catalogs stay under MySQL's
max_allowed_packet - The
url_pathattribute lookup now honours the database table prefix bin/magentono longer reports an implicitly nullable parameter in the console command on PHP 8.4 and 8.5
Changed
- composer.json now declares the PHP range and every Magento package the module uses, with minimum versions
[1.0.5] - 2025-09-15
Fixed
- Fixed category URL generation in AbstractEntityUrlGenerationService
- Improved error handling in URL generation process
[1.0.4] - 2025-09-15
Fixed
- Fixed category URL generation logic in CategoryUrlGenerationService
- Improved URL generation stability
[1.0.3] - 2025-07-02
Fixed
- Fixed category ordering during URL regeneration process
- Fixed product URL generation ordering
- Ensured consistent URL generation sequence
[1.0.2] - 2025-07-02
Added
- Implemented automatic removal of old URL rewrite entries before regeneration
- Added cleanup mechanism to prevent duplicate URL rewrites in database
Changed
- Enhanced AbstractEntityUrlGenerationService with old entry removal
- Updated AbstractUrlGenerationService to support cleanup operations
- Improved CategoryUrlGenerationService with pre-generation cleanup
- Enhanced ProductUrlGenerationService with old entry removal
[1.0.1] - 2025-06-30
Changed
- Refactored to use ResourceConnection for table name retrieval
- Improved database resource usage consistency across all services
- Enhanced AbstractUrlGenerationService with proper resource handling
- Updated CategoryUrlGenerationService to use ResourceConnection
- Updated CmsUrlGenerationService to use ResourceConnection
- Updated ProductUrlGenerationService to use ResourceConnection
Fixed
- Fixed license file formatting (LICENSE.md)
[1.0.0] - 2025-06-19
Added
- Initial release of URL Regeneration module for bulk URL rewrite management
- Implemented console command
qoliber:url:regeneratefor regenerating URL rewrites - Added support for regenerating product URLs
- Added support for regenerating category URLs
- Added support for regenerating CMS page URLs
- Implemented UrlGeneratorInterface for extensible URL generation
- Added AbstractUrlGenerationService base class for common URL generation logic
- Implemented AbstractEntityUrlGenerationService for entity-based URL operations
- Added ProductUrlGenerationService for product URL regeneration:
- Processes all products across all store views
- Generates SEO-friendly URLs based on product names
- Creates URL rewrites in url_rewrite table
- Handles store-specific URL generation
- Added CategoryUrlGenerationService for category URL regeneration:
- Processes entire category tree
- Generates hierarchical category URLs
- Handles parent-child category relationships
- Creates store-specific category URLs
- Added CmsUrlGenerationService for CMS page URL regeneration:
- Processes all CMS pages
- Generates URLs based on page identifiers
- Handles store-specific CMS URLs
- Implemented efficient bulk URL generation using direct SQL operations
- Added proper store scope handling for multi-store setups
- Implemented request path generation for SEO-friendly URLs
- Added target path generation for URL rewrite redirects
- Implemented dependency on qoliber/core for shared functionality
- Added dependency on qoliber/mysql-utils for optimized database operations
Use Cases
- Bulk regeneration of URLs after import/migration
- Fixing broken or missing URL rewrites
- Standardizing URL structure across entire catalog
- Recovering from database corruption affecting URL rewrites
- Cleaning up duplicate or malformed URLs
- Implementing new URL patterns store-wide
Performance
- Optimized for large catalogs with thousands of products/categories
- Uses direct SQL operations for maximum speed
- Batch processing to minimize memory usage
- Progress tracking during regeneration
Technical Details
- Service-based architecture for easy extension
- Dependency injection throughout
- Proper resource model usage
- Store-aware URL generation
- Support for multiple entity types