将自定义字段添加到magento中的一页签出

将自定义字段添加到magento中的一页签出,magento,checkout,Magento,Checkout,我正在尝试将自定义字段添加到magento checkout onepage。 我遵循了一个在1.4.1中不起作用的示例,因为它移动到了一个平面订单表(我想) 我可以在结帐页面中看到我的自定义选项卡和自定义字段,但我无法将这些字段保存到数据库中 如何向quote和order表中添加列? 这应该转到Mymod/sql/Mymod_setup/mysql4-install-0.1.0.php还是其他地方 如何将字段保存到数据库? 我需要先将其保存到报价中吗? 我用的是观察者还是别的什么? 我是否需

我正在尝试将自定义字段添加到magento checkout onepage。 我遵循了一个在1.4.1中不起作用的示例,因为它移动到了一个平面订单表(我想)

我可以在结帐页面中看到我的自定义选项卡和自定义字段,但我无法将这些字段保存到数据库中

  • 如何向quote和order表中添加列? 这应该转到Mymod/sql/Mymod_setup/mysql4-install-0.1.0.php还是其他地方

  • 如何将字段保存到数据库? 我需要先将其保存到报价中吗? 我用的是观察者还是别的什么? 我是否需要在模块的config.xml中包含元素?


谢谢免责声明:我已经6个月没碰Magento了。 现在,如果您查看app/code/core/Mage/Sales/sql/Sales\u setup/目录,您将发现如何修改订单表的示例。例如,下面是app/code/core/Mage/Sales/sql/Sales\u setup/mysql4-upgrade-0.9.12-0.9.13.php的内容(无标题注释):

$this是在config/global/resources/Sales\u setup/setup/class查看该类之后,根据app/code/core/Mage/Sales/etc/config.xml中的内容初始化的,您将看到它继承了默认设置类Mage\u Eav\u Model\u Entity\u setup,并重写或添加了一些方法(例如,对于平面表支持)

要回答第一点(第一个问题),可以使用此类的addAttribute()方法添加列。第二个问题的答案是肯定的,但是您必须在模块的config.xml文件中指定要将Mage_Sales_Model_Mysql4_Setup用作Setup类。这是通过添加之前在app/code/core/Mage/Sales/etc/config.xml中找到的相同xml元素来完成的(用您的mod_设置替换Sales_设置)。因此,您转储数据库,通过在mysql4-install-0.1.0.php文件中使用get_class($this)检查它是否工作,然后恢复数据库。你继续在你的安装文件中写作,从app/code/core/Mage/Sales/sql/Sales\u安装文件中看到的启发你自己,这应该很好! 现在谈第二点。。。我不知道。。。我希望它能自动工作!
祝你好运

我认为它不适用于1.4.1,因为表格从EAV变为扁平。看看mysql4-upgrade-1.4.0.2-1.4.0.3.php。他们使用addColumn而不是addAttribute。@pablo:你读过我的答案了吗?如果说一些方法,其中增加了对平板的支持。这是addAttribute()方法的情况。只需看看Mage_Sales_Model_Mysql4_安装类。我没有注意到您建议使用Sales Setup模块。我会试试并报告我的结果。谢谢。在同一个模块中,我需要向sales profile添加属性并创建一个自定义平面表,因此我使用:$setup=new Mage\u sales\u Model\u Mysql4\u setup('sales\u setup');对于销售和$setup=新的Mage_Eav_模型_实体_设置(“核心_设置”);个人资料。谢谢
$installer = $this;
/* @var $installer Mage_Sales_Model_Mysql4_Setup */

$installer->addAttribute('quote', 'subtotal', array('type'=>'decimal'));
$installer->addAttribute('quote', 'base_subtotal', array('type'=>'decimal'));

$installer->addAttribute('quote', 'subtotal_with_discount', array('type'=>'decimal'));
$installer->addAttribute('quote', 'base_subtotal_with_discount', array('type'=>'decimal'));