0

如何获取产品状态和可见性选项的友好文本。例如,“启用”或“禁用”而不是 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);

4

2 回答 2

2

你也可以试试:

$product->getAttributeText('status')

这在某些情况下会起作用,但在其他情况下不起作用,但在起作用的地方,它比通过资源更短更简单。

于 2013-11-07T18:00:21.430 回答
0

你可以试试这样的

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

这是状态属性。

于 2013-05-15T05:17:12.270 回答