我m working with random products on my homepage and i
试图只展示带有图片和库存的产品。我设法通过使用下面的代码来显示只有带图像和instock的产品:
<?php
$products_noimage = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('image', array('neq' => 'no_selection'));
?>
<?php foreach ($_productCollection as $_product): ?>
<?php if(!$_product->isSaleable() && $products_noimage && $_product->isInStock())continue; ?>
<?php //if criteria is meet show products below
?>
但我的问题是当主页加载时有时它只会在网格中显示1或2个产品,因为我有很多产品没有图像和废料我认为页面正在装载产品缺货而没有图像但只显示1或2图像和库存的产品。
示例:该页面将从16个产品中加载16个产品,只有2个产品有图像,而其他产品不符合此标准。
如何避免它,而不是只加载符合标准的那些2按顺序加载其他符合这些标准的产品(使用图像和instock)..
或者它可能永远不会起作用,因为我正在使用list.phtml块?
{{block type="catalog/product_list_random" template="catalog/product/productrandomhom.phtml"}}
如果有人在主页上有过滤随机产品的解决方案,请分享=)
答案 0 :(得分:0)
你的逻辑错了
首先从app/code/core/Mage/Catalog/Block/Product/List
复制Random.php
到app/code/local/Mage/Catalog/Block/Product/List
然后转到功能和图像过滤器in _getProductCollection()
从$collection = Mage::getResourceModel('catalog/product_collection');
更改
到
$collection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToFilter('image', array('neq' => 'no_selection'));
,您只展示了可销售的产品并且正在推出
if($ _ product-&gt; isSaleable()&amp;&amp; $ _product-&gt; isInStock()== 1){} else { 继续; }
答案 1 :(得分:0)
试试这段代码
<?php
$products_noimage = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('image', array('neq' => 'no_selection'));
?>
<?php foreach ($_productCollection as $_product): ?>
<?php if(!$_product->isSaleable() && $_product->isInStock()==0)continue; ?>
//if criteria is meet show products below
?>