Обновление значения атрибута категории Magento 2 по сценарию с уровнем категории
<?php
//increase the max execution time
@ini_set('max_execution_time', -1);
//memory_limit
@ini_set('memory_limit', -1);
error_reporting(E_ALL);
ini_set('display_errors', '1');
use \Magento\Framework\App\Bootstrap;
include('app/bootstrap.php');
$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$appState = $objectManager->get('\Magento\Framework\App\State');
$appState->setAreaCode('frontend');
$categoryCollection = $objectManager->get('\Magento\Catalog\Model\ResourceModel\Category\CollectionFactory');
$categories = $categoryCollection->create();
$categories->addAttributeToSelect('*');
$categories->addAttributeToFilter('level', array('eq'=>2));
$categories->load();
if (count($categories) > 0):
foreach($categories as $category):
$catId = $category->getId();
$category = $objectManager->create('Magento\Catalog\Model\CategoryFactory')->create()->setStoreId(0)->load($catId);
$childrenCategories = $category->getChildrenCategories();
if(!$childrenCategories->count()) continue;
$CategoryName = $category->getName();
$category->setLandingPage(82);
$category->setDisplayMode("PAGE");
$category->save();
$checkpage = $category->getLandingPage();
$checkmode = $category->getDisplayMode();
echo "<pre>";
print_r($CategoryName);
echo "<pre>";
print_r($checkpage);
echo "<pre>";
print_r($checkmode);
endforeach;
else: echo "No Results";
endif;
?>