2013-07-26 3 views
1

Я хочу изменить видимость продукта с помощью кодирования в пользовательском модуле Magento (в контроллере). Я пытаюсь использовать код ниже, но видимость не изменяется.Как изменить программную визуальность продукта в Magento

Пожалуйста, предложите правильный путь.

$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(); 
     } 

ответ

2

Это просто немного догадка, но если вы код не вызывает ошибки, я думаю, что вы забыли сохранить продукт.

try { 
    $product->save(); 
} catch (Exception $e) { 
    print_r($e); 
} 
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();  
?> 

здесь продукт получают по идентификатору продукта и обновление продукта с видимостью 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(); 
?> 
+0

используя этот способ, продукт скрывает/скрывает от внешнего интерфейса, но все же в области панели управления значение видимости продукта не изменяется? есть способ сделать это. –

+0

Вы добавляете новый продукт или обновляете существующее? – sudhakar

+0

обновление существующего продукта. –

Смежные вопросы