magento设置属性的值

时间:2013-02-01 12:13:51

标签: php magento

我为所有产品创建了一个新的属性序列号。现在我不知道如何在订单完成时设置其值。我知道在哪里改变它但我没有这个功能。这是代码。 new属性的代码为“serial_number”。

if($status == 'complete'){

    foreach ($this->getAllItems() as $item) {
      // Here I want to update the value, I am sure something like the following will work.         
      $this->setAttribute($item, 'serial_number', '123');

}
}

另外,admin中的设置应该是什么。当订单状态更改为完成时,我正在更改该值。

3 个答案:

答案 0 :(得分:4)

以下是不同的方式:( color = attribute name,red = attribute value_id)

让我们假设你已经有了$ product产品。

$attr = $product->getResource()->getAttribute('color');
if ($attr->usesSource()) {
$avid = $attr->getSource()->getOptionId('red');
$product->setData('color', $avid);
$product->save();
}

答案 1 :(得分:1)

您似乎在设置属性,但将项目保存()到db

的代码在哪里
if($status == 'complete'){   
    foreach ($this->getAllItems() as $item) {
         $item->setSerialNumber('123');
         $item->save()   
     }
}

答案 2 :(得分:-2)

您可以使用以下代码执行此操作 -

if($status == 'complete'){

    foreach ($this->getAllItems() as $item) {

         $item->setSerialNumber('123');

     }
}

希望这能解决您的问题。