我想向order_item
安装-0.1.0.php
$installer->addAttribute('order_item', 'xxx', array('type'=>'text', 'visible' => true, 'required' => false, 'is_user_defined' => true, 'note' => 'Field comment'));
$installer->addAttribute('quote_item', 'xxx', array('type'=>'text', 'visible' => true, 'required' => false, 'is_user_defined' => true, 'note' => 'Field comment'));
我在eav_attribute
运行这两次不打印任何内容:
$item = Mage::getModel('sales/order_item');
$item->load(91);
$item->setXxx("test");
$item->setData("xxx", "test");
print $item->getXxx();
$item->save();
如何在此属性的订单商品中设置和获取值?
答案 0 :(得分:2)
不幸的是sales/order
和sales/order_item
没有继承或使用Magento中的eav_attribute结构。这篇博文很好地解释了它:http://www.krilion.net/blog/2012/08/adding-a-custom-attribute-to-a-magento-order/
它的要点是,您需要创建安装程序脚本以在平面表(sales_flat_order_item
)中创建新列,以便保存新值。只要平面表中有xxx列,您就应该能够保存xxx值。这意味着您的安装程序脚本需要扩展Mage_Sales_Model_Mysql4_Setup
而不是Mage_Eav_Model_Entity_Setup
。