1

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

2 に答える 2

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();   
?>
于 2013-07-26T06:06:18.750 に答える
2

これはちょっとした推測ですが、コードでエラーが発生しない場合は、製品を保存するのを忘れていると思います。

try {
    $product->save();
} catch ( Exception $e ) {
    print_r($e);
}
于 2013-07-26T06:08:49.573 に答える