Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check if attribute exist in product attribute set? Magento

How to check if attribute exist in product attribute set?

I need to know if a product has an attribute for its set of attributes.

I get the attribute with:

$attrPricekg = Mage::getModel('catalog/product')->load($_product->getId())->getPricekg();

If attribut exist in product attribute set, $attrPricekg display: set value for the product or 0 if no value set for the product.

If the attribute does not exist in product attribute set, $attrPricekg display 0. This is my problem.. I need to avoid this, I want to check that the attribute does not exist for that product.

Thanks.

like image 429
user1992779 Avatar asked Jan 19 '13 12:01

user1992779


2 Answers

now I'll provide an answer which works regardless!

$product = Mage::getModel('catalog/product')->load(16);

$eavConfig = Mage::getModel('eav/config');
/* @var $eavConfig Mage_Eav_Model_Config */

$attributes = $eavConfig->getEntityAttributeCodes(
    Mage_Catalog_Model_Product::ENTITY,
    $product
);

if (in_array('pricekg',$attributes)) {
    // your logic
}
like image 144
benmarks Avatar answered Nov 09 '22 23:11

benmarks


To check if a specific attribute exists in product, it should return true even if the attribute has the value 'null'.

One way that works is:

$attr = Mage::getModel('catalog/resource_eav_attribute')->loadByCode('catalog_product',$code);
if (null!==$attr->getId())

{ //attribute exists code here }

It can also of course be written in one line:

if(null!===Mage::getModel('catalog/resource_eav_attribute')->loadByCode('catalog_product','attributecode_to_look_for')->getId()) {
    //'attributecode_to_look_for' exists code here
}

Found it and modified a bit on: https://github.com/astorm/Pulsestorm/issues/3

like image 21
tomg Avatar answered Nov 10 '22 00:11

tomg