Magento read-only and hidden product attributes
OK, it looks like it can be done after all. After adding an observer for the catalog_product_load_after
event, the lockAttribute
method of the Mage_Catalog_Model_Abstract
class may be used to make a product attribute read-only. Here is the code for the observer method:
public function lockAttributes($observer) {
$event = $observer->getEvent();
$product = $event->getProduct();
$product->lockAttribute('attribute_code');
}
Since the catalog_product_load_after
event is dispatched for every product load, the attributes supplied in the lock_attributes
method are locked after every product load. This could have unexpected results: it is not possible to change the value of the attributes in the lock_attributes
method without explicitly unlocking them.
Instead of using the catalog_product_load_after
event, it suffices to add an observer for the catalog_product_edit_action
event: this event is dispatched only when editing a product in the admin interface.