2016-12-27 1 views
1

Я создал пользовательскую вкладку в Magento, но при сохранении данных о продукте не отражается в базе данных.Пользовательские данные вкладки не сохраняются при редактировании продукта в magento admin

Я создал ниже с поля ввода.

<div class="input-field"> 
    <label for="custom_field">Custom Field</label> 
    <input class="input-text" name="custom_field" id="custom_field" /> 
</div> 

Я написал ниже код в Observer.

public function saveProductTabData(Varien_Event_Observer $observer) 
{ 
    if (!self::$_singletonFlag) { 
     self::$_singletonFlag = true; 
     $product = $observer->getEvent()->getProduct(); 
     try { 
      $customFieldValue = $this->_getRequest()->getPost('custom_field'); 
      $product->setNewAttribute($customFieldValue); 
      #$product->custom_field = $customFieldValue; 
      $product->save(); 
     } 
     catch (Exception $e) { 
      Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 
     } 
    } 
} 

Я следовал все шаги этого сайта https://fishpig.co.uk/magento/tutorials/custom-tabs-magento-product-admin/

+0

попробовать это $ продукт-> setCustomField ("значение"); – faizanbeg

+0

Я пробовал этот код '$ product-> setCustomField ($ customFieldValue);' но он не работает. –

+0

Укажите идентификатор магазина id администратора. То есть Mage :: app() -> getStore() -> setId (0); А также пользовательское значение поля для объекта продукта, например $ product-> setCustomField ($ customFieldValue) – khasru

ответ

3
$setup->addAttribute('catalog_product', 'custom_field', array(
'entity_model' => 'catalog/product', 
'label' => 'custom', 
'group' => 'General', 
'input' => 'text', 
'type' => 'text', 
'is_html_allowed_on_front' => false, 
'backend' => 'catalog/product_attribute_backend_price', 
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL, 
'visible' => false, 
'apply_to' => Mage_Catalog_Model_Product_Type::TYPE_SIMPLE, 
'required' => false, 
'user_defined' => true, 
'unique' => false, 
'visible_on_front' => false, 
'note' => 'custom' 
)); 

use this function in tab.php block 
public function getProduct() 
{ 
return Mage::registry('product'); 
} 
+0

Спасибо, он работает –

 Смежные вопросы

  • Нет связанных вопросов^_^