2016-04-28 4 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

関連する問題