Magento,结账/购物车区块未加载ajax扩展

时间:2013-03-15 13:42:24

标签: magento magento-1.7

我正在为Magento编写一个ajax扩展程序,当我尝试使用checkout / cart工作时,我遇到了麻烦。

我想在购物车中的任何产品更改后重新加载整个块,包括商品和购物车总数。

我修改了布局,就像很多网站所说的那样,我无法让结帐/购物车块渲染得很好。

我的两个解决方案是:


1°尝试通过xml文件更新布局,并在$ block_cart中显示错误。

我有一个班级

Mati_Ajax_CartController extends Mage_Checkout_CartController
{
...
    public function updateShoppingCartAction()
    {
        ...
        $block_cart = $this->getLayout()->getBlock('checkout/cart');
        ...
    }
}

和一个xml文件(我确定我正在加载,因为js指出有加载)

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

2°尝试创建块

public function updateShoppingCartAction()
{
    ...
    $block_cart = $this->getLayout()->getBlockSingleton('checkout/cart')->setTemplate("checkout/cart.phtml")->toHtml();
    ...
}

在这里我得到了阻止,但是当模板执行时$this->getChildHtml('totals'); 它得到了错误的答案,因此网页与之前的网页有一些差异


有人知道如何使这项工作吗?

2 个答案:

答案 0 :(得分:0)

在您第一次尝试时,只需附加->toHtml();

或者,您可以将其作为xml output="toHtml"

中的命令包含在内

如果您正在寻找建议,请检查checkout/onepage/review的功能。 在那里,他们访问响应对象,然后将响应的主体设置为html变量,在您的情况下$block_cart

答案 1 :(得分:0)

密钥位于xml文件中

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