Magento - Adición de una nueva columna a sales_flat_quote_item y sales_flat_order_item
-
09-10-2019 - |
Pregunta
Estoy trabajando con Magento versión 1.4.1.1, y quiero guardar un valor en la tabla sales_flat_quote_item
(y pasarlo a sales_flat_order_item
).
He encontrado este tutorial , pero no estoy seguro de si que sigue siendo relevante (a Magento versión 1.4.1.1), ya que habla de una tabla llamada sales_order
, que creo que es ahora sales_flat_order
y se ve un poco diferente.
En caso este método todavía funciona? Si es así - ¿Puedo usarlo para sales_flat_quote_item
y sales_flat_order_item
y lo entity_type_id
debería poner en el 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);`
Si esta no es la manera de hacerlo en la nueva versión de Magento, ¿cómo debo hacerlo?
Gracias, Shani
Solución
-
Crear un nuevo módulo con la propia clase de instalación se extendía desde
Mage_Sales_Model_Mysql4_Setup
o simplemente lo utilizan como clase de instalación del módulo enconfig.xml
:<global> <resources> <your_module_setup> <setup> <module>Your_Module</module> <class>Mage_Sales_Model_Mysql4_Setup</class> </setup> </your_module_setup> </resources> </global>
-
Usar el interior
addAttribute($entity, $attributeCode, $options)
método de secuencia de comandos de configuración, se añadirá automáticamente una nueva columna a cuento sales_flat_order. Lo mismo para los otros ENTIDADES.$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();
Otros consejos
Lo importante es saber cuando se añade atributos a órdenes: es necesario agregar los mismos atributos a las cotizaciones, también (al menos en mi caso esto resuelve todos los problemas)