Magento - Adding a new column to sales_flat_quote_item and sales_flat_order_item

magento, magento-1.4, php

Solution

Create a new module with own setup class extended from `Mage_Sales_Model_Mysql4_Setup` or just use it as module setup class in `config.xml`:

 <global>
     <resources>
         <your_module_setup>
              <setup>
                  <module>Your_Module</module>
                  <class>Mage_Sales_Model_Mysql4_Setup</class>
              </setup>
         </your_module_setup>
     </resources>
 </global>

Use `addAttribute($entity, $attributeCode, $options)` method inside of your setup script, it will automatically add a new column to sales_flat_order tale. The same for other entites.

$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();

Problem

I'm working with Magento version 1.4.1.1, and I want to save a value in `sales_flat_quote_item` table (and pass it to `sales_flat_order_item`). I've found this tutorial, but I'm not sure if it's still relevant (to Magento version 1.4.1.1) since it talks about a table called `sales_order`, which I believe is now `sales_flat_order` and looks a bit different. Should this method still work? If so - Can I use it for `sales_flat_quote_item` and `sales_flat_order_item` and what `entity_type_id` should I put in the commend : ``` `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);` ``` If this is not the way to do that in the new Magento version, how should I do that? Thanks, Shani

Original source