我是 magento 的新手,我的工作版本是 1.6.2.0。
我正在尝试添加我自己的自定义运输方式模块,但我遇到的问题很少。我的 magento 已经有自定义结帐模块 - 三步结帐,我要做的是保存我在第三步(付款和运输)(类似于商店取货地点)中选择的附加运输信息到报价单,然后在审核中检索报价单数据并将其保存到订单。
我正在使用事件来执行此操作:
checkout_controller_onepage_save_shipping_method 将数据保存到 Quote
checkout_type_onepage_save_order 以将数据保存到 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('quote'
实体 ID 错误。所以我检查了数据库,表:eav_entity_type,没有任何“报价”类型(希望有一个“订单”)我的安装程序。
$installer->addEntityType('quote', array(
'entity_model' => 'sales/quote',
'table' =>'sales/quote',
));
现在它正在工作我有额外的地方可以保存我的信息,但是我的朋友告诉我我不应该使用 addEntityType,还有其他方法可以实现我需要的吗?