Magento中新建添加了special price的产品模块
在Magneto中新建special price页面这个功能模块用到的应该不多,现在的商城基本都是所有的产品的会加上special price。国外有些商城可能会用到这个功能,放假的时候查了些资料,现在分享下这个功能模块。
在app/design/frontend/default/你的主题/template/catalog/product中新建special.phtml,加入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <?php include_once 'app/Mage.php'; Mage::app(); Mage::getSingleton('core/session', array('name' => 'frontend')); $_productCollection = Mage::getResourceModel('catalogsearch/advanced_collection') ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()) ->addMinimalPrice() ->addStoreFilter(); Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($_productCollection); Mage::getSingleton('catalog/product_visibility')->addVisibleInSearchFilterToCollection($_productCollection); $todayDate = date('m/d/y'); $tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y')); $tomorrowDate = date('m/d/y', $tomorrow); $_productCollection->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate)) ->addAttributeToFilter('special_to_date', array('or'=> array( 0 => array('date' => true, 'from' => $tomorrowDate), 1 => array('is' => new Zend_Db_Expr('null'))) ), 'left'); foreach($_productCollection as $_product){ if($_product->getData('special_price')!=null){ echo '<img src="'.$this->helper('catalog/image')->init($_product, 'thumbnail')->resize(75).'" alt="'.$_product->getName().'" /><br />'; echo $_product->getName().'<br />'; $specialPrice = $_product->getData('special_price'); $orignalPrice = $_product->getData('price'); echo number_format($specialPrice, 2)."<br/>"; echo number_format($orignalPrice, 2)."<br/>"; echo '<a href="http://www.yourwebsite.com/magento/checkout/cart/add?product='.$_product->getId().'&qty;=1">Add To Cart</a><br />'; } } ?> |
这个只是实现了基本功能,样式布局方面还需要修改。有什么问题欢迎一起探讨。
在Magneto中使用一个xml文件更新布局
Magento有很多的xml布局文件,我们在修改更新布局文件时,就要去找相对应的.xml文件。我分享下通过一个local.xml文件就可以修改整个Magento网站的布局。
在app/frontend/default/你的主题/layout下新建一个local.xml,在里面写你需要更新的布局就可以了。记得在 头部加入
1 2 | < ?xml version="1.0"?> <layout version="0.1.0"></layout> |
可能一些朋友不懂magento如何布局,我接下来简单的介绍下:
1.更新添加block
1 2 3 | <reference name="left"> <block type="catalog/navigation" name="catalog.leftnav" after="currency" template="catalog/navigation/left.phtml"/> </reference> |
2.删除block
1 | <remove name="catalog.leftnavr" /> |
3.添加删除js
1 2 3 4 5 6 7 | <!-- 删除JS--> <reference name="head"> <action method="removeItem"><type>js</type><name>lib/ds-sleight.js</name></action> </reference> <!-- 添加JS --> <action method="addItem"><type>skin_js</type><name>lib/ds-sleight.js</name></action> |
关于布局更新还有其他问题,可留言联系我。
Magento加速利器——lazyload
Magento的速度是令人头疼的问题,我现在介绍一种前端的加速方法。说到lazyload,相信很多人都不陌生,现在很多网站都已经用到这个技术,他可以延迟加载长页面的图片。对于Magento这样的商城网站的加速就很明显了。我今天说的这个lazyload是经过POPO改造的(强逼我给他加外连……)。下面我放一些测试的数据,我正在做的一个网站的列表页。
![]()
![]()
很明显的就能看出差距。接下来写下用法:
首先加上jQuery,lazyload两段js。
read more
恢复更新
进来几个月公司和家里的事情比较多,一直没时间更新博客。现在人在宁波,工作什么的都稳定下来了,博客我也开始恢复更新了。我的工作主要是做前端开发,所以关于magento模板制作,大家有问题的可以留言问我,程序功能方面我只能看着回答了,我不擅长。
希望转载我文章的同学,标明出处。算是对我的博客的支持吧,谢谢。
Magento产品直接进入结账页面
Magento在产品页增加个立即购买的按钮,跳过购物车页面直接进入结账页面。这个是今天客户提的需求,用了个简单的jQuery解决了这个问题。当然如果你的网站没有用到jQuery的话,就直接用JS写吧。
一、在addtocart.phtml中加入<a href=”<?php echo $this->getBaseUrl() ?>checkout/onepage/” id=”checknow”>立即购买</a>。
二、给加入购物车的按钮加个id=“addtocart”。
三、加入以下jQuery,
1 2 3 4 5 | <script type="text/javascript"> jQuery("#checknow").click(function(){ jQuery("#addtocart").click(); } ) </script> |
这个方法存在一定的缺陷就是,结账的时候会把所有购物车里的产品一起结了,不过客户就是要这样的结果,
Magento中添加Flash
Magento加Flash这个问题,让我纠结了下今天。一般的Flash是很好加的,我说下带有xml等文件的Flash的加法。
一、在根目录下创建一个文件夹swf,把Flash相关的东西放入。
二、新建一个Static Block加入以下内容(注意把其中的文件夹和文件名改为相对应的内容):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <script type="text/javascript"> AC_FL_RunContent('codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0', 'width','900', 'height','400', 'src','swf/name_of_your_flash_banner', 'quality','high', 'menu','false','base','.', 'pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','swf/name_of_your_flash_banner' ); //end AC code </script> <noscript> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="900" height="400" title="name_of_your_flash_banner"> <param name="movie" value="swf/name_of_your_flash_banner.swf" /> <param name="quality" value="high" /> <param name="menu" value="false"> <param name="wmode" value="transparent"> <param name="base" value="." /> <embed src="swf/name_of_your_flash_banner.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="900" height="400"></embed> </object> </noscript> |
三、在你需要导入flash 的地方,导入这个block。
四、在该页面加入一个JS,AC_RunActiveContent.js
我是通过以上方法在Magento中加入Flash的,如有其他更加的方法,欢迎和我探讨下
Magento批量上传
Magento批量上传在,Magento中是个很重要的功能。介绍下一般的产品批量上传。
一、先在后台添加个产品,然后把这个产品在导出导出那里导出.csv表格。
二、用excel打开就可以看到批量上传需要的格式了。
三、把产品图片上传到/media/upload/创建子目录命名XXX/下。
四、在批量文件里填写图片信息,举例如下:
image /test/test1.jpg
small_image /test/test1.jpg
thumbnail /test/test1.jpg
五、按照导出的格式把其他Magento数据都填写完整之后就批量导入这个批量文件
注意:
1.一定要先上传图片,之后才可以上传批量文件,要不然前台看不到图片。
2.SKU是整个网站唯一的,不可以重复,否则以后上传的同名就会覆盖以前的产品。
以上就是Magento批量上传的简单方法,大家可以尝试下。改自magentochina.org
Magento 1.4.0.1升级到1.4.10报错
Magento1.4.0.1升级到1.4.1.0后会报错Fatal error: Call to a member function toHtml() on a non-object in /home/www/yourMagento/html/gamemore/app/code/core/Mage/Core/Model/Layout.php on line 529。
在magentochina.org找到了答案。
打开layout/page.xml,找到
尝试下吧……
Magento清除缓存
Magento清除缓存有两种方法。
一、打开后台system——>Cache Management,refresh就是清除缓存,Disable是禁用缓存,在上线前,建议禁用缓存,Enable打开缓存。
二、直接删除var中的文件,var就在根目录下。
Magento清除缓存的方法就这两种
Magento翻译
Magento翻译有两种方法,通过后台,和翻译包。
一、通过后台,进入System——>Configuration——>Developer。点击Translate Inline选项,Enabled for Frontend选择yes是开启前台翻译,Enabled for Admin选择yes是开启后台翻译。这种翻译方法只能用在一个Magento网站,不可重用。
。
二、通过翻译包,网上有很多翻译包,下一个,放到app\locale里面,然后进入后台启用。下过来的magento翻译包,会有一些不足。那就需要我们自己进行二次翻译。例如:About Us没有被翻译,进入翻译包打开其中一个csv文件,一般不同的地方有针对的翻译包,要看文件名。按照已有的格式写,”About Us”,”关于我们”。如果翻译没有成功,就进入About Us所在文件夹,看看格式是不是__(‘About Us’) ?>,再看看”About Us”与’About Us’里的内容是不是一样,差一个字符都会导致翻译失败。
在做双语站的时候,图片可能在两个站不一样,这里介绍下“图片翻译方法”。
getSkinUrl($this->__(‘images/co.jpg’)) ?>”/>然后在翻译文件中加入”images/co.jpg”,”images/翻译.jpg”。
Magento的翻译方法如果还有其他的,欢迎留言沟通。
紫月蓝骋