1 添加产品到购物车成功后是跳转到购物车页面或不跳转。这个在后台可以设置

system -》 configuration -》 After Adding a Product Redirect to
Shopping Cart
– Yes/No”
这个是设置成功添加产品后是跳转到购物车页面,还是不跳转

2 修改默认的跳转页面
可以在app\design\frontend\default\theme173\template\catalog\product\view.phtml

<input type="hidden" name="return_url"
value="yoururl" />
将url替换成要跳转的页面的url就可以了。

3 添加一个add to cart的按钮
两个按钮可以一个自动跳转到购物车页面,一个不跳转,中文网站中,一般有一个立即购买(跳转到购物车页面),一个添加到购物车(不跳转停留在原来页面)。

解决这个的办法就是重写控制器Checkout-CartController

1)创建模块目录和文件

  1. Magento/app/code/local/MyNameSpace/MyCheckout/etc/config.xml
  2. Magento/app/code/local/MyNameSpace/MyCheckout/controllers/CartController.php
  3. Magento/app/etc/modules/MyNameSpace_MyCheckout.xml

2)编辑Magento/app/code/local/MyNameSpace/MyCheckout/etc/config.xml

config.xml文件

<?xml version="1.0"?>
<config>
    <modules>
        <MyNameSpace_Mycheckout>
            <version>0.1.0</version>
        </MyNameSpace_Mycheckout>
    </modules>
    <frontend>
        <routers>
            <MyNameSpace_Mycheckout>
                <use>standard</use>
                <args>
                    <module>MyNameSpace_Mycheckout</module>
                    <frontName>mycheckout</frontName>
                </args>
            </MyNameSpace_Mycheckout>
        </routers>
    </frontend>
    <global>
        <routers>
            <checkout>
                <rewrite>
                    <cart>
                        <to>mycheckout/cart</to>
                        <override_actions>true</override_actions>
                        <actions>
                            <add>
                                <to>mycheckout/cart/add</to>
                            </add>
                        </actions>
                    </cart>
                </rewrite>
            </checkout>
        </routers>
    </global>
</config>

3)编辑/controllers/CartController.php
Magento/app/code/local/MyNameSpace/MyCheckout/controllers/CartController.php

<?php
require_once 'Mage/Checkout/controllers/CartController.php';
class MyNameSpace_Mycheckout_CartController
extends Mage_Checkout_CartController
{
    
    public
function addAction()
    {
        $cart  
= $this->_getCart();
        $params
= $this->getRequest()->getParams();
        try
{
            if
(isset($params['qty'])) {
                $filter
= new Zend_Filter_LocalizedToNormalized(
                    array('locale'
=>
Mage::app()->getLocale()->getLocaleCode())
                );
                $params['qty']
=
$filter->filter($params['qty']);
            }
 
            $product
= $this->_initProduct();
            $related
= $this->getRequest()->getParam('related_product');
 
            
            if
(!$product)
{
                $this->_goBack();
                return;
            }
 
            $cart->addProduct($product,
$params);
            if
(!empty($related))
{
                $cart->addProductsByIds(explode(',',
$related));
            }
 
            $cart->save();
 
            $this->_getSession()->setCartWasUpdated(true);
 
            
            Mage::dispatchEvent('checkout_cart_add_product_complete',
                array('product'
=> $product,
'request' => $this->getRequest(), 'response' => $this->getResponse())
            );
 
            if
(!$this->_getSession()->getNoCartRedirect(true))
{
                if
(!$cart->getQuote()->getHasError()){
                    $message
= $this->__('%s
was added to your shopping cart.'
,
Mage::helper(
'core')->htmlEscape($product->getName()));
                    $this->_getSession()->addSuccess($message);
                }
                if
($returnUrl =
$this->getRequest()->getParam('return_url'))
{
                    //
clear layout messages in case of external url redirect
                    if
($this->_isUrlInternal($returnUrl))
{
                        $this->_getSession()->getMessages(true);
                    }
                    $this->getResponse()->setRedirect($returnUrl);
                }
elseif (!Mage::getStoreConfig('checkout/cart/redirect_to_cart')
                    &&
!
$this->getRequest()->getParam('in_cart')
                    &&
$backUrl = $this->_getRefererUrl()) {
 
                    $this->getResponse()->setRedirect($backUrl);
                }
else {
                    if
(($this->getRequest()->getActionName()
==
'add') &&
!
$this->getRequest()->getParam('in_cart'))
{
                        $this->_getSession()->setContinueShoppingUrl($this->_getRefererUrl());
                    }
 
                    if($this->getRequest()->getParam('noCheckoutYet')=="yes")
                        $this->getResponse()->setRedirect($this->_getRefererUrl());
                    else
                        $this->_redirect('checkout/cart');
                }
            }
        }
        catch
(Mage_Core_Exception $e) {
            if
($this->_getSession()->getUseNotice(true))
{
                $this->_getSession()->addNotice($e->getMessage());
            }
else {
                $messages
= array_unique(explode("\n",
$e->getMessage()));
                foreach
($messages as
$message)
{
                    $this->_getSession()->addError($message);
                }
            }
 
            $url
= $this->_getSession()->getRedirectUrl(true);
            if
($url) {
                $this->getResponse()->setRedirect($url);
            }
else {
                $this->_redirectReferer(Mage::helper('checkout/cart')->getCartUrl());
            }
        }
        catch
(Exception $e) {
            $this->_getSession()->addException($e,
$this->__('Cannot add the item to shopping
cart.'
));
            $this->_goBack();
        }
    }
}

4)编辑文件Magento/app/etc/modules/MyNameSpace_MyCheckout.xml

<?xml version="1.0"?>
<config>
    <modules>
    <MyNameSpace_Mycheckout>
            <active>true</active>
            <codePool>local</codePool>
    </MyNameSpace_Mycheckout>
    </modules>
</config>

5)编辑文件Magento/app/design/frontend/[myinterface]/[mytheme]/layout/checkout.xml

<camelweb_mycheckout_cart_index>
    <update
handle="checkout_cart_index"/>
</camelweb_mycheckout_cart_index>

6) 在模版文件中添加 “Add to cart”按钮
view/addtocart.phtml

<?php $_product =
$this->getProduct()
?>
 
<?php if($_product->isSaleable()):
?>
    <div
class="add-to-cart">
        <?php
if(!$_product->isGrouped()):
?>
        <label
for="qty"><?php
echo $this->__('Qty:')
?></label>
        <input
type=
"text" name="qty"
id="qty" maxlength="12"
value="<?php echo
$this->getMinimalQty($_product)
?>"
title="<?php echo
$this->__('Qty') ?>"

class="input-text
qty"
/>
        <?php
endif;
?>
        <button
type=
"button" title="<?php echo
$this->__('Add to Cart') ?>"

class="button
btn-cart"
onclick="productAddToCartForm.submit()"><span><span><?php
echo $this->__('Add to Cart')
?></span></span></button>
        <br
/>

        <!--自定义添加的add
to cart的按钮-->
        <a
href=
"<?php echo
Mage::getUrl('checkout/cart/add', array('product' =>
$_product->getId(),
'noCheckoutYet'=>'yes'))
?>"
>Add to cart
2</a>
        <?php
echo $this->getChildHtml('', true, true)
?>
    </div>
<?php endif;
?>


7)清下缓存,然后后台设置下跳转或不跳转,或者根据本文的第二方法,添加下代码,让默认的不跳转,我们重新添加的add to cart
按钮不跳转

magento产品成功添加到购物车后跳转到不同页面 添加 add to cart 按钮的更多相关文章

  1. 关于WordPress登录后跳转到指定页面

    前面在写模版的时候,有朋友要求网站登录后要跳转的到指定的页面.这个从前还真没遇到过.于是就用万能的搜索(很少百度)找了下,方法基本上就是一个,代码如下: <?php    // Fields f ...

  2. shiro控制登陆成功后跳回之前的页面

    登陆之后跳回之前的页面是在做登陆注册模块时遇到的一个需求,也是很有必要的.若用户直接访问登陆页面,那可以控制它直接到首页,但是要用户没有登陆直接访问自己的购物车等需要经过身份认证的页面,或者因为ses ...

  3. web.config中配置页面出错后跳转指定错误页面

    每当用户访问错误页面时,会出现不友好的404错误,所以为了防止这种不友好,我们在web.config中的<system.web>节点下配置 <customErrors>,在出现 ...

  4. layui弹窗里面 session过期 后跳转到登录页面

    1.在登录页面添加 <script> $(function () { if (top != window) { layer.msg("登录失效", {icon: 5}) ...

  5. MVC 访问IFrame页面Session过期后跳转到登录页面

    Web端开发时,用户登录后往往会通过Session来保存用户信息,Session存放在服务器,当用户长时间不操作的时候,我们会希望服务器保存的Session过期,这个时候,因为Session中的用户信 ...

  6. php弹窗后跳入另一个页面

    之前写项目时,在跳转页面前加入一个弹窗,发现弹窗没有弹出来就直接跳转了,之前使用的header跳转发现不行,换成location.href也不行,后来再location.href前加入一个parent ...

  7. 编写Servlet,验证用户登录,如果用户名与密码都为“admin”则验证通过,跳转欢迎页面,否则弹出提示信息“用户名或密码错误,请重新输入!”,点击“确定”后跳转至登录页面

    java代码:(Test1) package com.test; import java.io.IOException; import java.io.PrintWriter; import java ...

  8. C#-WebForm-点击网页中的按钮后跳转到其他页面是怎么实现的?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. session失效后跳转到登陆页面

    一.编写Filter拦截器类 package com.pv.utils; import java.io.IOException; import java.io.PrintWriter; import ...

随机推荐

  1. C#.web 打开PDF

    转自:http://blog.163.com/red_guitar@126/blog/static/11720612820112483221665/ string fileName = "2 ...

  2. jQuery Easing动画效果扩展(转)

    jQuery API提供了简单的动画效果如淡入淡出以及自定义动画效果,而今天我给大家分享的是一款jQuery动画效果扩展增强插件jquery.easing.js,使用该插件可以实现直线匀速运功.变加速 ...

  3. uva 1428

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  4. Js笔试题之parseInt()和.map()

    parseInt()的几个例子 var b = parseInt("01"); alert("b="+b); var c = parseInt("09 ...

  5. 封装自己的JS库

    一.基础知识 1.点击计数 第一种: var aBtn=document.getElementsByTagName('input'); var i=0; for(i=0;i<aBtn.lengt ...

  6. 李明杰视频 SVN

    李明杰视频 SVN 就10-12使用技术SVN 源代码会引发哪些问题? 无法后悔:做错一个操作 版本备份:费控件,费时间 版本混乱:因版本备份太多造成混乱 代码冲突:多人操作同一文件 强烈建议 使用源 ...

  7. node.js安装及grunt插件,如何进行脚本压缩

    http://gruntjs.com/pluginshttp://gruntjs.com/getting-startedhttp://gruntjs.com/configuring-tasks#glo ...

  8. C++指针(部分有误需修改)

    一.取地址运算符&(内存地址) C++编译的程序占用的内存分为以下几个部分: 1.栈区:由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈.与其它分区不同 ...

  9. 可以创建专业的客户端/服务器视频会议应用程序的音频和视频控件LEADTOOLS Video Conferencing SDK

    LEADTOOLS Video Streaming Module控件为您创建一个自定义的视频会议应用程序和工具提供所有需要的功能.软件开发人员可以使用Video Streaming Module SD ...

  10. PHP及Javascript 正则判断中文(转)

    UTF-8匹配: 在javascript中,要判断字符串是中文是很简单的.比如: var str = "php编程"; if (/^[\u4e00-\u9fa5]+$/.test( ...