我正在使用Magento ver。 1.5.0.1。在主页我用左栏2列。我想一个接一个地展示最新,最高评价和最好的产品。请帮我怎么做。我是magento的新手,请帮助我......
答案 0 :(得分:13)
在您的app / design / frontend / {your-interface} / {your-theme} /template/catalog/navigation/left.phtml中添加以下代码以获取最新产品:
<?php
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->setVisibility(array(2,3,4))
->setOrder('created_at', 'desc')
->setPage(1, 5);
?>
<h2>Latest Products</h2>
<ul>
<?php foreach($_productCollection as $_product) : ?>
<li><a href="<?php echo $_product->getProductUrl(); ?>"><?php echo $_product->getName(); ?></a></li>
<?php endforeach; ?>
</ul>
评价最高的产品有点复杂。使用以下代码:
<?php
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->setVisibility(array(2,3,4));
$_productCollection->joinField('rating_summary', 'review/review_aggregate', 'rating_summary', 'entity_pk_value=entity_id', array('entity_type' => 1, 'store_id' => Mage::app()->getStore()->getId()), 'left');
$_productCollection->setOrder('rating_summary', 'desc');
$_productCollection->setPage(1, 5);
?>
<h2>Latest Products</h2>
<ul>
<?php foreach($_productCollection as $_product) : ?>
<li><a href="<?php echo $_product->getProductUrl(); ?>"><?php echo $_product->getName(); ?></a></li>
<?php endforeach; ?>
</ul>
不确定您对最佳产品的意义,但如果是畅销商,请参阅以下代码:
<?php
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->setVisibility(array(2,3,4));
$select = $_productCollection->getSelect();
$sqlSelectColumns = $select->getPart('columns');
$sqlSelectColumns[] = array(
'',
new Zend_Db_Expr('(
SELECT SUM(order_item.qty_invoiced - order_item.qty_refunded)
FROM ' . Mage::getSingleton('core/resource')->getTableName('sales/order_item') . ' AS order_item
WHERE order_item.product_id = e.entity_id)
'),
'ordered_qty'
);
$select->setPart('columns', $sqlSelectColumns);
$_productCollection->setOrder('ordered_qty', 'desc');
$_productCollection->setPage(1, 5);
?>
<h2>Top Selling Products</h2>
<ul>
<?php foreach($_productCollection as $_product) : ?>
<li><a href="<?php echo $_product->getProductUrl(); ?>"><?php echo $_product->getName(); ?></a></li>
<?php endforeach; ?>
</ul>
答案 1 :(得分:1)
此扩展对您的要求非常有帮助。您可以从url安装此扩展程序: http://www.magentocommerce.com/magento-connect/mageoutsourcing/extension/6669/bnm
在您的magento中安装后,稍微进入xml,这有助于在其他的左侧显示最畅销的产品。 您应该从以下位置更改布局xml:
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="right">
<block type="bnm/bestsellingproduct" name="bestsellingproduct.sidebar" after="cart_sidebar" template="bnm/bestselling-sidebar.phtml"/>
</reference>
</default>
</layout>
致:
<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="left">
<block type="bnm/bestsellingproduct" name="bestsellingproduct.sidebar" after="-" template="bnm/bestselling-sidebar.phtml"/>
</reference>
</default>
</layout>
注意:之前(和之后) - 这两种方法可以在结构块中定位内容块。 before =“ - ”和after =“ - ”是用于相应地将块定位在结构块的最顶部或最底部的命令。