2012-09-07 42 views
1

我是相當新的magento,我的工作版本1.6.2.0。
我想添加我自己的自定義運輸方法模塊,我幾乎沒有問題。 我的magento已經有自定義結帳模塊 - 三步結帳,我要做的是保存附加運送信息,我在第三步(付款和運送)(如商店提貨地點)選擇報價,然後在Review review報價數據並保存到訂單。
我用活動來做到這一點:
checkout_controller_onepage_save_shipping_method保存數據引用
checkout_type_onepage_save_order保存數據以訂單
的問題是,報價與訂單沒有任何自由的地方,我可以節省我的數據,所以我創建安裝程序爲我的模塊:Magento如何在結帳時保存額外的送貨信息到報價

$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-> addAtt ribute('quote'

有錯誤的Entity Id。 所以我查了DB,表:eav_entity_type,並沒有任何'引用'類型(希望有'訂單')我真的不知道我該怎麼做,我試圖谷歌的東西,我發現教程和修改了我的安裝程序。

$installer->addEntityType('quote', array(
     'entity_model' => 'sales/quote', 
     'table'   =>'sales/quote', 
    )); 

現在,它的工作,我有更多的地方,我可以節省我的信息,但我的朋友告訴我,我不應該使用addEntityType,是否有任何其他方式才達到我需要什麼?

回答

0

我想也許你要查找的內容可以在這個回答中找到:https://stackoverflow.com/a/4389786/823549

在這個問題的答案作出了重要的一點是觸發的事件,sales_convert_quote_to_order - 當報價被轉換成這將被解僱一個訂單,並會發生,而不管你的其他結賬模塊做什麼。此答案也很有用,因爲您可以在訂單網格頁面中看到自定義列的詳細信息。

相關問題