19

我正在尝试向我的订单添加自定义字段。此时,我发现下面的帖子帮助我在我的数据库中创建了这样的属性:http: //fabrizioballiano.net/2011/11/15/create-a-custom-order-attribute-in-magento/

require_once('app/Mage.php');
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));

$installer = new Mage_Sales_Model_Mysql4_Setup;
$attribute  = array(
   'type'          => 'int',
   'backend_type'  => 'text',
   'frontend_input' => 'text',
   'is_user_defined' => true,
   'label'         => 'My Label',
   'visible'       => true,
   'required'      => false,
   'user_defined'  => true,
   'searchable'    => true,
   'filterable'    => true,
   'comparable'    => true,
   'default'       => 0
);
$installer->addAttribute('order', 'special_attribute', $attribute);
$installer->endSetup();

执行上述代码并创建多个订单后,我可以遍历所有订单并查看每个订单的默认值。

问题是,如何在这个字段中存储我想要的数据?如何检索此类数据?

谢谢!

4

1 回答 1

29

将此添加到 config.xml 中的全局范围。然后只需在报价单中设置属性 - 它会在报价单到订单转换过程中自动转移到订单。

<global>
...
    <fieldsets>
        <sales_convert_quote>
            <your_special_attribute>
                <to_order>*</to_order>
            </your_special_attribute>
        </sales_convert_quote>
    </fieldsets>
...
</global>

您可以随时通过魔术 getter/setter 检索/设置属性,例如

$quote->getYourSpecialAttribute()
$order->getYourSpecialAttribute()

$quote->setYourSpecialAttribute()
于 2013-07-11T17:55:59.830 回答