To get all attribute options from a Magento dropdown attribute (select field) you can use the following snippet:
<?php $oAttibute = Mage::getModel('eav/config')->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'sheldon_special'); $aOptions = $oAttibute->getSource()->getAllOptions(); var_dump($aOptions);
That gives you an array like that:
<?php $aOptions = {array} [6] 0 = {array} [2] label = "" value = "" 1 = {array} [2] label = "best" value = "306" 2 = {array} [2] label = "new" value = "305" 3 = {array} [2] label = "no" value = "304" 4 = {array} [2] label = "sale" value = "307" 5 = {array} [2] label = "special" value = "632"
This can be used as source for a system config field for example. See my blogpost about Category dropdown element.
To get a specific value by given label, you can use this function:
<?php /** * Returns option id for given value or false if it cannot be determined. * * Pattern: * $aAttributeOptions = [ * 0 => [ * 'label' => 'LABELTEXT', * 'value' => '123' * ] * ]; * * @param array $aAttributeOptions Option array ( * * @param string $sLabel * * @return bool|string */ protected function _getOptionValueByLabel($aAttributeOptions, $sLabel) { foreach ($aAttributeOptions as $aOption) { if (isset($aOption['label']) && $aOption['label'] == $sLabel) { return $aOption['value']; } } return false; }
To get all attribute labels for each store into a CSV file, you can do something like that:
<?php /** * Exports Attribute store labels for multiselect and dropdown product * attributes * * @throws \Mage_Core_Exception */ protected function _exportAttributeStoreLabels() { $sFile = $this->_getExportFilePath(self::ATTRIBUTE_LABEL_EXPORT_SUFFIX); $rFileHandle = fopen($sFile, 'w+'); if (!$rFileHandle) { Mage::throwException( "Could not open attribute label export file $sFile" ); } foreach (self::TRANSLATE_LABEL_ATTRIBUTES as $sAttributeCode) { $oAttribute = Mage::getModel('catalog/resource_eav_attribute') ->loadByCode('catalog_product', $sAttributeCode); if (!$oAttribute->getAttributeId()) { echo "WARNING: Cannot load attribute: $sAttributeCode! \n"; return false; } $oAttributeOptionsModel = Mage::getModel( 'eav/entity_attribute_source_table' ); $oAttributeOptionsModel->setAttribute($oAttribute); $aOptions = $oAttributeOptionsModel->getAllOptions(false); foreach (Mage::app()->getStores(true) as $iStoreId => $oStore) { foreach ($aOptions as $aOption) { fputcsv( $rFileHandle, [ $oAttribute->getAttributeCode(), $oStore->getCode(), $aOption['label'] ], self::CATEGORY_PRODUCT_POSITIONS_CSV_DELIMITER, self::CATEGORY_PRODUCT_POSITIONS_CSV_ENCLOSURE ); } } } }