我是magento的新手,我的版本是1.6.2.0
我正在尝试添加自己的自定义运输方法模块,我遇到了一些问题。
我的magento已经有自定义结账模块 - 三人行检查,我正在尝试做的是保存我在第3步(付款和运输)(类似商店取货地点)选择引用的其他运输信息,然后在审查反向报价数据并将其保存到订单。
我正在使用事件来做到这一点:
checkout_controller_onepage_save_shipping_method将数据保存到引用
checkout_type_onepage_save_order将数据保存到订单
问题是Quote和Order没有任何可以保存数据的空闲位置,所以我为我的模块创建了安装程序:
$installer = $this;
$installer->startSetup();
$packboxName = array(
'type' => 'varchar',
'backend' => '',
'frontend' => '',
'label' => 'packboxname',
'input' => '',
'class' => '',
'source' => '',
'global' => 1,
'visible' => true,
'required' => false,
'user_defined' => false,
'default' => '',
'searchable' => false,
'filterable' => false,
'comparable' => false,
'visible_on_front' => false,
'visible_in_advanced_search' => false,
'unique' => false
);
$installer->addAttribute('order', "packboxname", $packboxName);
$installer->getConnection()->addColumn($installer->getTable('sales/order'), 'packboxname', 'varchar(255) DEFAULT NULL');
$installer->addAttribute('quote', "packboxname", $packboxName);
$installer->getConnection()->addColumn($installer->getTable('sales/quote'), 'packboxname', 'varchar(255) DEFAULT NULL');
$installer->endSetup();
我发错了,说
$ installer->的addAttribute( '报价'
有错误的实体ID。 所以我检查了数据库,表:eav_entity_type并且没有任何“引用”类型(希望有一个'命令')我真的不知道我该怎么做,我试着谷歌的东西,我发现教程和修改我的安装人员。
$installer->addEntityType('quote', array(
'entity_model' => 'sales/quote',
'table' =>'sales/quote',
));
现在它正在工作我有额外的地方可以保存我的信息,但我的朋友告诉我,我不应该使用addEntityType,还有其他方法来实现我需要的东西吗?
答案 0 :(得分:0)
我想也许你正在寻找的是这个答案:https://stackoverflow.com/a/4389786/823549
该答案中的一个重点是被触发的事件sales_convert_quote_to_order
- 当报价被转换为订单时会被触发,并且无论您的其他结账模块做什么,都会发生这种情况。此答案也很有用,因为您可以在订单网格页面中查看自定义列的详细信息。