我正在使用Magento 1.7 - 我是Magento模塊開發的新手。如何在Magento後臺顯示自定義訂單屬性
我已經創建了一個新的訂單自定義EAV屬性,稱爲Deliverydate,客戶將在購物車頁面上輸入該訂單。我創建了一個自定義模塊和安裝程序腳本,並可以在eav_attribute表中看到它。
$installer = $this;
$installer->startSetup();
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$setup->addAttribute('order', 'deliverydate', array(
'position' => 1,
'input' => 'text',
'backend_type' => 'varchar',
'type' => 'varchar',
'label' => 'Choose delivery date',
'visible' => 1,
'required' => 0,
'user_defined' => 1,
'global' => 1,
'visible_on_front' => 1,
));
$installer->endSetup();
但我讀過許多來源,不能弄清楚如何 1)除由客戶輸入的值。 2)檢索Admin中顯示的值。
我已閱讀這些教程關於觀察員,但似乎無法得到一個工作:
這是我的config.xml文件
<?xml version="1.0"?>
<config>
<modules>
<Mycompany_Deliverydate>
<version>0.1.0</version>
</Mycompany_Deliverydate>
</modules>
<global>
<resources>
<deliverydate_setup>
<setup>
<module>Mycompany_Deliverydate</module>
<class>Mycompany_Deliverydate_Model_Resource_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</deliverydate_setup>
</resources>
<events>
<checkout_type_onepage_save_order>
<observers>
<Deliverydate_observer>
<type>singleton</type>
<class>deliverydate/observer</class>
<method>Deliverydate</method>
</Deliverydate_observer>
</observers>
</checkout_type_onepage_save_order>
</events>
</global>
</config>
而且我Observer.php文件,其中大部分我從本網站的另一篇教程/問題中借用。
class Mycompany_Deliverydate_Model_Observer {
public function Deliverydate($observer) {
$event = $observer->getEvent();
$order = $event->getOrder();
$order->setDeliverydate(Mage::app()->getRequest()->getPost('delivery_date'));
}
}
我不認爲這是正在進入在所有 - 我把一個throw new Exception
並通過整個訂單去沒有看到過例外。在任何情況下,我都不確定我正在檢查正確的事件 - checkout_type_onepage_save_order - 何時會被解僱?我不知道setDeliverydate()
函數將在哪裏定義,但正如我所說,這種類型來自另一個來源,它也沒有在那裏定義。
輸入值存儲在哪裏?
有你有在觀察者deliverydate屬性值方法? – DRAJI