引入jquery
如果是通站引用jquery,可以在default标签下加以上代码,如果只是针对商品浏览页面这里应该是catalog_product_view
|
|
接下来是解决jquery和prototype的冲突
一般我是把jQuery.noConflict();这句代码放到jquery源文件的最后,这样就不必在每次写jquery代码时写一遍
商品浏览页修改
接下来需要对商品浏览页的代码做一些修改,代码位置为app/design/frontend/Your Theme/Your Template/template/catalog/product/view.phtml,如果没有此文件,从base里面复制一份
原来代码:
|
|
改成:
|
|
接下来需要对catalog/product/view/addtocart.phtml文件做一些修改
原来代码:
|
|
改成:
|
|
这里加上了一个简单的loading效果
加入购物车动作修改
现在我们需要对加入购物车动作做一些修改也就是CartController.php的addAction,一般是采用复写的方式而不是直接修改magento源码,这里还是采用直接修改核心代码的方法演示
在addAction里面可能看到有$params = $this->getRequest()->getParams();这一行,在这行的下面加上我们自己的逻辑,
|
|
正常情况完成上面的代码ajax加入购物车可以生效了,点击注册详情页加入购物车按钮,看到一个loading图,然后出现一个包含成功信息的警告框
更新头部导航链接和迷你购物车
上面弹出警告框的做法显然不够友好,比较好的做法是加入购物车成功后更新头部导航链接和迷你购物车,下面的代码告诉你怎么完成这个
把刚才view.phtml中ajax请求相关的代码改成
|
|
对就的addAction改成:
|
|
现在当点击加入购物车,加入购物车成功后头部导航链接和迷你购物车部分会更新,而不是弹出一个警告框。
至此,ajax加入购物相关的代码已经完毕,如果想要更新的效果,可以结合jquery fancybox做一个popup,popup内容类似于上面的javascript警告框架
原文:http://excellencemagentoblog.com/magento-add-product-to-cart-ajax