我在标头和缓存上的"My Car(#)"有一些问题
我使用的是Magento Enterprise 1.12。问题是,当我在标题中添加或删除一些项目到购物车时,我有"我的车(#)",每次我从购物车添加或删除项目时都不会更新,因为缓存,我不知道如何解决它…
步骤:
1) 从管理员清除缓存
2) 进入主页(在标题中显示"我的购物车")
3) 转到一些产品页面
4) 将一些产品添加到购物车
5) 重定向至"我的购物车"页面(标题中显示"我的车(1项)")
6) 再次转到主页(标题中仍然显示"我的购物车"),但不显示"1项"
如果我去管理网站并清理缓存在主页上显示"我的购物车(1项)"。当我有一个项目,然后从购物车中删除该项目时,我也会遇到同样的问题。
我需要动态的黑色,我不知道怎么做。
阅读链接!:)
好吧,这里可能有很多问题,但调试这个问题的一个好方法可能是重写JavaScriptMinicart方法,看看它在哪里出错。
在模块的layout.xml文件中,按照以下帖子添加一个自定义脚本
接下来,Minicart.prototype有很多功能,console.log(Minicart.prototype)查看它们。
我大胆猜测updateItem方法中出现了问题。通过在JS文件中添加这个来覆盖它:
if (typeof Minicart != "undefined") {
Minicart.prototype.updateItem = function(el) {
var cart = this;
var input = $j(this.selectors.quantityInputPrefix + $j(el).data('item-id'));
var quantity = parseInt(input.val(), 10);
cart.hideMessage();
cart.showOverlay();
$j.ajax({
type: 'POST',
dataType: 'json',
url: input.data('link'),
data: {qty: quantity, form_key: cart.formKey}
}).done(function(result) {
cart.hideOverlay();
if (result.success) {
cart.updateCartQty(result.qty);
if (quantity !== 0) {
cart.updateContentOnUpdate(result);
} else {
cart.updateContentOnRemove(result, input.closest('li'));
}
} else {
cart.showMessage(result);
}
}).error(function() {
cart.hideOverlay();
cart.showError(cart.defaultErrorMessage);
});
return false;
};
}
并开始注销出现故障的部分。如果这不是导致错误的原因,请尝试其他方法。
编码快乐!