Magento购物者主题多个购物车顶部标题“添加到购物车”

时间:2012-12-12 16:28:10

标签: magento

我正在使用Magento购物者主题(http://shopper.queldorei.com/)。

当我将商品添加到我的商店购物车时,它会增加多个元素

<div class="cart-top-title">
<a href="https://droppinstudio.dk/horsepony/index.php/checkout/cart/" class="clearfix">
<span class="icon"></span>Cart</a></div>

我发现这是jQuery犯了错误:

function setLocationAjax(url, id)
{
   ...
       if (data.status != 'ERROR' && $('.cart-top-container').length) {
          $('.cart-top-container').replaceWith(data.cart_top);
       }   
   ...
}

有没有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您应该查看CartController,并更改响应变量(data.cart_top)。

CartController的位置取决于主题使用的模块。核心CartController位于app / code / core / Mage / Checkout / controllers / CartController.php。

希望这有帮助。

答案 1 :(得分:1)

谢谢你,Erwin,that helped me figure out what is wrong

CartController位于app / code / local / Excellence / Ajax / controllers /中,实际上名为IndexController.php。

第52-54行设置data.cart_top响应:

$sidebar_header = $this->getLayout()->getBlock('cart_top')->toHtml();
Mage::register('referrer_url', $this->_getRefererUrl());
$response['cart_top'] = $sidebar_header;

修复可能是更改 cart_top 块的设计方式,并从cart_top.phtml中删除'cart-top-title'并将其放入自己的文件中并包含它在header.phtml。

结果是在ajaxcart.js(函数setLocationAjax)的第85行发生了实际替换。

对我来说,快速解决方法是使用jQuery删除div,如下所示:

if (data.status != 'ERROR' && $('.cart-top-container').length) {
  $('.cart-top-title').remove();
  $('.cart-top-container').replaceWith(data.cart_top);
}

js file here:skin / frontend / default / shopper / js / ajaxcart / ajaxcart.js

cart_top.phtml:app / design / frontend / default / shopper / template / checkout / cart / cart-top.phtml

header.phtml这里:app / design / frontend / default / shopper / template / page / html / header.phtml