0

在我的网站中,当我单击 addtocart 按钮时,它返回以下网址:

http://mywebsite.com/ajax/index/add/uenc/a...cC5uZXQvYXBwbGlhbmNlcy5odG1s/product/83/isAjax/1

但我需要下面的具体网址:

http://mywebsite.com/checkout/cart/add/uenc/a...cC5uZXQvYXBwbGlhbmNlcy5odG1s/product/83/isAjax/1

我能知道在哪里编辑吗?

4

1 回答 1

2

当然,您可以在所有主题文件中更改它。

但是,如果您想在站点范围内更改所有添加到购物车的行为,您可能需要扩展 CartController 并将添加操作转发到您自己的 ajax 模块。

一个例子:

应用程序/代码/本地/MyCompany/Ajax/controllers/CartController.php:

<?php

require_once 'Mage/Checkout/controllers/CartController.php';
class MyCompany_Ajax_CartController extends Mage_Checkout_CartController {

    public function addAction() {
        $this->_forward('add', 'index', 'ajax', $this->getRequest()->getParams());
    }

}

应用程序/代码/本地/MyCompany/Ajax/etc/config.xml:

<?xml version="1.0"?>
<config>

    [...]

     <frontend>
           <routers>
                <checkout>
                    <args>
                        <modules>
                            <mycompany_ajax before="Mage_Checkout">MyCompany_Ajax</mycompany_ajax>
                        </modules>
                    </args>
                </checkout>
            </routers>
        </frontend>
    </config>

另一种方法是添加一个监听器来监听 controller_action_predispatch_checkout_cart_add 事件并在那里转发。

于 2013-06-19T17:06:22.440 回答