`
mypages
  • 浏览: 88156 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

magento -- 巧用magento的分类实现把特定产品放到首页

阅读更多

magento -- 巧用magento的分类实现把特定产品放到首页

magento的首页是通过cms实现的静态页,我想如果我们去修改magento的routers应该是可以不让magento默认进入cms页面,而直接进入产品页面。不过目前我还没去试。我们也可以直接在cms页面中直接添加block实现在cms页面显示产品的目的:

 

首先,登陆后台,进入到cms --- manage page

 

然后,编辑当前启用的home page页

{{block type = "catalog/product_list" category_id="xx" template = "catalog/product/homepage.phtml" }}
这样是可以将某一类产品放到首页上去,然而经常碰到用户说他想要挑几个特定的产品放到首页上去。一直也没去想,因为以前就知道这样做肯定是可以的,而且总是从编程的角度去思考,总是想我只需要在magento的product/list block中加一点过滤条件就可以,而且确实是可以的,实现步骤如下:

 

1,在用户添加产品之前,为用户所使用的attributte set添加一个属性(如,show_on_homepage,名称可自定),这个属性类型设置为yesno类型,当值为yes时在首页显示,即如果用户想在首页显示这个产品就把这个设置成yes.

 

2.创建一个自己的module,它只包含一个block。然后在block中添加代码对product collection进行筛选。当然也可以直接将这个block放到catalog模块的相应目录下,把模板放到相关的主题目录模板下。

$products   = $product->setStoreId($storeId)->getCollection()
            ->addAttributeToFilter('show_on_homepage', array('yes'=>true))

显然,上面的方面必须是在用户末添加产品时就得做,万一用户已经添加完很多产品什么办?还是有办法的。因为product list block可以显示某一类的产品,所以我们如果不想修改代码,可以设置一个新的子类,注意不要将它设置为active(除非你想在首页的菜单中看到这个类)。然后将这个子类的id传递给product list block,之后,就让用户选择他要放在首页的产品了,并把这些产品指定到这个类下面,这可是利用了magento 的一个产品可以指定给多个分类的特点。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics