Skip to main content

Find Duplicate Url In Magento

Find Duplicate Product Url


    SELECT Count(*),value
    FROM   catalog_product_entity_varchar v
    WHERE  EXISTS (SELECT *
        FROM   eav_attribute a
        WHERE  attribute_code = "url_key"
        AND v.attribute_id = a.attribute_id
        AND EXISTS (SELECT *
                    FROM   eav_entity_type e WHERE 
                    entity_type_code = "catalog_product"
                    AND a.entity_type_id = e.entity_type_id
        ))
        AND store_id = 0
        GROUP  BY v.value
        HAVING Count(*) > 1

Find Duplicate Category Url


    SELECT Count(*),value
    FROM   catalog_category_entity_varchar v
    WHERE  EXISTS (SELECT *
           FROM   eav_attribute a
           WHERE  attribute_code = "url_key"
                  AND v.attribute_id = a.attribute_id
                  AND EXISTS (SELECT *
                              FROM   eav_entity_type e
                              WHERE  entity_type_code = "catalog_category"
                                     AND a.entity_type_id = e.entity_type_id
                             ))
           AND store_id = 0
    GROUP  BY v.value
    HAVING Count(*) > 1

Update Category Data

For review purposes, find all category with uppercase url keys


    SELECT *
    FROM   catalog_category_entity_varchar v
    WHERE  `value` REGEXP BINARY '[A-Z]'
           AND EXISTS (SELECT *
               FROM   eav_attribute a
               WHERE  attribute_code = "url_key"
                      AND v.attribute_id = a.attribute_id
                      AND EXISTS (SELECT *
                                  FROM   eav_entity_type e
                                  WHERE  entity_type_code =
                                         "catalog_category"
                                         AND a.entity_type_id =
                                             e.entity_type_id));

Update all category url keys that have uppercase values to make them have lowercase values


    UPDATE catalog_category_entity_varchar v
    SET    `value` = Lower(`value`)
    WHERE  EXISTS (SELECT *
                   FROM   eav_attribute a
                   WHERE  attribute_code = "url_key"
                          AND v.attribute_id = a.attribute_id
                          AND EXISTS (SELECT *
                                  FROM   eav_entity_type e
                                  WHERE  entity_type_code = "catalog_category"
                                         AND a.entity_type_id = e.entity_type_id
                                     ))
           AND `value` REGEXP BINARY '[A-Z]';

Update Product Data

For review purposes, find all products with uppercase url keys


    SELECT *
    FROM   catalog_product_entity_varchar v
    WHERE  `value` REGEXP BINARY '[A-Z]'
           AND EXISTS (SELECT *
                FROM   eav_attribute a
                WHERE  attribute_code = "url_key"
                    AND v.attribute_id = a.attribute_id
                    AND EXISTS (SELECT *
                                FROM   eav_entity_type e
                                WHERE  entity_type_code =
                                        "catalog_product"
                                        AND a.entity_type_id = e.entity_type_id));

Update all product url keys that have uppercase values to make them have lowercase values


    UPDATE catalog_product_entity_varchar v
    SET    `value` = Lower(`value`)
    WHERE  EXISTS (SELECT *
                   FROM   eav_attribute a
                   WHERE  attribute_code = "url_key"
                          AND v.attribute_id = a.attribute_id
                          AND EXISTS (SELECT *
                                      FROM   eav_entity_type e
                                      WHERE  entity_type_code = "catalog_product"
                                             AND a.entity_type_id =
                                     e.entity_type_id))
           AND `value` REGEXP BINARY '[A-Z]';

Update url_rewrite Data for magento 1

For review purposes, find all url_rewrite entries with uppercase url keys


    SELECT * FROM core_url_rewrite WHERE  request_path REGEXP BINARY '[A-Z]';  

Update all url keys that have uppercase values to make them have lowercase values


    UPDATE core_url_rewrite
        SET    `request_path` = Lower(`request_path`)
        WHERE  `request_path` REGEXP BINARY '[A-Z]';  

Update url_rewrite Data for magento 2

For review purposes, find all product url_rewrite entries with uppercase url keys


    SELECT *
    FROM   url_rewrite
    WHERE request_path REGEXP BINARY '[A-Z]';

Update all product url keys that have uppercase values to make them have lowercase values


    UPDATE url_rewrite
    SET    `request_path` = Lower(`request_path`)
    WHERE  `request_path` REGEXP BINARY '[A-Z]';

Comments

Popular posts from this blog

Magento 2 generate custom log

the custom log file created using below code for Magento 2.4.2 before version use this :  $writer = new \Zend\Log\Writer\Stream (BP . '/var/log/custom.log' ); $logger = new \Zend\Log\Logger (); $logger -> addWriter ( $writer ); $logger -> info ( 'Custom message' ); $logger -> info ( print_r ( $object -> getData (), true )); for Magento 2.4.2 or after version use this :  $writer = new \Laminas\Log\Writer\Stream (BP . '/var/log/custom.log' ); $logger = new \Laminas\Log\Logger (); $logger -> addWriter ( $writer ); $logger -> info ( 'text message' ); $logger -> info ( print_r ( $object -> getData (), true )); for Magento 2.4.3 version use this $writer = new \Zend_Log_Writer_Stream (BP . '/var/log/custom.log' ); $logger = new \Zend_Log (); $logger -> addWriter ( $writer ); $logger -> info ( 'text message' ); $logger -> info ( print_r ( $object -> getData (), true )); Or you can try this : f...

TO Execute Multiple Raw Query In Magento 2

<?php         /*          *          * TO Execute Multiple Raw Query In Magento 2          *          * */ $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $resource = $objectManager->get('Magento\Framework\App\ResourceConnection'); $conn = $resource->getConnection('write'); $sqlScript = file($sqlFile); $query = ''; foreach ($sqlScript as $line) { $startWith = substr(trim($line), 0 ,2); $endWith = substr(trim($line), -1 ,1); if (empty($line) || $startWith == '--' || $startWith == '/*' || $startWith == '//') continue; $query = $query . $line; if ($endWith == ';') { $conn->query($query); $query= ''; } } echo '<div class="success-response sql-import-response">SQL file imported successfully</div>';

Magento 2 Change Core Config Value Programmatically

$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); // Instance of object manager $cacheTypeList = $objectManager->get('\Magento\Framework\App\Cache\TypeListInterface'); $cacheFrontendPool = $objectManager->get('\Magento\Framework\App\Cache\Frontend\Pool'); $resource = $objectManager->get('Magento\Framework\App\ResourceConnection'); $connection = $resource->getConnection(); $table = $resource->getTableName('core_config_data'); $select = $connection->select()->from( $table, ['config_id', 'value'] )->where( 'path = ?', 'carriers/storepickup/active' ); $data = $connection->fetchAll($select); if ($data) { try { $connection->beginTransaction(); foreach ($data as $value) { if($storeId == 1){ $dvalue = !(bool)1; }else{ $dvalue = 1; } $bind = ['path' => 'carriers/storepickup/active', 'value' => $dvalue]; $whe...