2013-05-14 29 views
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指定在選擇每一個屬性調用會工作例如$product->getResource()->getAttribute('status')->getFrontend()->getValue($product);

回答

0

你可以嘗試這樣的事情

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

這是狀態屬性。

+1

您好Mufaddal,即使用: '$產品 - >的getResource() - >的getAttribute( '狀態') - > getFrontend() - >的getValue($產品);' 或 '$產品 - > getResource() - > getAttribute('status') - > getFrontend() - > getValue($ product);' 我總是得到** No **作爲結果返回? – fracture

+0

你在哪裏顯示此信息? – Mufaddal

+0

我想了一下.. - > getCollection默認不包含狀態和可見性值,我需要使用' - > addAttributeToSelect('sku')'或者單獨指定它們。 ' - > addAttributeToSelect('status')'那麼以前嘗試過的任何選項都會起作用。謝謝! – fracture

1

你還可以嘗試:

$product->getAttributeText('status') 

將在某些情況下,而不是在別人的工作,但如果它的工作是不是通過資源會更短,更簡單。

相關問題