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_path attribute lookup now honours the database table prefix
  • bin/magento no 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:regenerate for 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
Changelog — URL Regeneration — Deployment & Operations — Extensions | qoliber Docs