2016-04-28 2 views
0

У меня возникли проблемы с получением и настройкой настраиваемого атрибута в заказе.Сохранить пользовательский атрибут в порядке

У меня есть следующий SQL скрипт:

<?php 

$installer = $this; 
$installer->startSetup(); 

$setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 

$attribute = array(
    'position'   => 1, 
    'type'    => 'text', 
    'input'    => 'varchar', 
    'label'    => 'My Order Field', 
    'global'   => 1, 
    'visible'   => 1, 
    'required'   => 0, 
    'user_defined'  => 1, 
    'searchable'  => 0, 
    'filterable'  => 0, 
    'comparable'  => 0, 
    'visible_on_front' => 1, 
    'visible_in_advanced_search' => 0, 
    'unique'   => 0, 
    'is_configurable' => 0, 
    'position'   => 1, 
); 

$setup->addAttribute('order', 'my_order_field', $attribute); 

$installer->endSetup(); 

Я могу увидеть атрибут в таблице EAV после запуска этого.

Я установил наблюдателя, который запускается, когда был сохранен новый заказ, который я также подтвердил (с операторами die()).

Я теперь удалены те умирают заявления и изменил порядок сохранения кода следующим образом:

$event = $observer->getEvent(); 
$order = $event->getOrder(); 
$order->setMyOrderField('Hello'); 

И в моем администратора бэкэнда разделе я добавил строку для извлечения данных:

<tr> 
     <td class="label"><label><?php echo Mage::helper('sales')->__('My Order Field') ?></label></td> 
     <td class="value"><strong><?php echo $_order->getMyOrderField(); ?></strong></td> 
    </tr> 

Однако, когда я ставлю новый порядок, ничего не появляется, может ли кто-нибудь сказать мне, что я делаю неправильно с точки зрения сохранения данных в свой пользовательский атрибут?

Благодаря

+0

Является ли поле доступно в sales_flat_order таблице? –

ответ

0
<?php 

$installer = $this; 
$installer->startSetup(); 

$setup = new Mage_Eav_Model_Entity_Setup('core_setup'); 

$attribute = array(
    'position'   => 1, 
    'type'    => 'text', 
    'input'    => 'varchar', 
    'label'    => 'My Order Field', 
    'global'   => 1, 
    'visible'   => 1, 
    'required'   => 0, 
    'user_defined'  => 1, 
    'searchable'  => 0, 
    'filterable'  => 0, 
    'comparable'  => 0, 
    'visible_on_front' => 1, 
    'visible_in_advanced_search' => 0, 
    'unique'   => 0, 
    'is_configurable' => 0, 
    'position'   => 1, 
); 


$setup->addAttribute('order', 'my_order_field', $attribute); 
$setup->addAttribute('quote', 'my_order_field', $attribute); 

$installer->endSetup(); 

и

$event = $observer->getEvent(); 
$order = $event->getOrder(); 
$order->setMyOrderField('Hello'); 
$order->save(); 
+0

Только 3 буквы, которые не являются кодом, я уверен, что вы можете сделать лучше, чтобы объяснить свой ответ – nicolallias

Смежные вопросы