2010-12-07 2 views
4

Magentoバージョン1.4.1.1で作業していて、sales_flat_quote_itemテーブルに値を保存して(sales_flat_order_itemに渡します)。Magento - sales_flat_quote_itemとsales_flat_order_itemに新しい列を追加する

私はthis tutorialを見つけたが、それはまだ関連だ場合、私はわからないんだけど、それは今sales_flat_orderであり、ビット違って見える私は信じてsales_orderと呼ばれるテーブル、話しているので(Magentoのバージョン1.4.1.1へ)。

この方法はまだ有効ですか?もしそうなら - 私はsales_flat_quote_itemsales_flat_order_itemのためにそれを使用することができると私は称賛に何entity_type_idを置く必要があります。

`insert into eav_attribute('entity_type_id','attribute_code','attribute_model','backend_model','backend_type','backend_table','frontend_model','frontend_input','frontend_input_renderer','frontend_label','frontend_class','source_model','is_global','is_visible','is_required','is_user_defined','default_value','is_searchable','is_filterable','is_comparable','is_visible_on_front','is_html_allowed_on_front','is_unique','is_used_for_price_rules','is_filterable_in_search','used_in_product_listing','used_for_sort_by','is_configurable','apply_to','position','note','is_visible_in_advanced_search' ) 
values(11, 'my_new_column', null, '', 'static', '', '', 'text', '','',null, '', 1,1,1,0,'',0,0,0,0,0,0,1,0,0,0,1,'',0,'',0);` 

これは新しいMagentoのバージョンでそれを行う方法ではない場合、私はそれをどのようにすればよいですか?

おかげで、 シャニー

答えて

12
  1. Mage_Sales_Model_Mysql4_Setupまたはちょうど​​3210にモジュールセットアップクラスとしてそれを使用するから延長独自のセットアップクラスで新しいモジュールを作成します。

    <global> 
        <resources> 
         <your_module_setup> 
           <setup> 
            <module>Your_Module</module> 
            <class>Mage_Sales_Model_Mysql4_Setup</class> 
           </setup> 
         </your_module_setup> 
        </resources> 
    </global> 
    
  2. 利用の内側addAttribute($entity, $attributeCode, $options)方法をセットアップスクリプトを実行すると、sales_flat_orderに新しい列が自動的に追加されます。他のエントリーと同じです。注文に属性を追加する際

    $installer = $this; 
    $installer->startSetup(); 
    $installer->addAttribute(
        'order', 
        'your_attribute_code', 
        array(
         'type' => 'int', /* varchar, text, decimal, datetime */, 
         'grid' => false /* or true if you wan't use this attribute on orders grid page */ 
        ) 
    ); 
    $installer->endSetup(); 
    
+0

おかげで(少なくとも私の場合、これはすべての問題を解決しました)。私が言ったように、私はsales_flat_quote_itemとsales_flat_order_item(itemではなくsales_flat_order)にカラムを追加したいと思います。それはまだ同じ働きますか? – Shani1351

+0

@ Shani1351これは同じように動作し、最初の引数に 'order'の代わりに' order_item'と 'quote_item'を指定するだけです。例として「注文」が使用された。 –

+3

ありがとうIvan - 将来の参考のために、この答えのポイントは、標準の 'Mage_Eav_Model_Entity_Setup'ではなく、' Mage_Sales_Model_Mysql4_Setup'を使用することです。 'Mage_Sales_Model_Mysql4_Setup'メソッドは、標準のSetupクラスが探す正式な' entity_type_id'値を持たない 'order_item'オブジェクトと' quote_item'オブジェクトのために 'addAttribute'をインターセプトします。 –

4

重要なことは知っている:あなたは、あまりにも、引用符に同じ属性を追加する必要がありますお返事のための

+1

@ fbtb - これはすべてのインスタンスで必要なのか、なぜ必要なのか分かりますか? – pcronin

+0

@pcronin顧客が提出する前のすべての注文は、見積もりとして保存されるので、見積もりはまだ置かれていない注文です。 – fbtb

関連する問題