从购物车中删除商品时,Magento会重定向到商店主页而不是/ checkout / cart /

时间:2011-03-07 19:04:12

标签: php redirect magento shopping-cart

我正在设置一个Magento 1.4.2购物车来替换旧版本(1.1.6)。我目前正在开发一台开发机器,当我在购物车中有多个项目并使用其中一个产品上的“删除”按钮时,该项目将被删除,我将通过302响应代码重定向到该基础URL存储,而不是'/ checkout / cart /'(这是旧版本购物车的工作原理)。

我一直试图弄清楚造成这种重定向的两个推车之间有什么不同。关于我的设置的一些注意事项可能与否相关:

  • 有2个网站/商店/商店视图
  • 我正在使用的商店视图是通过子URL和单独的index.php文件访问的。主商店网址为 https://www.thestore.com/ ,我正在使用的商店可通过 https://www.thestore.com/second-store/访问的index.php / 即可。如果您不熟悉这种方法,请按以下步骤操作:Store views by index.php
  • 旧购物车(运行1.1.6)正在稍微不同的服务器设置上运行,您可以安全地假设在设置中可以进行任何操作 - 例如,可以修改核心Mage代码。

我正在寻找关于在哪里寻找的任何提示 - 通过管理面板进行Magento配置,local.xml更改,Apache重写规则......有关如何找出这个新推车的原因的任何提示当我从购物车中删除产品时,重定向到/ store / checkout / cart /

如果您需要更多详细信息,我很乐意为您提供。我们有一个真正被黑客攻击的时髦设置,如果听起来我们做错了什么,我也会接受如何设置的建议。谢谢!

3 个答案:

答案 0 :(得分:7)

这可能是旧闻,但我在2011年12月的magento 1.5.10中遇到了同样的问题。 我通过编辑

成功解决了这个问题

CartController.php:

in

  

function deleteAction

替换

  

$这 - > _redirectReferer(法师::使用getURL( '* / *'));

  

$这 - > _redirect( '结帐/购物车');

请勿复制并粘贴此内容,请确保输入内容,并在结帐/购物车周围使用单引号

答案 1 :(得分:0)

如果您已经检查了B00MER建议的设置,那么我认为您的下一步需要通过请求处理流程进行调试。阅读我的previous answer,了解有关获取Magento调试环境的一些指示。

该答案也很有意义,因为它涉及updatePostAction中的CartController,这种情况与此相同。

答案 2 :(得分:0)

为了重写核心文件,我们需要创建一个模块并进行以下更改。

public function deleteAction()
{
    if ($this->_validateFormKey()) {
        $id = (int)$this->getRequest()->getParam('id');
        if ($id) {
            try {
                $this->_getCart()->removeItem($id)
                    ->save();
            } catch (Exception $e) {
                $this->_getSession()->addError($this->__('Cannot remove the item.'));
                Mage::logException($e);
            }
        }
    } else {
        $this->_getSession()->addError($this->__('Cannot remove the item.'));
    }

    $this->_redirect('checkout/cart');
}

请参阅我的教程,逐步解释。

http://www.pearlbells.co.uk/remove-item-magento-cart-redirects-homepage/