如何获取产品状态和可见性属性的“友好”文本?

时间:2013-05-14 19:48:05

标签: magento magento-1.4

如何获取产品状态和可见性选项的友好文本。例如,'启用'或'禁用'而不是1或2,类似的可见性'不可见单独','目录,搜索'等而不是1,2,3或4?

我猜测某处可以使用$product->getStatus并返回文本值的函数?和类似的可见度?

我只是习惯于尝试建立一个简单的列表来适应magento:

$products = Mage::getModel('catalog/product')
    ->getCollection();

foreach ( $products as $product ) { 
  echo $product->getSku();
  echo $product->getStatus();
  echo $product->getVisibility();
}

但希望状态和可见性与管理页面中的内容和可见性一样,而不是数值。

编辑:在Mufaddal的回答的帮助下,我的最终解决方案是;

$products = Mage::getModel('catalog/product')
    ->getCollection()
    ->addAttributeToSelect('sku')
    ->addAttributeToSelect('status')
    ->addAttributeToSelect('visibility')
    ->addAttributeToSort('sku', 'asc');

foreach( $products as $product ){
    echo 'SKU: ' .$product->getSku() . '<br/>';
    echo 'Visibility: ' . $product->getResource()->getAttribute('visibility')->getFrontend()->getValue($product); . '<br/>';
    echo 'Status: ' . $product->getResource()->getAttribute('status')->getFrontend()->getValue($product); . '<br/>';
}

我需要->addAttributeToSelect('*')或者在getResource调用工作之前指定select中的每个属性,例如$product->getResource()->getAttribute('status')->getFrontend()->getValue($product);

2 个答案:

答案 0 :(得分:2)

您也可以尝试:

$product->getAttributeText('status')

哪些在某些情况下有效,而在其他情况下无效,但在有效的情况下,它比通过资源更短更简单。

答案 1 :(得分:0)

您可以尝试这样的事情

$products ->getResource()->getAttribute('status')->getFrontend()->getValue($products );

这是状态属性。