Magento TopLink缓存我的购物车(#)

Age*_*led 5 magento magento-1.12

标头和缓存上的“我的车(#)”有问题。

我正在使用Magento Enterprise 1.12。问题是,当我在购物车中的标题中添加或删除某些商品时,我拥有“我的车(#)”,并且每次从购物车中添加或删除商品时都不会更新,这是因为缓存,我不知道如何解决...

脚步:

1)从管理员清除缓存

2)进入首页(在标题中显示“我的购物车”)

3)进入一些产品页面

4)将一些产品添加到购物车

5)重定向到“我的购物车”页面(在标题中显示“我的购物车(1件)”)

6)再次转到主页(并且标题中仍显示“我的购物车”),没有“ 1件”

如果我转到管理站点并清除主页上的缓存,则显示“我的购物车(1件)”。当我有1件物品,然后从购物车中删除该物品时,我遇到了同样的问题。

我需要对黑色充满活力,我不知道该怎么做。

TNK阅读!:)

Chr*_*ers 0

好吧,这里可能有很多问题,但也许调试这个问题的一个不错的方法是重写 JavaScript Minicart方法以查看它在哪里出错。

在您的模块的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;
    };
}
Run Code Online (Sandbox Code Playgroud)

并开始注销出现故障的部分。如果这不会导致错误,请尝试其他方法。

快乐编码!