如何在Magento中按日期范围显示畅销商品

时间:2016-03-03 21:34:39

标签: php magento

有没有按日期范围显示畅销书?例如30天,60天等

这是我目前的bestsellers.phtml,我们不知道这些数据来自哪个范围

<?php
$params = $this->getData();
if(array_key_exists('limit', $params)) {
    $limit = $this->getData('limit');
} else {
    $limit = 3;
}

$products = $this->getBestSellers($limit);
?>

<script type="text/javascript" src="<?php echo $this->getSkinUrl('js/overlay_jquery.js');?>"></script>
<script type="text/javascript" src="<?php echo $this->getSkinUrl('msslider/slider2/stepcarousel.js') ?>"></script>  
<script type="text/javascript">
stepcarousel.setup({
    galleryid: 'mygallery', //id of carousel DIV
    beltclass: 'belt', //class of inner "belt" DIV containing all the panel DIVs
    panelclass: 'panel', //class of panel DIVs each holding content
    autostep: {enable:false, moveby:1, pause:2000},
    panelbehavior: {speed:500, wraparound:true, wrapbehavior:'slide', persist:true},
    defaultbuttons: {enable: false, moveby: 1, leftnav: ['<?php echo $this->getSkinUrl('msslider/slider2/arrowl.png')?>', -15, 100], rightnav: ['<?php echo $this->getSkinUrl('msslider/slider2/arrowr.png')?>', -25, 100]},
    contenttype: ['inline'] //content setting ['inline'] or ['ajax', 'path_to_external_file']
})
</script>
<div class="category-products home-page-listing">
    <div id="mygallery" class="stepcarousel">
    <div class="belt products-grid">
        <?php if(is_array($products) && count($products)): ?>
            <?php $i = 0; foreach($products as $product): ?>
                <div class="panel">
                    <div class="product-topbg">
                    <div class="product-bottombg">
                    <div class="product-midbg">
                        <h2 class="product-name" style="margin: 5px 0px 15px;">
                            <?php echo $product['category_name']; ?>
                        </h2>
                        <div class="overlay" 
                            id="overlay-<?php echo $i; ?>"
                        >
                            <a href="<?php echo $product['url']; ?>"
                                title="<?php echo $product['name']; ?>"
                            >
                                <img src="<?php echo $product['image_url']; ?>"
                                    width="160" height="160"
                                    alt="<?php echo $product['name']; ?>"
                                />
                            </a>
                        </div>
                        <h2 class="product-name" style="margin: 15px 0px 5px;">
                            <a href="<?php echo $product['url']; ?>"
                                title="<?php echo $product['name']; ?>">
                                <?php echo $product['name']; ?>
                            </a>
                        </h2>
                        <div class="overlay-show" 
                            id="overlay-show-<?php echo $i;?>"
                        >
                            <div class="product-price">
                                <?php echo $product['price']; ?>
                            </div>
                            <div class="price-bottombg"></div>
                        </div>
                    </div>
                    </div>
                    </div>
                    <script type="text/javascript">
                        var $i = jQuery.noConflict(); 
                        $i("#overlay-<?php echo $i;?>").hover(function () {
                            if ($i("#overlay-show-<?php echo $i;?>").is(":hidden")) {
                                $i("#overlay-show-<?php echo $i;?>").slideDown("fast");
                            } else {
                                $i("#overlay-show-<?php echo $i;?>").slideUp("fast");
                            }
                        });
                    </script>
                </div>
            <?php $i++; endforeach;?>
    <?php endif; ?>
    </div>
    </div>
    <script type="text/javascript">
    decorateGeneric($$('ul.products-grid'), ['odd', 'even', 'first', 'last']);
    </script>
</div>

感谢您对此代码的任何帮助。

1 个答案:

答案 0 :(得分:0)

正如我所看到的,这是属于某些3-d聚会扩展的块(或者smb可能已经编写了它)。这就是为什么你应该找到块并通过getBestSellers方法更正它收到的产品集合。

如果您只想查看最近3个更新的产品,最简单的方法是将'updated_at'的'order DESC'添加到集合中

因此,前3个产品将在列表中最后更新。它看起来像这样:

$collection->setOrder('update_at', Varien_Data_Collection_Db::SORT_ORDER_DESC);

如果您想要填充其他字段,这与'updated_at'不同,只需使用其名称而不是'updated_at'。

请注意,您应该在下载集合之前实现所有更改。

可以通过'updated_at'或通过布局找到该块。此外,您可以在模板内搜索updated_at。使用最方便的方法。