西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

magento获取指定attribute属性的产品列表

时间:2017-01-12 00:41来源:未知 作者:好模板 点击:
这是一个向magento初学者一步一步展示magento如何按属性来列出产品排序的教程. 我将以Magento已经创建好的新产品和促销产品功能开始. 以下所有说明都是针对Magento1.9.0.0的 列出带有属性

获取自定义属性产品的列表

这是一个向magento初学者一步一步展示magento如何按属性来列出产品排序的教程. 
我将以Magento已经创建好的新产品和促销产品功能开始. 
以下所有说明都是针对Magento1.9.0.0的

列出带有属性New的产品列表

在Magento后台管理面板,在Products management里面的Manage products 你能找到设置和定义新的属性。这篇教程中,我将使用名字叫Homepage的CMS Page来作为示例
在CMS Page layout -> Layout Update XML里面已经被原有的cms page占据着:

<reference name="content">
 
<block type="core/template" name="home" as="home" template="page/home.phtml" >
 
</block></reference>

  1. 首先,通过设置“Set Product as New from Date”和“Set Product as New to Date”来定义产品为新产品.
  2. Magento默认已经指定了新产品列表的模板,你可以在app/design/frontend/pro/YourTheme/template/catalog/product/new.phtml这个路径找到它.
  3. 在xml布局文件中通过block块结构体来定义你想要在哪里显示新产品模板(new.phtml).
  4. 插入新的block块
<reference name="content">
 
<block type="catalog/product_new" name="home.catalog.product.new" 	alias="product_new" as="newproducts"  	after="cms_page" template="catalog/product/new.phtml">
<action method="setProductsCount"><count>8</count></action>
<action method="setColumnCount"><count>4</count></action>
</block>
 
</reference>
  1. 指定你想要在哪展示带有新产品模板的块(在哪里调用这个block块)
    < ?php echo $this->getChildHtml('newproducts') ?>

    在我们的案例中,我们把Homepage模板定位于template/page/html/home.phtml

  2. 这就是所有你需要做的.

注意:
Content 是一个core/text_list类型 并且他可以支持嵌套所有的block类型.

你可以设置你想要显示多少个产品在magento的前台:

<action method="setProductsCount"><count>8</count></action>

和多少列:

<action method="setColumnCount"><count>4</count>4</action>

列出所有带有Promotion属性的产品列表

列出所有带有Promotion属性的产品列表方法在magento中已经存在,这与列出新产品稍微有点不同

  1. 首先我们需要在Magento后台为产品创建一个属性
  2. 创建一个名为“Promotion”的dropdown (Yes/No)类型的属性
  3. 如果你想为所有产品添加属性,那么需要将属性关联到default属性组
  4. 复制template/catalog/product/list.phtml文件到同级目录下,改名为promotion.phtml
  5. 在XML布局文件中定义block块的位置。在我们的案例中是CMS page下的“Homepage” 
    <block type="catalog/product_list_promotion" name="promotion" template="catalog/product/promotion.phtml" />
  6. 指定你想要在哪展示带有promotion.phtml模板的块在哪里调用这个block块)
    < ?php echo $this->getChildHtml('promotion') ?>

    在我们的案例中,我们把Homepage模板定位于template/page/html/home.phtml

列出带有自定义模板和带有dropdown Yes/No类型属性的产品列表

在这个案例中,我们将用magento的Promotion product方法来修改它.

  1. 创建新的目录文件app/code/local/Mage/Catalog/Block/Product/List/Example.php
  2. 复制app/code/core/Mage/Catalog/Block/Product/List/Promotion.php 并粘贴到Example.php
  3. 改变Example.php:

 

class Mage_Catalog_Block_Product_List_Promotion extends Mage_Catalog_Block_Product_List

到:

class Mage_Catalog_Block_Product_List_Example extends Mage_Catalog_Block_Product_List

也要改变:

$collection->addAttributeToFilter('promotion', 1)

到:

$collection->addAttributeToFilter('example', 1)

之后按照我之前写过Promotion属性的步骤执行。
希望这篇教程能对你有所帮助。

(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------