Magentoの1ページのチェックアウトに1つの新しいカスタムフィールドを追加したいとします。Magentoで注文するカスタムフィールドを追加するには?
$installer = $this;
$installer->startSetup();
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$setup->addAttribute('order', 'deliverydate', array(
'position' => 1,
'input' => 'text',
'type' => 'varchar',
'label' => 'Choose delivery date',
'visible' => 1,
'required' => 0,
'user_defined' => 1,
'global' => 1,
'visible_on_front' => 1,
));
$installer->endSetup();
フィールドがmage_eav_attributeテーブルに追加されていることが分かります。私もshipping-method.phtmlにこれを追加しました:
<div class="form-list field">
<label for="deliverydate"><?php echo $this->__('Choose delivery date') ?></label>
<div class="input-box">
<input type="text" name="deliverydate" id="deliverydate" title="<?php echo $this->__('deliverydate') ?>" class="input-text" />
</div>
</div>
注文するとカスタムフィールドは保存されません。それを動作させるには?私はこの方法で顧客にいくつかのカスタムフィールドを追加し、彼らはうまく動作しています。私はまた、カスタム顧客フィールドをadmin/customerで自動的に見ることができますが、admin/sales_orderで私のカスタム注文フィールドを見ることはできません。ありがとう
* 編集:
は私が/モジュール/モデルここで/ observer.php
class Company_Module_Model_Observer
{
public function Deliverydate($observer){
//get event data
$event = $observer->getEvent();
//get order
$order = $event->getOrder();
//set the country here
$order->setDeliverydate('11.11.2012');
//echo "observer";
}
}
そしてだCOMPANYNAMEするobserver.php追加:
これは私がやっていることです私のconfig.xml:
<?xml version="1.0"?>
<config>
<modules>
<Company_Module>
<version>0.1.0</version>
</Company_Module>
</modules>
<global>
<resources>
<Company_Module_setup>
<setup>
<module>Company_Module</module>
<class>Company_Module_Model_Resource_Mysql4_Setup</class>
</setup>
</Company_Module_setup>
</resources>
<events>
<checkout_type_onepage_save_order>
<observers>
<Company_Module_Model_Observer>
<type>singleton</type>
<class>Company_Module_Model_Observer</class>
<method>Deliverydate</method>
</Company_Module_Model_Observer>
</observers>
</checkout_type_onepage_save_order>
</events>
</global>
</config>
I私の観察者には何か問題があると思う。私はそれが発砲していないと思う。
* 編集:私の観察者が今取り組んでいる
。ファイル名はobserver.phpではなくObserver.phpでなければなりません。保存引用
class Mymodule_Savefield_Model_Observer
{
public function Savefield($observer){
//get event data
$event = $observer->getEvent();
//get order
$order = $event->getOrder();
//set the variable here
$order->setMyField($fieldVal);
}
}
あなたは私が注文レビュー]タブに追加する必要があります.I code.forフルを共有... –