我想使用Magento自定义模块(在Controller中)编码来更改产品可见性。我正在尝试下面的代码,但可见性没有改变。
请建议正确的方式。
$relContact = Mage::getModel('catalog/category/indexer/product')->getCollection();
Mage::register('isSecureArea', true);
foreach ($relContact as $product) {
try {
$product->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE);
//$product->setVisiblity(VISIBILITY_NOT_VISIBLE);
} catch(Exception $e) {
echo "Product #".$product->getId()." Visiblity could not be changed: ".$e->getMessage();
}
答案 0 :(得分:3)
<?php
require_once 'app/Mage.php';
umask(0);
$product_id = 'your_product_id';
Mage::app('default');
$product = Mage::getModel('catalog/product');
$product->load($product_id);
$product->setVisibility(4);
$product->save();
?>
此处产品按产品ID获取并更新产品的可见性4.如果您要添加新产品
<?php
require_once 'app/Mage.php';
umask(0);
$product_id = 'your_product_id';
Mage::app('default');
$product = Mage::getModel('catalog/product');
$product->setVisibility(4);
$product->save();
?>
答案 1 :(得分:2)
这只是一个小小的猜测,但如果您的代码没有触发错误,我认为您忘记保存产品。
try {
$product->save();
} catch ( Exception $e ) {
print_r($e);
}