Tôi dường như không thể tìm ra cách cập nhật tốt nhất hàng trăm thuộc tính danh mục với một tập lệnh. Bất kỳ đề xuất như là cách tốt nhất để tiếp cận điều này? Tôi sẽ không sử dụng trình cài đặt hoặc bất cứ thứ gì tương tự.
Tôi dường như không thể tìm ra cách cập nhật tốt nhất hàng trăm thuộc tính danh mục với một tập lệnh. Bất kỳ đề xuất như là cách tốt nhất để tiếp cận điều này? Tôi sẽ không sử dụng trình cài đặt hoặc bất cứ thứ gì tương tự.
Câu trả lời:
Nếu bạn có nhiều danh mục và muốn cập nhật một vài thuộc tính hơn bạn có thể sử dụng mã tương tự như dưới đây. Nó nhanh và chỉ lưu các giá trị cho các thuộc tính mà bạn muốn cập nhật. Bạn có thể chạy tập lệnh này từ trình duyệt hoặc từ thiết bị đầu cuối (thiết bị đầu cuối tốt hơn cho các trường hợp như bạn mô tả).
<?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`