更新自定义产品属性值 - Magento

时间:2014-04-28 13:48:35

标签: magento magento-1.8

我遇到了在Magento中更新表目录/产品的问题。我想更新列' custom_product_option'我添加为EAV属性:

 for ($i=0;$i<=sizeof($my_data); $i++){
            $id = $my_data[$i];

            $db_data = array('custom_product_option'=>3);
            $model = Mage::getModel('catalog/product')->load($id)->addData($db_data);
            try {
                $model->setId($id)->save();
                echo "Data updated successfully.";

            } catch (Exception $e){
                echo $e->getMessage();

            }


        }

当我尝试在目录/产品表中更新我的新自定义值时,出现此错误:

Integrity constraint violation 1062 duplicate entry '44-1-0-2.0000-0' for key '...'

我很困惑,因为我正在更新表,它的行为就像我插入具有相同ID的新值。如果有人能提供帮助,我感激不尽。

1 个答案:

答案 0 :(得分:0)

我认为$my_data是需要更新的产品ID数组 如果是这样,试试这个。它要快得多:

$db_data = array('custom_product_option'=>3);
Mage::getSingleton('catalog/product_action')->updateAttributes(
    $my_data, //array with ids to be updated, 
    $db_data, //array with attributes to be updated, 
    0 //store id for the update : 0 = default values
);