0

另一个 Magento 问题,有人可以帮我解决这个问题吗?我试图指定一系列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 回答