在Magento中过滤没有图像的产品

时间:2014-11-04 17:22:38

标签: php magento filtering magento-1.8 product

要求:我们有一堆有和没有图像的产品。我们只需要在前端显示带有图像的产品。

我做了什么:我尝试了几乎所有的SO资源,如:

Filter products without images on Magento frontend

How can I find all products without images in Magento?

Hide Products without images magento

和他们的各种组合没有运气..我认为新版Magento发生了一些变化。我使用的是1.8.1.0版本

有人能在这里点灯吗?

更新:在我的调试中,我发现了

->addAttributeToFilter('small_image', array('neq' => 'no_selection'))

真的很有效。但是分层价格过滤器中出现错误。我以为这不会提前工作。我得到的错误类似于:Magento 1.7 price filter error (Column not found: 1054 Unknown column 'e.min_price' in 'where clause') ...

根据Royw对上述问题的回答,我相信,我们需要编辑文件:Mage / Catalog / Model / Layer / Filter / price.php

2 个答案:

答案 0 :(得分:0)

你试过这个吗?

->addAttributeToFilter('small_image', array('neq' => 'no_selection'))

答案 1 :(得分:0)

这可以使用Magento事件来完成。我为这次活动增加了一位观察员:

catalog_product_collection_load_before

添加了一个过滤器,用于在加载产品集合时删除所有没有图像的产品。观察员如下:

public function filterProductsWithoutImages($observer) {
    if (isset($observer['collection'])) {
        $collection = $observer['collection'];
        $collection->addAttributeToFilter('small_image', array('neq' => "no_selection"));
        return $this;
    }
}

这里我们需要禁用“使用平面目录产品”。为此:

管理员>配置>目录>前端>使用平面目录产品“否”

由于此过滤与“平面目录产品”

的使用不兼容

搜索页面中的产品计数可以正常使用。