Magento 2 module which can find potential url related problems in your catalog data

Overview

Url data integrity checker module for Magento 2

Purpose

The purpose of this module is to give store owners of a Magento 2 shop insight into what url-related problems they have in their products, categories and url rewrites.
It was explicitly chosen not to have automated fixers for these problems, since fixing these issues can have a significant SEO impact.
It should be up to the store owner to figure out how he/she wants to fix these problems. Doing this with an automated tool might have a negative impact on SEO rankings, hence why it only reports problems and doesn't try to fix them.

Implemented features

  • It can detect categories having incorrect url_path attribute values
  • It can detect categories having duplicated url_key attribute values within the same parent
  • It can detect categories having an empty url_key attribute value
  • It can detect products having non-empty url_path attribute values
  • It can detect products having duplicated url_key attribute values on the same store view
  • It can detect products having an empty url_key attribute value

Roadmap

  • Detecting incorrectly generated url rewrites
  • Making cronjob execution times configurable
  • Increasing performance of checkers, these are currently written for accuracy and not for speed
  • Add a legend above the admin grids with a mapping of store view id's with their names
  • Improve tests
  • ...

Compatibility

This module should be compatible with Magento 2.1.x, 2.2.x, 2.3.x and 2.4.x versions.
Some code in this module is using old ways of doing things. It could have been written in a more modern way (using message queues instead of cronjobs, use newer syntax for UI components, ...). But we wanted this module to be compatible with older versions of Magento, so we've chosen this route for now.

The module should be compatible with PHP 7.0, 7.1, 7.2, 7.3 and 7.4

Installation

You can use composer to install this module:

composer require baldwin/magento2-module-url-data-integrity-checker

Or download the code and put all the files in the directory app/code/Baldwin/UrlDataIntegrityChecker

After which you can then activate it in Magento using:

bin/magento setup:upgrade

Usage

There are some automatic cronjobs running every night at 02:10, 02:15, 02:20 and 02:30 which will run the various checkers of this module.
You can also opt to manually refresh one of the checkers in the Magento admin, which will schedule one of the cronjobs to be ran the next minute. You'll have to wait a few minutes (depending on the number of problems and how big your catalog is) before you'll see the results appearing. You'll need to refresh the page yourself btw, it won't happen by itself.

There are also some cli commands you can execute, which will give you instant feedback about found problems, and will also store that data so you can see them in the Magento admin:

  • bin/magento catalog:category:integrity:urlkey
  • bin/magento catalog:category:integrity:urlpath
  • bin/magento catalog:product:integrity:urlkey
  • bin/magento catalog:product:integrity:urlpath

In the Magento admin, you can find the results in:

  • for Magento 2.1.x: Products > Data Integrity Checker
  • for Magento 2.2.0 and higher: Catalog > Data Integrity Checker

The results of the checkers are currently stored by default in the directory var/tmp as .json files.
But you can change the path in the backend settings under Stores > Configuration > Catalog > Url Data Integrity Checker by entering a relative path starting from the Magento installation directory or an absolute path. The directory you enter there needs to exist before it will work.

You can configure this module to ignore problems with invisible products (via Stores > Configuration > Catalog > Url Data Integrity Checker). Because in recent versions of Magento, url rewrites for invisible products are not being generated, so if there are problems with the url_path or url_key attributes of such products, they should not cause issues with url rewrites. An additional benefit of this option is that it will use less time and less memory to run the product checkers. This option is disabled by default, so you'll need to enable it.

Some screenshots

Example of backend report for product url key problems

Backend example for product url keys

Example of cli report for category url path problems

CLI example for category url paths

Contributing

After cloning your fork:

  1. Create an auth.json file with your credentials for https://repo.magento.com/
  2. Run composer install
  3. Make sure running make check doesn't report problems with proposed changes
Comments
  • Can't find category with id / We are already refreshing the category url key's, just have a little patience πŸ™‚

    Can't find category with id / We are already refreshing the category url key's, just have a little patience πŸ™‚

    On first try of this command ( catalog:category:integrity:urlkey )

    I got this error : Can't find category with id

    And if try to launch again : We are already refreshing the category url key's, just have a little patience πŸ™‚

    An unexpected exception occured: 'Can't find category with id: '36764''
    #0 /var/www/html/vendor/baldwin/magento2-module-url-data-integrity-checker/Checker/Catalog/Category/UrlPath.php(117): Baldwin\UrlDataIntegrityChecker\Checker\Catalog\Category\UrlPath->fetchAllCategoriesWithUrlPathCalculatedByUrlKey()
    #1 /var/www/html/vendor/baldwin/magento2-module-url-data-integrity-checker/Checker/Catalog/Category/UrlKey/DuplicateUrlKey.php(87): Baldwin\UrlDataIntegrityChecker\Checker\Catalog\Category\UrlPath->getCalculatedUrlPathForCategory(Object(Magento\Catalog\Model\Category\Interceptor), 1)
    #2 /var/www/html/vendor/baldwin/magento2-module-url-data-integrity-checker/Checker/Catalog/Category/UrlKey/DuplicateUrlKey.php(48): Baldwin\UrlDataIntegrityChecker\Checker\Catalog\Category\UrlKey\DuplicateUrlKey->getCategoryUrlPathsByStoreId(1)
    #3 /var/www/html/vendor/baldwin/magento2-module-url-data-integrity-checker/Checker/Catalog/Category/UrlKey/DuplicateUrlKey.php(34): Baldwin\UrlDataIntegrityChecker\Checker\Catalog\Category\UrlKey\DuplicateUrlKey->checkForDuplicatedUrlKeyAttributeValues()
    #4 /var/www/html/vendor/baldwin/magento2-module-url-data-integrity-checker/Checker/Catalog/Category/UrlKey.php(32): Baldwin\UrlDataIntegrityChecker\Checker\Catalog\Category\UrlKey\DuplicateUrlKey->execute()
    #5 /var/www/html/vendor/baldwin/magento2-module-url-data-integrity-checker/Updater/Catalog/Category/UrlKey.php(47): Baldwin\UrlDataIntegrityChecker\Checker\Catalog\Category\UrlKey->execute()
    #6 /var/www/html/vendor/baldwin/magento2-module-url-data-integrity-checker/Console/Command/CheckCategoryUrlKeys.php(64): Baldwin\UrlDataIntegrityChecker\Updater\Catalog\Category\UrlKey->refresh('CLI')
    #7 /var/www/html/vendor/symfony/console/Command/Command.php(255): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #8 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(58): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #9 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(138): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor->___callParent('run', Array)
    #10 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(153): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor->Magento\Framework\Interception\{closure}(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #11 /var/www/html/generated/code/Baldwin/UrlDataIntegrityChecker/Console/Command/CheckCategoryUrlKeys/Interceptor.php(23): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor->___callPlugins('run', Array, Array)
    #12 /var/www/html/vendor/symfony/console/Application.php(1009): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #13 /var/www/html/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand(Object(Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #14 /var/www/html/vendor/magento/framework/Console/Cli.php(115): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #15 /var/www/html/vendor/symfony/console/Application.php(149): Magento\Framework\Console\Cli->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #16 /var/www/html/bin/magento(23): Symfony\Component\Console\Application->run()
    #17 {main}
    root@prod-m2-fo-6959cb5f58-p6bvb:/var/www/html# ./magento catalog:category:integrity:urlkey
    An unexpected exception occured: 'We are already refreshing the category url key's, just have a little patience πŸ™‚'
    #0 /var/www/html/vendor/baldwin/magento2-module-url-data-integrity-checker/Console/Command/CheckCategoryUrlKeys.php(64): Baldwin\UrlDataIntegrityChecker\Updater\Catalog\Category\UrlKey->refresh('CLI')
    #1 /var/www/html/vendor/symfony/console/Command/Command.php(255): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #2 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(58): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #3 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(138): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor->___callParent('run', Array)
    #4 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(153): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor->Magento\Framework\Interception\{closure}(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #5 /var/www/html/generated/code/Baldwin/UrlDataIntegrityChecker/Console/Command/CheckCategoryUrlKeys/Interceptor.php(23): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor->___callPlugins('run', Array, Array)
    #6 /var/www/html/vendor/symfony/console/Application.php(1009): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #7 /var/www/html/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand(Object(Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlKeys\Interceptor), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #8 /var/www/html/vendor/magento/framework/Console/Cli.php(115): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #9 /var/www/html/vendor/symfony/console/Application.php(149): Magento\Framework\Console\Cli->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
    #10 /var/www/html/bin/magento(23): Symfony\Component\Console\Application->run()
    #11 {main}
    
    opened by Nuranto 10
  • Integration tests failing after module installation

    Integration tests failing after module installation

    After installing this module via composer, our integration testing suite broke. This is because of the three console commands that this module provides. I'll create a PR it fix this in a minute.

    integration_test_fix

    opened by Tjitse-E 9
  • Call to undefined method Baldwin\UrlDataIntegrityChecker\Model\ResourceModel\Catalog\Product\UrlKeyCollection::getMainTable()

    Call to undefined method Baldwin\UrlDataIntegrityChecker\Model\ResourceModel\Catalog\Product\UrlKeyCollection::getMainTable()

    Hello,

    I have installed it yesterday in am magento 2.3.5p1 installation via composer.

    CLI ist working. But backend not. I am getting this error:

    Call to undefined method Baldwin\UrlDataIntegrityChecker\Model\ResourceModel\Catalog\Product\UrlKeyCollection::getMainTable()

    kind regards

    opened by senders 7
  • Ignore Not Visible Products

    Ignore Not Visible Products

    First, thanks a lot for this useful tool!

    Shouldn't we ignore products, which are set to "Not Visible Individually" in the catalog:product:integrity:urlkey command? The reason is that these products are ignored when catalog URL rewrites are generated, see \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator::generate. Hence, I think we need to add ->addAttributeToFilter('visibility', ['neq' => Visibility::VISIBILITY_NOT_VISIBLE]) here:

    https://github.com/baldwin-agency/magento2-module-url-data-integrity-checker/blob/654800a37c48db9a754b10e08337ecb1a9913aa3/Checker/Catalog/Product/UrlKey/DuplicateUrlKey.php#L79-L88

    Does that make sense to you?

    opened by sprankhub 6
  • Add edit action to admin grids

    Add edit action to admin grids

    This pull request adds an 'edit' action to each of the four admin grids. This action goes to the relevant product/category at the indicated store view, allowing an administrator to make changes to the product/category in question.

    opened by fredden 5
  • catalog:product:integrity:urlkey shows false positives

    catalog:product:integrity:urlkey shows false positives

    When I run bin/magento catalog:product:integrity:urlkey these are the results;

    +------------+-----------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+        
    | Product ID | SKU             | Store ID | Problem                                                                                                                                                        |        
    +------------+-----------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | 300        | KG101           | 1        | Product has a duplicated url_key value (playgrass). It's the same as another product (ID: 346, Store: 1). Please fix because this will cause problems.         |
    | 300        | KG101           | 14       | Product has a duplicated url_key value (playgrass). It's the same as another product (ID: 346, Store: 14). Please fix because this will cause problems.        |
    | 346        | DE115           | 1        | Product has a duplicated url_key value (playgrass). It's the same as another product (ID: 300, Store: 1). Please fix because this will cause problems.         |
    | 346        | DE115           | 14       | Product has a duplicated url_key value (playgrass). It's the same as another product (ID: 300, Store: 14). Please fix because this will cause problems.        |
    +------------+-----------------+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------+
    

    When I check my database using this query, I get the following results;

    SELECT t.* FROM catalog_product_entity_varchar t WHERE attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'url_key' AND entity_type_id = 4) and entity_id IN (300,346)

    | value_id | attribute_id | store_id | entity_id | value | | :--- | :--- | :--- | :--- | :--- | | 19165 | 86 | 0 | 300 | playgrass-KG101 | | 3761705 | 86 | 1 | 300 | playgrass | | 3761706 | 86 | 14 | 300 | playgrass | | 26872 | 86 | 0 | 346 | playgrass-DE115 | | 3761707 | 86 | 1 | 346 | playgrass | | 3640255 | 86 | 14 | 346 | playgrass |

    I then remove all url_rewrites for these products and regenerate them using our regenerate catalog URL extension;

    bin/magento regenerate:product:url -s all 300 346

    These are the results;

    | url_rewrite_id | entity_type | entity_id | request_path | target_path | redirect_type | store_id | description | is_autogenerated | metadata | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | 2 | product | 300 | playgrass | catalog/product/view/id/300 | 0 | 1 | NULL | 1 | NULL | | 3 | product | 346 | playgrass | catalog/product/view/id/346 | 0 | 14 | NULL | 1 | NULL |

    Which is perfectly fine, no URL collissions! Therefore I believe this extension returns false positives.

    opened by peterjaap 5
  • Call to undefined method on all backend views / incompatible with firecheckout

    Call to undefined method on all backend views / incompatible with firecheckout

    /baldwin_urldataintegritychecker/catalog_category_urlPath/:

    Call to undefined method Baldwin\UrlDataIntegrityChecker\Model\ResourceModel\Catalog\Category\UrlPathCollection\Interceptor::getMainTable()
    Exception in vendor/swissup/module-checkout-fields/Plugin/Ui/Component/OrderListingData.php:42
    

    /baldwin_urldataintegritychecker/catalog_category_urlKey/:

    Call to undefined method Baldwin\UrlDataIntegrityChecker\Model\ResourceModel\Catalog\Category\UrlKeyCollection\Interceptor::getMainTable()
    Exception in vendor/swissup/module-checkout-fields/Plugin/Ui/Component/OrderListingData.php:42
    

    /baldwin_urldataintegritychecker/catalog_product_urlPath/:

    Call to undefined method Baldwin\UrlDataIntegrityChecker\Model\ResourceModel\Catalog\Product\UrlPathCollection\Interceptor::getMainTable()
    Exception in vendor/swissup/module-checkout-fields/Plugin/Ui/Component/OrderListingData.php:42
    

    /baldwin_urldataintegritychecker/catalog_product_urlKey/:

    Call to undefined method Baldwin\UrlDataIntegrityChecker\Model\ResourceModel\Catalog\Product\UrlKeyCollection\Interceptor::getMainTable()
    Exception in vendor/swissup/module-checkout-fields/Plugin/Ui/Component/OrderListingData.php:42
    

    Is this something that can be fixed here or do I need to address conflicting module? It's https://www.firecheckout.net/ by https://swissuplabs.com/

    opened by Morgy93 5
  • Github actions - ease testing and configurable path

    Github actions - ease testing and configurable path

    I installed in a multi-container environment and the tmp var was not mounted and therefore was not shared between containers. I recommend that you allow the path of the json files to be configurable.

    Also I took the time to create github actions based on your Makefile. Easier to test code submissions.

    opened by DominicWatts 4
  • Issue Data Integrity - Product Url Key

    Issue Data Integrity - Product Url Key

    Hi, in M 2.3.5-p2 Catalog > Data Integrity Checker > Product Url Key

    Call to undefined method Baldwin\UrlDataIntegrityChecker\Model\ResourceModel\Catalog\Product\UrlKeyCollection::getMainTable()

    Data Integrity - Product Url Path

    Call to undefined method Baldwin\UrlDataIntegrityChecker\Model\ResourceModel\Catalog\Product\UrlPathCollection::getMainTable()

    Thank you

    opened by teodorpav 4
  • Make module compatible with Magento 2.4

    Make module compatible with Magento 2.4

    • add @var to unit test (phpstan threw errors)
    • update composer dependencies according to Magento 2.4
    • update unit test to make it compatible

    Due to the phpunit change, it's no longer backwards compatible with earlier versions of Magento. Let me know If you want to have additional changes or so because of it.

    opened by mbijnsdorp 4
  • Area code is already set

    Area code is already set

    Magento Version: 2.2.1

    Reproduce Run any of the CLI commands provided in the README.md of the module.

    Result Screenshot image

    Output in text format application@f38ef7308717:/app$ bin/magento catalog:category:integrity:urlpath An unexpected exception occured: 'Area code is already set' #0 /app/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\State->setAreaCode('crontab') #1 /app/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\State\Interceptor->___callParent('setAreaCode', Array) #2 /app/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\State\Interceptor->Magento\Framework\Interception\{closure}('crontab') #3 /app/generated/code/Magento/Framework/App/State/Interceptor.php(52): Magento\Framework\App\State\Interceptor->___callPlugins('setAreaCode', Array, Array) #4 /app/app/code/Baldwin/UrlDataIntegrityChecker/Console/Command/CheckCategoryUrlPaths.php(57): Magento\Framework\App\State\Interceptor->setAreaCode('crontab') #5 /app/vendor/symfony/console/Command/Command.php(245): Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlPaths->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #6 /app/vendor/symfony/console/Application.php(835): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #7 /app/vendor/symfony/console/Application.php(185): Symfony\Component\Console\Application->doRunCommand(Object(Baldwin\UrlDataIntegrityChecker\Console\Command\CheckCategoryUrlPaths), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #8 /app/vendor/magento/framework/Console/Cli.php(102): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #9 /app/vendor/symfony/console/Application.php(117): Magento\Framework\Console\Cli->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) #10 /app/bin/magento(23): Symfony\Component\Console\Application->run() #11 {main}

    Expected result List of URL path / URL key issues.

    Note Admin panel version of the module works.

    opened by IlliaGoldin 3
  • Remove unnecessary setup version

    Remove unnecessary setup version

    If I am not mistaken, this module does not rely on any setup / upgrade scripts. Hence, there is no need for a setup version. Having it still in the config means that we cannot have a zero-downtime-deployment when deploying this module (since bin/magento setup:db:status will say updates are necessary).

    opened by sprankhub 2
  • Memory exhausted

    Memory exhausted

    Hitting the memory limit when trying to open product_url key report

    The file size of the json file is 96mb and the memory limit is 1gb.

    Anybody who can clarify why it was decided to store these reports in the filesystem instead of the database?

    opened by mortenbirkelund 2
  • git hub actions

    git hub actions

    docker container based github actions to test code instead of makefile which for example relies on components being available locally. Plus get added automatic code scan on any PRs

    key is in action so publicly visible but no reason couldn't utilise github secrets for key

    this is more a demo of what can be done

    Results look like this:

    https://github.com/DominicWatts/magento2-module-url-data-integrity-checker/actions

    You don't have to use container approach e.g. https://github.com/DominicWatts/Menu/blob/master/.github/workflows/standards.yml

    However the reason I use container based approach is it's easier to switch php version and also for phpstan in particular not to throw false positives if components from M2 required modules are used : php_intl - e.g. IntlDateFormatter not found etc.

    https://github.com/DominicWatts/PHPStan

    But certainly container based unit tests are difficult

    opened by DominicWatts 2
  • Feature request: Check url rewrites of disabled products pointing to non existing categories

    Feature request: Check url rewrites of disabled products pointing to non existing categories

    Might be a bug in Magento but on a project, I noticed some URL rewrites still existed for disabled products pointing to categories that had been removed. (Magento is 2.2.7 so update is needed anyway, only not clear if the URLs will get cleaned up after the upgrade)

    opened by Echron 0
  • Detect url_key's which aren't normalized

    Detect url_key's which aren't normalized

    We should add some checks to see if url_key's in the database are normalized or not (contain unexpected characters). If they aren't normalized these can cause bad things.

    Apparently there was a bug introduced in Magento 2.3.3 (which has been fixed in 2.4.0) which allowed this problem to happen.

    So it would be nice if this tool could detect such problems. The bug only existed for product url_keys, but maybe we should also check the categories, you never know ...

    opened by hostep 8
  • Killed Integrity Urlkey process in console

    Killed Integrity Urlkey process in console

    After the process is finished and the percentage is 100%, the console printed "Killed" and the backend shows the message "We are already refreshing the product url key's, just have a little patience". But nothing happens and when I try to run the process again from the console, an exception is displayed with the same message. "An unexpected exception occured: 'We are already refreshing the product url key's, just have a little patience"

    I hope they can help me. Thank you very much.

    opened by gifrancohe 7
Releases(v1.5.0)
  • v1.5.0(Jul 7, 2022)

  • v1.4.0(Jan 30, 2022)

    New

    • Added compatibility with PHP 8.1 for the upcoming Magento 2.4.4 release (f78bf28 & d9ad393)
    • Added a configuration option in Stores > Configuration > Catalog > Url Data Integrity Checker, to disable checking for problems with products that are invisible (#31)

    Improvements

    • Version 1.3.2 added a bugfix, but it introduced a small performance problem with that, this has been improved now (27c8c97)
    • Small code improvements based on newer versions of static analyser tools
    Source code(tar.gz)
    Source code(zip)
  • v1.3.2(Dec 20, 2021)

    Bugfixes

    • Some url_path problems with categories weren't being detected if a parent category overwrote the url_path on storeview level while the category being investigated didn't. This has been corrected now (https://github.com/baldwin-agency/magento2-module-url-data-integrity-checker/commit/f875a5351ea06acfb6291ca1c73610f1cb72b039)
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Oct 23, 2021)

    Improvements

    • Should an error have occurred while running the checkers, it will now be displayed in red in the backoffice (936e7445c9f5adbe270b9b68c7451acccffcb89c)
    • Improved error message you get when a category id is used in another category's path that no longer exists (936e7445c9f5adbe270b9b68c7451acccffcb89c)

    Bugfixes

    • Remove metadata flag that a command is still running after it ran into an exception (#30, 8a1ddb494b3075fbaa48448a6ecd5bb28423768e)
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Sep 26, 2021)

    New

    • You can now specify the location of where the json files that store the results are saved on the filesystem. This is now possible using the setting: Stores > Configuration > Catalog > Url Data Integrity Checker, thanks to @DominicWatts (#28)

    Improvements

    • Removed some calls to deprecated methods (aa47d0492770477a943fb093a232e51da2c10750)
    Source code(tar.gz)
    Source code(zip)
  • v1.2.2(Mar 22, 2021)

    Bugfixes

    • The category url key duplicated checker now no longer shows problems that were exactly the same as another reported problem - #23
    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Mar 4, 2021)

  • v1.2.0(Aug 2, 2020)

  • v1.1.0(Jun 26, 2020)

    New features

    • Added checkers for the url_key attribute of categories: duplicated and empty checkers were added which can be triggered via the bin/magento catalog:category:integrity:urlkey command and there is a new menu item in the backend as well - #7

    Improvements

    • We now clear the previous results when a checker starts refreshing, so you no longer see potentially outdated results while a checker is still updating - 395446f41efc0d9482c5b499df935bf35a1eb318
    • Code improvements from static code analysis

    Bugfixes

    • Sometimes a grid in the adminhtml could show rows with exactly the same content after sorting some columns a few times. This has been fixed - dc53b31ec18d70ac6a817dca317e1b1f019e2d84
    Source code(tar.gz)
    Source code(zip)
Owner
Baldwin
We design, develop & boost unified commerce solutions.
Baldwin
IgAnalyzer - Find non-followers and potential stalkers.

igAnalyzer Features Shows mutual followers, non-followers and non-followings via pie chart Shows monthly followers via area chart Shows followers via

LIII 6 Sep 9, 2022
YCOM Impersonate. Login as selected YCOM user πŸ§™β€β™‚οΈin frontend.

YCOM Impersonate Login as selected YCOM user in frontend. Features: Backend users with admin rights or YCOM[] rights, can be automatically logged in v

Friends Of REDAXO 17 Sep 12, 2022
Magento 2 Module Experius Page Not Found 404. This module saves all 404 url to a database table

Magento 2 Module Experius Page Not Found 404 This module saves all 404 urls to a database table. Adds an admin grid with 404s It includes a count so y

Experius 28 Dec 9, 2022
This library implements a fuzzer for PHP, which can be used to find bugs in libraries

PHP Fuzzer This library implements a fuzzer for PHP, which can be used to find bugs in libraries (particularly parsing libraries) by feeding them "ran

Nikita Popov 341 Dec 25, 2022
JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

JSONFinder - a library that can find json values in a mixed text or html documents, can filter and search the json tree, and converts php objects to json without 'ext-json' extension.

Eboubaker Eboubaker 2 Jul 31, 2022
As many Magento patches as I can find!

Magento Resources and Links I have been looking for a good repository for all resources for Magento and I thought I will start putting them here for n

Brent W. Peterson 271 Dec 22, 2022
This package contains a PHP implementation to solve 3D bin packing problems.

3D Bin Packager This package contains a PHP implementation to solve 3d bin packing problems based on gedex implementation on Go and enzoruiz implement

Farista Latuconsina 7 Nov 21, 2022
Debug with Ray to fix problems faster

Debug with Ray to fix problems faster This package can be installed in any PHP application to send messages to the Ray app. The desktop app: can be us

Spatie 458 Dec 27, 2022
Shortener URL is simple web application to short your URL

Shortener URL is simple web application to short your URL. It will generate unique key, with the unique key it will redirect to the original URL.

Abid Ra 1 Jan 22, 2022
A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

A Magento 2 module that allows for creating discrete PDP (Product Detail Pages) page layouts for customers landing on the site from a PPC (Pay Per Click) link/ad by allowing routing to the same pages using a `/ppc/` prefix in the URL path.

null 16 Nov 11, 2022
Iran decoration platform is an open source Php web application where you can find your job as a freelancer working in people home in decoration positions and others.

Iran-Decoration Platform Iran decoration platform is an open source Php web application where you can find your job as a freelancer working in people

AmirHossein Mohammadi 8 Dec 14, 2022
A tool that allows to quickly export data from Magento 1 and Magento 2 store and import it back into Magento 2

Simple Import / Export tool A tool that allows to quickly export data from Magento 1 and Magento 2 store and import it back into Magento 2. Table data

EcomDev B.V. 51 Dec 5, 2022
The swiss army knife for Magento developers, sysadmins and devops. The tool provides a huge set of well tested command line commands which save hours of work time. All commands are extendable by a module API.

netz98 magerun CLI tools for Magento 2 The n98 magerun cli tools provides some handy tools to work with Magento from command line. Build Status Latest

netz98 758 Dec 28, 2022
A Magento 1.x module which facilitates automatic purging of static assets from HTTP caches such as browser cache, CDN, Varnish, etc using best practices outlined within the HTML5 boilerplate community.

Magento Cachebuster Cachebuster is a Magento module which facilitates automatic purging of static assets from HTTP caches such as browser cache, CDN,

Gordon Knoppe 129 Apr 1, 2022
Get mobile app version and other related data from Google Play Store, Apple App Store and Huawei AppGallery

Mobile App Version Get mobile app version and other related data from Google Play Store, Apple App Store and Huawei AppGallery. Installation Add to co

Omer Salaj 11 Mar 15, 2022
AnsibleBoy aims to use the Asnible `facts` as data, which can then be visualized in a table format

AnsibleBoy - Ansible Frontend Hub About AnsibleBoy aims to use the Ansible facts as data, which can then be visualized as a table ToDo (note that this

Ron 23 Jul 14, 2022