0

我想添加一个新属性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'));

我看到 2 个新行eav_attribute

截屏

运行两次不会打印任何内容:

    $item = Mage::getModel('sales/order_item');
    $item->load(91);

    $item->setXxx("test");
    $item->setData("xxx", "test");

    print $item->getXxx();

    $item->save();

如何在订单项中设置和获取此属性的值?

4

1 回答 1

2

不幸的是sales/ordersales/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.

于 2013-01-15T12:27:37.940 回答