スクリプトを使用して何百ものカテゴリ属性を最適に更新する方法を理解できないようです。これに取り組む最良の方法として何か提案はありますか?インストーラーなどは使用しません。
スクリプトを使用して何百ものカテゴリ属性を最適に更新する方法を理解できないようです。これに取り組む最良の方法として何か提案はありますか?インストーラーなどは使用しません。
回答:
多くのカテゴリがあり、いくつかの属性を更新したい場合は、以下のようなコードを使用できます。これは高速であり、更新するこれらの属性の値のみを保存します。このスクリプトはブラウザまたはターミナルから実行できます(ターミナルは、説明したような場合に適しています)。
<?php
require 'app/Mage.php';
Mage::app();
$resource = Mage::getResourceModel('catalog/category');
// here get category collection
foreach($collection as $category) {
$category->setStoreId(0); // 0 for default scope (All Store Views)
$category->setData('attribute_code', $value);
$resource->saveAttribute($category, 'attribute_code');
}
<?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');
// Start Despaly All Product Meta Title And Description
require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app();
$categories = Mage::getModel('catalog/category')
->getCollection()
// magic is prepared here..
->addAttributeToSelect('*')
// then the magic happens here:
->addAttributeToFilter('level', array('eq'=>4))
->load();
if (count($categories) > 0):
foreach($categories as $category):
$catId = $category->getId();
$category = Mage::getModel('catalog/category')->load($catId);
$resource = Mage::getResourceModel('catalog/category');
//if($catId==1465):
$CategoryName = $category->getName();
$metaTitle = "Buy ".$CategoryName." Meta Title";
$metaDescription = "Shop your favourite ".$CategoryName." Meta Description";
//$category->setMetaTitle($metaTitle);
//$category->setMetaDescription($metaDescription);
//$category->save();
$category->setData('meta_title', $metaTitle);
$resource->saveAttribute($category, 'meta_title');
$category->setData('meta_description', $metaDescription);
$resource->saveAttribute($category, 'meta_description');
$check = $category->getMetaTitle();
echo "<pre>";
print_r($catId);
echo "<pre>";
print_r($check);
echo "\n";
//endif;
endforeach;
else: echo "No Results";
endif;
?>`enter code here`