Updating Magento Attribute Programmatically

后端 未结 1 1218
逝去的感伤
逝去的感伤 2021-02-01 10:52

I have been writing a script that updates my attribute add_ten_pence, the attribute is a yes/no boolean value. At the moment it goes through the SKU\'s

相关标签:
1条回答
  • 2021-02-01 11:23

    Try saving the single attribute instead of the entire product collection.

    require_once('app/Mage.php');
    
    umask(0);
    Mage::app('default');
    Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
    $productCollection = Mage::getModel('catalog/product')->getCollection();
    
    foreach($productCollection as $product) {
        echo 'updating ' . $product->getSku() . PHP_EOL;
        $product->setData('add_ten_pence', 1);
        $product->getResource()->saveAttribute($product, 'add_ten_pence');
    }
    

    UPDATE

    Much faster way:

    $productCollection = Mage::getModel('catalog/product')->getCollection();
    $array_product = $productCollection->getAllIds();    
    Mage::getSingleton('catalog/product_action')->updateAttributes($array_product, array('add_ten_pence' => 1), Mage_Core_Model_App::ADMIN_STORE_ID);
    

    (Thanks https://magento.stackexchange.com/users/146/marius!)

    0 讨论(0)
提交回复
热议问题