如何在装载的产品上获得产品的可见性?
<?php
$Product = Mage::getModel('catalog/product');
$Product->load($_item->getId());
var_dump($product_visibility = $Product->getData('visibility'));
?>
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
var_dump($product_visibility = $Product->getVisibility());
Run Code Online (Sandbox Code Playgroud)
但总是只返回NULL
los*_*ime 10
这是我使用的代码,它适用于Magento 1.5.0.1版:
$pr2test = Mage::getModel('catalog/product');
$pr2test->load($product->getId());
echo 'Visibility: '.$pr2test->getVisibility();
Run Code Online (Sandbox Code Playgroud)
可见性值是整数(1-4).您可以通过检查Mage_Catalog_Model_Product_Visibility此处找到的类中定义的常量来找出每个整数转换为的可见性设置:/app/code/core/Mage/Catalog/Model/Product/Visibility.php
如果您遇到问题,我建议您检查一下您的电话,$_item->getId()确保它返回有效的产品ID.我无法从你的帖子中看出是什么类型的对象$_item,但我似乎记得项目和产品之间存在差异.也许尝试其中一个:
$_item->getProductId();
$_item->getProduct()->getId();
Run Code Online (Sandbox Code Playgroud)
如果要在产品集合中显示可见性属性,则应进行联接
查看magento产品研磨代码,您可以找到
$collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner', $store->getId());
Run Code Online (Sandbox Code Playgroud)
所以在你的代码中你可以做
$prodColl = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('name')
->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner', 1);
foreach ($prodColl as $prod)
{
$v = $prod->getVisibility();
}
Run Code Online (Sandbox Code Playgroud)
你应该使用Mage_Catalog_Model_Product::getStatus方法(也有有用的方法Mage_Catalog_Model_Product::isVisibleInCatalog)。
| 归档时间: |
|
| 查看次数: |
22202 次 |
| 最近记录: |