В моем модуле Magento моего клиента я добавил пользовательский атрибут (hearedfrom) в заказ, этот атрибут установлен в объекте order (get after set возвращает значения), но он Кажется, что они не сохраняются в БД.Неверный атрибут пользовательского заказа Magento 1.9 (EAV_entity_text)
MyModule/и т.д./config.xml
<resources>
<hearedfrom_setup>
<setup>
<module>Brainworx_Hearedfrom</module>
\t <class>Mage_Catalog_Model_Resource_Eav_Mysql4_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</hearedfrom_setup>
</resources>
MySqlInstall
$installer = $this;
$installer->startSetup();
//get the entity type for orders
$sql = "SELECT entity_type_id FROM ".$this->getTable('eav_entity_type')." WHERE entity_type_code='order'";
Mage::Log("Hearedfrom: " .$sql);
$row = Mage::getSingleton('core/resource')->getConnection('core_read')->fetchRow($sql);
$attribute = array(
\t 'type' \t \t \t => 'text',
\t 'label' \t \t \t => 'Hearedfrom',
\t 'visible' \t \t => true,
\t 'required' \t \t => false,
\t 'user_defined' \t => true,
\t 'searchable' \t => true,
\t 'filterable' \t => true,
\t 'comparable' \t => false,
);
//add attribute for the sale/order
$installer->addAttribute($row['entity_type_id'], 'hearedfrom', $attribute);
$installer->endSetup();
Наблюдатель, где я сохранить значение в новом атрибуте.
public function hookToOrderSaveEvent()
\t {
\t \t /**
\t \t * NOTE:
\t \t * Order has already been saved, now we simply add some stuff to it,
\t \t * that will be saved to database. We add the stuff to Order object property
\t \t * called "hearedfrom"
\t \t */
\t \t $order = new Mage_Sales_Model_Order();
\t \t $incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();
\t \t $order->loadByIncrementId($incrementId);
\t \t
\t \t //Fetch the data from select box and throw it here
\t \t $_hearedfrom_data = null;
\t \t $_hearedfrom_data = Mage::getSingleton('core/session')->getBrainworxHearedfrom();
\t \t //$this->_getRequest()->getPost(‘myCustomerOrderComment’, false);
\t \t Mage::Log("Order brought by: ".$_hearedfrom_data);
\t \t
\t \t //Save fhc id to order obcject
\t \t $order->setData(self::ORDER_ATTRIBUTE_FHC_ID, $_hearedfrom_data);
\t \t Mage::Log("test: ".$order->getHearedfrom());
\t \t $order->save();
\t }
В моем журнале я могу увидеть значение до и после установки его в моем $ порядке. Данные имеют запись для значения. В БД я могу увидеть enty в EAV_ATTRIBUTE, связанном с EAV_ENTITY_TYPE и EAV_ENTITY_ATTRIBUTE. Но я ожидал бы, что сохраненное значение будет в EAV_ENTITY_TEXT, которое не содержит записей.
После перезагрузки размещенного заказа он не содержит атрибута клиента.
Что мне здесь не хватает?
Благодаря