How to Disable Empty Category Programmatically using Root Script in Magento 2

 <?php

use Magento\Framework\AppInterface;

try

{

       require_once __DIR__ . '/app/bootstrap.php';

catch (\Exception $e) 

{

       echo 'Autoload error: ' . $e->getMessage();

       exit(1);

}

try

{

       $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);

       $objectManager = $bootstrap->getObjectManager();

       $appState = $objectManager->get('\Magento\Framework\App\State');

       $appState->setAreaCode('frontend');

       $Collectionfactory = $objectManager->get('\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');

       $Categoryfactory = $objectManager->get('\Magento\Catalog\Model\CategoryFactory');

       $Categorydisable=false;

       $categories=$Collectionfactory->create()->addAttributeToSelect('*');

       foreach ($categories as $category)

       {

              $products = $category->getProductsPosition();

              if(empty($products))

              {   

    $category = $Categoryfactory->create()->setStoreId(0)->load($category->getId());

                  $category->setIsActive(0);

                  $category->save();

  $Categorydisable=true;

              }

       }

       if($Categorydisable)

       {

        echo "Category disable successfull";

       }

       else

       {

            echo "Category disable failed!";     

       }

}

catch(\Exception $e)

{

       echo "Error : ".$e->getMessage();

}

?>

Comments

Popular posts from this blog

Add Admin User name and Action name in Order Comment Section through Action Performed from Sales Order Grid in Magento 2

How to Update Product Stock Programmatically in Magento 2

How to Set and Get Cookie in Magento 2