Как добавить произвольное поле в заказ в Magento?

Я хочу добавить одно новое настраиваемое поле для оформления заказа на одной странице в 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();

С помощью phpmyadmin я вижу, что поле было добавлено в таблицу атрибутов mage _eav _. Я также добавил это в доставку -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 _заказе. Спасибо

*Изменить:

Вот что я сделал:

Я добавил observer.php в companyname/module/model/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";
        }   
}

А вот мой 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>

Я думаю, что есть проблема с моим наблюдателем. Я думаю, что не стреляет.

*Изменить:

Мой наблюдатель сейчас работает. Имя файла должно быть Observer.php, а не Observer.php.

7
задан Blackbam 4 June 2019 в 13:40
поделиться