我有一个基于magento的网站(http://www.apoyowellness.com/index.php/)。
在这里,您可以看到畅销书部分,我添加了自定义字段"精选"从中将产品标记为最佳卖家的特色。
我的问题是我想根据产品目录中定义的排序重量自定义字段重新排列产品。
我已将自定义字段sort_order附加到产品目录中,并且每个产品的排序重量/数量如1,2,3,4等。我想按照编号按升序显示产品。
我有一个for循环,它给了我产品的所有属性只是想要一个帮助如何循环所有产品里面的每个按给定数字(1,2,3等)的升序。以下是我的每个代码:
<?php foreach ($_productCollection as $_product): //print_r($_product); ?>
<?php if($_product->featured == 1): ?>
<div class="reco-sgl">
<div class="product-image-wrapper borderlnright">
<div class="single-products">
<div class="productinfo text-center">
<a href="<?php echo $_product->getProductUrl() ?>">
<img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" />
</a>
<p><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></p>
<?php echo $this->getFeaturedProductHtml() ?>
<h4><?php echo $this->getPriceHtml($_product, true) ?></h4>
<a href="<?php echo $_product->getProductUrl() ?>" class="btn btn-default add-to-cart">Add to Cart</a> </div>
</div>
</div>
</div>
<?php endif; ?>
<?php endforeach ?>
请帮忙。
答案 0 :(得分:1)
您必须创建2个产品属性,一个是YES / NO类型。
“sort_order”用于自定义排序编号,如1,2,3,4等
$limitnumber = 10;
$products = Mage::getResourceModel('catalog/product_collection')->addAttributeToSelect('*')->addAttributeToFilter('featured_product', array('eq' => '1'))->addAttributeToSort('sort_order', 'asc');
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
// version magento CM 1.9.0.1
//Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($products);
$products->setPageSize($limitnumber)->setCurPage(1)->load();
foreach ($products->getItems() as $product){
echo $product->getName();
// your code
}
答案 1 :(得分:0)
在循环之前添加$_productCollection->addAttributeToSort('sort_order', 'ASC');
。请记住,该属性必须选择为“用于产品列表中”。和&#39;用于产品清单中的排序&#39;在管理仪表板(管理属性)中。