【问题标题】:Magento how to save additional shipping info to Quote during checkoutMagento 如何在结帐时将其他运输信息保存到报价单
【发布时间】:2012-09-01 03:41:02
【问题描述】:

我是 magento 的新手,我的工作版本是 1.6.2.0。
我正在尝试添加我自己的自定义运输方式模块,但我遇到的问题很少。 我的 magento 已经有自定义结帐模块 - 三步结帐,我要做的是保存我在第三步(付款和运输)(类似于商店取货地点)中选择的附加运输信息到报价单,然后在审核中检索报价单数据并将其保存到订单。
我正在使用事件来执行此操作:
checkout_controller_onepage_save_shipping_method 将数据保存到报价
checkout_type_onepage_save_order 将数据保存到 Order
问题是 Quote and 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,还有其他方法可以实现我需要的吗?

【问题讨论】:

    标签: php magento


    【解决方案1】:

    我想也许你正在寻找的东西可以在这个答案中找到:https://stackoverflow.com/a/4389786/823549

    该答案中的一个重点是触发事件sales_convert_quote_to_order - 当报价转换为订单时,该事件将被触发,并且无论您的其他结帐模块做什么都会发生。此答案也很有用,因为您可以在订单网格页面中查看自定义列的详细信息。

    【讨论】:

      猜你喜欢
      • 2011-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 2019-04-29
      相关资源
      最近更新 更多