0

もう 1 つの Magento の質問です。だれか助けてもらえますか? 属性を更新してフラグ「USE DEFAULT VALUE」を設定するためにproduct_idの範囲を指定しようとしていますが、エラーが発生し続けます。範囲を間違った方法で設定しようとしていると思います。

<?php
 include_once '.../app/Mage.php';
 Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
 error_reporting (E_ALL ^ E_NOTICE);

 $prods = range(5490,5495);

 $product = Mage::getModel('catalog/product')
 ->load($prods)
 ->setStoreId(1)
 ->setData('status', false)
 ->setData('name', false)
 ->setData('short_description', false)
 ->save();
echo "successful";
 ?>

Daniel S の助けを借りてこのバージョンを実行すると、

<?php
include_once '/home/sites/billyguyatts.com.au/docs/app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
error_reporting (E_ALL ^ E_NOTICE);

$prods = range(5492,5498);

$productCollection = Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('entity_id', array('in' => $prods))
->load();

$productCollection
->setStoreId(1)    
->setDataToAll('status', false)
->setDataToAll('name', false)
->setDataToAll('short_description', false)
->save();
echo "successful";
?>

で実行すると、エコーは成功しますが、結果は得られません

    $productCollection->setDataToAll('status', false)
    ->setData('name', false)
 ->setData('short_description', false)
    ->save();

次のエラーが表示されます。

致命的なエラー: 未定義のメソッド Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection::setData() の呼び出し

4

1 に答える 1

0

単一のモデルを使用して複数の製品をロードすることはできません。コレクションを使用します。

$productCollection = Mage::getModel('catalog/product')->getCollection()
    ->addAttributeToFilter('entity_id', array('in' => $prods))
    ->load();

$productCollection->setDataToAll('status', false)
                  ->...
                  ->...
                  ->save();
于 2012-05-21T07:14:58.547 に答える