如何获得超级属性的值?

时间:2014-03-28 18:15:10

标签: magento attributes

有以下数据:

超级属性ID, 超级选项选择属性ID

我希望在产品选项中输入值。

每个产品都具有相同的超级属性,更改每个选项中相同产品的设置有什么不同的值

一般情况下,我需要获得超级属性选项的超级属性id的选项价格选择产品ID

我在下面生成了这个代码解决了,但这太糟糕了=(

$produto_cor = Mage::getModel('catalog/product')->load($id_produto);
$produto_cor_options = $produto_cor->getTypeInstance(true)->getConfigurableAttributesAsArray($produto_cor);
foreach($produto_cor_options as $options){
    $atributo_cor = $options['values'];
    foreach ($atributo_cor as $options2){;
        echo $options2['pricing_value'] . '<br />';
    }
}

2 个答案:

答案 0 :(得分:1)

尝试以下代码......

 $configProd=Mage::getModel('catalog/product')->load($config_proid);
            $AllowAttributes=$configProd->getTypeInstance(true)
                ->getConfigurableAttributes($configProd);
            $optionPrices = array();
                $_attribute_id =  Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product','color')->getId(); 

                foreach ($AllowAttributes as $attribute) {
                $productAttribute = $attribute->getProductAttribute();
                $attributeId = $productAttribute->getId();
                // run rest of when  color attribute is looped. 
                if($productAttribute->getId()!=$_attribute_id){
                continue; } 


                $prices = $attribute->getPrices();
                if (is_array($prices)) {
                    foreach ($prices as $value) {

//$value['value_index'] is option id 
                        $optionPrices[$value['value_index']]=$value;
                    }
                }

                }

答案 1 :(得分:-2)

代码Amit Bera,帮助我解决了解决问题的决议

$cor = addslashes($_GET['cor']);
$cor_selecionada = addslashes($_GET['cor_selecionada']);
$configProd = Mage::getModel('catalog/product')->load($id_produto);
$AllowAttributes=$configProd->getTypeInstance(true)->getConfigurableAttributes($configProd);
$optionPrices = array();

foreach ($AllowAttributes as $attribute) {                  
    $productAttribute = $attribute->getProductAttribute();
    if($productAttribute->getId() == $cor){
        $prices = $attribute->getPrices();
        if (is_array($prices)) {
            foreach ($prices as $value) { 
                if($value['value_index'] == $cor_selecionada){
                    echo $value['pricing_value'];
                }
            }
        }
    }

}