在进行Magento的相关操作的时候,你可能都想在产品分类页面添加上这一类产品的推荐产品(FeaturedProducts),这类产品一般是销售比较好的,或者是你的利润比较大的产品,那我们应该怎么样添加上这类产品呢?下面是描述如何显示一组推荐产品(Featured Product)。 Featured产品需要在后台为产品增加一个Featured属性。 当管理员在Featured属性上选择Yes时,该产品就以Block的形式显示在产品列表页。

步骤 1) 创建一个”Featured”属性

进入后台Catalog > Attributes > Manage Attributes > Add New Attribute. 添加一个新的属性
Attribute Properties

  • Attribute Identifier: featured
  • Scope: Store View
  • Catalog Input Type for Store Owner: Yes/No
  • Unique Value (not shared with other products): No
  • Values Required: No
  • Input Validation for Store Owner: None
  • Apply To: All Product Types

Front End Properties

  • Use in quick search: No
  • Use in advanced search: Yes
  • Comparable on Front-end: No
  • Use In Layered Navigation (Can be used only with catalog input type ‘Dropdown’): No
  • Visible on Catalog Pages on Front-end: Yes

Manage Label/Options

  • Default: Featured Product
  • English: Featured Product

然后保存,然后去Catalog → Attributes → Manage Attributes Sets,把该属性加入到默认属性集。

步骤2). 加一个Block配置到catalog.xml

打开 app/design/frontend/default/default/layout/catalog.xml. 我们在默认Category Layout标签的product list block上方加一个新的Block. 差不多在该文件的73行
Layerout代码

  1. <catalog_category_default>
  2. <block type=”catalog/product_featured” name=”product_featured” as=”product_featured” template=”catalog/product/featured.phtml”></block>
  3. …..
  4. </catalog_category_default>

步骤 3) 创建一个新的Block类从数据库取出所有Featured产品
PHP代码

  1. <?php
  2. class MyCompany_Catalog_Block_Product_Featured extends Mage_Catalog_Block_Product_Abstract
  3. {
  4. public function getFeaturedProducts(){
  5. $ids = $this->_getFeaturedProductsIds();
  6. $collection = Mage::getModel(‘catalog/product’)->getCollection();
  7. $collection->getSelect()->where(“e.entity_id in (?)”, $ids);
  8. $collection->addAttributeToSelect(‘name’);
  9. $productList = $collection->load();
  10. return $productList;
  11. }
  12. public function _getFeaturedProductsIds(){
  13. // instantiate database connection object
  14. $categoryId = $this->getRequest()->getParam(‘id’, false);
  15. $resource = Mage::getSingleton(‘core/resource’);
  16. $read = $resource->getConnection(‘catalog_read’);
  17. $categoryProductTable = $resource->getTableName(‘catalog/category_product’);
  18. //$productEntityIntTable = $resource->getTableName(‘catalog/product_entity_int’); // doesn’t work 
  19. $productEntityIntTable = (string)Mage::getConfig()->getTablePrefix() . ‘catalog_product_entity_int’;
  20. $eavAttributeTable = $resource->getTableName(‘eav/attribute’);
  21. // Query database for featured product
  22. $select = $read->select()
  23. ->from(array(‘cp’=>$categoryProductTable))
  24. ->join(array(‘pei’=>$productEntityIntTable), ‘pei.entity_id=cp.product_id’, array())
  25. ->joinNatural(array(‘ea’=>$eavAttributeTable))
  26. ->where(‘cp.category_id=?’, $categoryId)
  27. ->where(‘pei.value=1′)
  28. ->where(‘ea.attribute_code=”featured”‘);
  29. $rows = $read->fetchAll($select);
  30. $ids = array();
  31. foreach($rows AS $row) {
  32. $ids[] = $row['product_id'];
  33. }
  34. $ret = implode(“,”, $ids);
  35. return $ids;
  36. }
  37. }
  38. ?>

步骤4): 扩展Mage_Catalog_Block_Category_View

创建一个文件叫app/code/local/MyCompany/Catalog/Block/Category/View.php.

PHP代码

  1. <?php
  2. class MyCompany_Catalog_Block_Category_View extends Mage_Catalog_Block_Category_View
  3. {
  4. public function getFeaturedProductsHtml()
  5. {
  6. return $this->getBlockHtml(‘product_featured’);
  7. }
  8. }
  9. ?>

步骤5): 修改模板文件
1). 编辑 app/design/frontend/default/default/template/catalog/category/view.phtml ,在
Template代码

  1. <?php echo $this->getProductListHtml()?>

的上面一行加入:

Template代码

  1. <div style=”border: 1px green solid”><h4>Featured Products</h4> <?php echo $this->getFeaturedProductsHtml()?> </div>

2). 创建app/design/frontend/default/default/template/catalog/product/featured.phtml
Template代码

  1. <?php $_products=$this->getFeaturedProducts() ?>
  2. <ul>
  3. <?php foreach($_products AS $_product) { ?>
  4. <li><a href=”<?php echo $_product->getProductUrl() ?>”><?php echo $this->htmlEscape($_product->getName()) ?></a></li>
  5. <?php  }
  6. ?>
  7. </ul>

步骤 6) 加一个新的块到app/etc/local.xml,最好的做法是建立一个新的文件app/etc/modules/MyCompany_Catalog.xml(文件名不必一定是MyCompany_Catalog),内容如下:
Layerout代码

  1. <?xml version=”1.0″?>
  2. <config>
  3. <global>
  4. <blocks>
  5. <catalog>
  6. <rewrite>
  7. <product_featured>MyCompany_Catalog_Block_Product_Featured</product_featured>
  8. </rewrite>
  9. <rewrite>
  10. <category_view>MyCompany_Catalog_Block_Category_View</category_view>
  11. </rewrite>
  12. </catalog>
  13. </blocks>
  14. </global>
  15. </config>

分析:
步骤2). 加一个Block配置到catalog.xml
步骤5): 修改模板文件的小步骤1), 编辑 app/design/frontend/default/default/template/catalog/category/view.phtml

该例证明:有些扩展涉及到对原系统的更改。

当运行某产品分类网页时,显示app/design/frontend/default/default/template/catalog/category/view.phtml ,接下来调用序列为:
a. <div style=”border: 1px green solid”><h4>Featured Products</h4> <?php echo $this->getFeaturedProductsHtml()?> </div>
b. MyCompany_Catalog_Block_Category_View->getFeaturedProductsHtml() {
         $this->getBlockHtml(‘product_featured’);
    }
c. 在Catalog.xml中找到product_featured块的定义,调用对应的phtml文件: app/design/frontend/default/default/template/catalog/product/featured.phtml
d. featured.phtml文件中<?php $_products=$this->getFeaturedProducts() ?> 调用对应Block的关键方法getFeaturedProducts().显示到网页上

本文参考自:http://www.igocommerce.com/read-htm-tid-13.html

在Magento产品分类页面创建推荐产品(Featured Products)相关推荐

  1. zen cart如何给新产品、特价、推荐产品页面加标题、关键字、描述

    zen cart本身的mate tags设置已经很全面了,包括产品销售页面,产品分类列表页面的关键字以及标题等都完全可以自己定义,如果没有定义则自动调用产品名称.或者分类名称等. 但是针对新产品(in ...

  2. Magento 产品推荐 extension Featured products 2.0 – revamped!

    Platform: Community Platform: Community Platform: Enterprise Compatible with: 1.6, 1.6.1, 1.6.2.0, 1 ...

  3. SAP Spartacus产品转盘页面(ProductCarousel)的产品数据批量加载实现细节

    实现源代码: getMany(products: ScopedProductData[]): ScopedProductData[] {console.log('Jerry in getMany: ' ...

  4. zen cart产品分类及产品管理

    商品及商品分类管理用来在后台对商品及其商品分类的维护,包括商品分类的增加.编辑.删除.移动等操作,商品的增加.编辑.删除.移动.复制等操作,以及对产品分类页面和产品详细页面的标题(title),关键字 ...

  5. java产品分类和管理_Java生鲜电商平台-商品无限极目录的设计与架构

    Java生鲜电商平台-商品无限极目录的设计与架构 说明:任何一个商品都应该是先属于某一个目录,然后在目录中添加商品,目录理论上最多支持三级,因为级别太多,不容易管理.但是设计中需要设计无限制的级别. ...

  6. [Modules]PrestaShop插件 模块 – 产品推荐模块 随机展示推荐产品

    2019独角兽企业重金招聘Python工程师标准>>> 产品推荐模块 产品推荐模块可以推荐你指定的产品进行随机显示 1.增加产品内链 2.可以增加产品展示机会,让外贸订单增加! 3. ...

  7. 易企CMS产品中心打不开,产品分类不显示的原因及解决办法

    易企cms1.7的时候有一个catlog页面,用来展示所有产品及分类.在1.8里的时候删除了这个页面.所以使用1.7模板的时候会出现产品中心打不开的情况.为了保留产品中心页面,即可以通过一个页面查看站 ...

  8. 如何移除WooCommerce产品分类链接中的product-category

    如何移除WooCommerce分类产品链接中的product-category? 为何要移除product-category? 我们在优化网站的时候,链接的优化也非常的重要.对与谷歌SEO来说,链接越 ...

  9. 产品:关键词与分类---人人都是产品经理day02

    ---来源:人人都是产品经理 本篇重点阐述以下两个概念: 1.产品是解决某个问题的东西 2.常见的产品分类维度 -------------------------------------------- ...

最新文章

  1. Eclipse NDK 配置,无需安装Cygwin
  2. AutoFac在项目中的应用
  3. c++美发店管理系统设计_美发店如何打造会员管理系统?掌柜智囊—收银机必不可少...
  4. ML:MLOps系列讲解之《MLOps原则之监控/“机器学习成绩”系统/可再现性/松散耦合架构(模块化)/基于ML的软件交付指标/MLOps原则和实践的总结》解读
  5. ​数据科学中 17 种相似性和相异性度量
  6. gradle打包java项目_gradle打包java项目
  7. 9-18 学习如何使用Python包的管理
  8. solr-4.10.3.tgz.tgz下载
  9. LINUX 下通过lsof恢复被误删除的文件
  10. 计算机组成mod2是什么意思,计算机组成原理 第2讲_数据表示.ppt
  11. BZOJ3669[NOI2014] 魔法森林
  12. MongoDB 清理数据
  13. VMware 虚拟机的使用
  14. 打怪小游戏(已支持商店)
  15. php mysql md5加密_php 用户密码MD5加密存入数据库问题//
  16. AV/EDR 免杀逃避技术汇总
  17. kubectl命令行管理工具
  18. System.InvalidOperationException:“寄宿的 HWND 必须是指定父级的子窗口。”
  19. 新概念英语,音频文档
  20. 重磅!浙大开设区块链课程,影响70%的程序员?

热门文章

  1. 如何在PR软件中制作加速快进视频?
  2. 《Linux多线程服务端编程:使用muduoC++网络库》学习笔记
  3. 中国研究人员发现使用量子计算机破解加密的新方法
  4. 通过拷贝block实现system文件大量坏块恢复
  5. 地图小区景点边界轮廓实现
  6. 【无标题】python利用公式法计算圆周率
  7. make问题:make[1] entering directory
  8. 嘉立创EDA专业版--从AD导入图纸定位尺寸
  9. LeetCode每日一题(Path In Zigzag Labelled Binary Tree)
  10. 交换机的转发原理 |VLAN详解·图解 |VLAN间通信 |华为,思科配置